Skip to content
maskostudioDocs

All pages

  • Overview/docs/use-cases
  • Mobile app/docs/use-cases#mobile
  • Website/docs/use-cases#website
  • Desktop/docs/use-cases#desktop
  • AI agents/docs/use-cases#agents
  • Videos/docs/use-cases#videos
  • Brand/docs/use-cases#brand
  • Start building/docs/ai-agents
  • Set up once/docs/ai-agents#set-up-once
  • Ask in plain words/docs/ai-agents#ask-in-plain-words
  • What your agent does/docs/ai-agents#what-your-agent-does
  • MCP server/docs/mcp
  • Masko for Cursor/docs/ai-tools/cursor
  • Masko in ChatGPT/docs/ai-tools/chatgpt
  • Start here/docs/tutorials#start-here
  • All tutorials/docs/tutorials
  • Create your first mascot/docs/tutorials/first-mascot
  • Create an animated character/docs/tutorials/first-animation
  • Make a character talk/docs/tutorials/make-it-talk
  • Put your mascot on your website/docs/tutorials/mascot-on-your-website
  • Guide onboarding with a talking mascot/docs/tutorials/web-onboarding-mascot
  • Add a mascot that celebrates progress and welcomes users back/docs/tutorials/web-progress-companion
  • Add a talking support mascot in the bottom right/docs/tutorials/web-support-mascot
  • Show a mascot while your AI thinks/docs/tutorials/ai-loading-mascot
  • Give your AI agent a face/docs/tutorials/ai-agent-face
  • Animate the mascot you already have/docs/tutorials/animate-your-mascot
  • How to make Telegram stickers/docs/tutorials/telegram-stickers
  • How to make Discord stickers/docs/tutorials/discord-stickers
  • Quickstart: your first animation/docs/quickstart
  • Terminal quickstart/docs/terminal
  • API keys and workspaces/docs/authentication
  • CLI browser login/docs/authentication/cli
  • How mascots work/docs/how-mascots-work
  • Credits and costs/docs/credits
  • From text/docs/create/from-text
  • From an image/docs/create/from-image
  • From a website/docs/create/from-website
  • From a brand book/docs/create/from-brand-book
  • Reference images/docs/manage/references
  • What you can generate/docs/generation
  • Pose-to-animation walkthrough/docs/generate/workflow
  • Images and poses/docs/generate/images
  • Animations/docs/generate/animations
  • Talking animations/docs/generate/talking
  • Logos, backgrounds and stickers/docs/generate/design-assets
  • Cursor follower/docs/generate/cursor-follower
  • Batch generation/docs/generate/batch
  • Image and video exports/docs/manage/media-exports
  • Canvases and releases/docs/canvas
  • Build a canvas/docs/canvas/build
  • Canvas templates/docs/canvas/templates
  • Generate canvas assets/docs/canvas/generate-all
  • Export a canvas/docs/canvas/export
  • Overview and demo/docs/player
  • Play one animation/docs/player/one-animation
  • Play a canvas/docs/player/canvas
  • Hosting and file formats/docs/generate/cdn
  • File sizes/docs/generate/file-sizes
  • Float a mascot on your Mac/docs/integrations/desktop
  • Jobs and polling/docs/manage/jobs
  • Webhooks/docs/manage/webhooks
  • Manage mascots and assets/docs/manage/collections
  • All endpoints/docs/reference
  • Requests and responses/docs/reference/conventions
  • Errors and recovery/docs/reference/errors
  • Command line reference/docs/terminal/commands
  • TypeScript SDK/docs/sdk/typescript
  • Changelog/docs/reference/changelog
  • Migrate to mascots and canvases/docs/manage/studio-migration
Get an API key
Documentation

Command line reference

Run masko help, masko help commands or masko COMMAND --help for the same text offline. Every command accepts --json.

Account

CommandResult
masko loginSign in through your browser. Options: --no-browser, --device, --api-key, --api-key-stdin, --scope read|write, --name NAME, --timeout SECS. See CLI login.
masko whoamiShow your account, workspace name, access (read or write), sign-in method and credits.
masko creditsShow total, subscription and top-up credits.
masko feedback "TEXT"Send feedback to the Masko team. Pipe longer notes in: cat notes.txt | masko feedback. The first line is the summary (up to 500 characters), 8,000 characters in all; 5 a minute and 30 a day. Read-only logins work.
masko logoutSign out on this Mac and revoke the session. If Masko cannot be reached, the login is still removed here; revoke it under Signed-in computers. An API key set in MASKO_API_KEY still applies.

masko login --api-key asks for a key at a hidden prompt; --api-key-stdin reads it from stdin, for automation. Neither creates a key: get one at API keys.

Masko API

masko studio METHOD PATH [--file FILE] [--idempotency-key KEY] [--json]
PartUse
METHODGET, POST, PUT, PATCH or DELETE.
PATHA /v1 path from the API reference, such as mascots, jobs/JOB_ID?wait=true or canvases/CANVAS_ID/generate-all. /v1/... and full https://api.masko.ai/v1/... links, such as a job's poll_url, work too. Quote paths with ? or &. Sign-in (auth), admin and the old collections paths are refused.
--file FILEThe JSON request body, or - to read it from stdin. For upload, an image or video file instead: PNG, JPEG, WebP, GIF, SVG, MP4, MOV or WebM.
--idempotency-key KEYEvery POST sends one. Reuse the key a failed or interrupted POST printed, and Masko never runs or charges it twice.

Requests send Masko-API-Version: 2026-09-26, so field names match the docs and the MCP server (mascot_id, not collection_id). The output is the API's response: data, plus meta.pagination (total, has_more, next_cursor) for lists. A DELETE that returns nothing prints Done. on stderr.

To see a canvas's cost before generating, call GET canvases/CANVAS_ID/generation-estimate, or generate-all with "dry_run": true, then pass max_credits. Talking animations take "dry_run": true too; see talking.

Assets

CommandResult
masko assets show ASSET_IDShow one asset.
masko assets download ASSET_ID --output PATHSave one asset as the new file PATH, in a folder that exists. --format selects original or the asset type. Existing files are never overwritten.

To list a mascot's assets, use masko studio GET 'assets?mascot_id=MASCOT_ID'.

Output and errors

Exit codeMeaning
0Done.
1An error. With --json, it is printed on stdout as {"error": {"code", "message", ...}}; otherwise on stderr.
124Timed out.
130Stopped with Control+C. Work Masko already accepted may continue; a POST prints its idempotency key.

Errors keep the API's fields: status, param (the field that was wrong), request_id (give it to support), doc_url, retry_after and, for a POST, idempotency_key. Unknown commands suggest the closest one. See errors.

Environment and global options

SettingUse
--api-url URL or MASKO_API_URLSelect the backend, for local development.
MASKO_API_KEYUse an API key. It overrides the saved login. An empty value counts as unset.
MASKO_NO_UPDATE_CHECK=1Turn off the daily notice that a newer version is out. It is also off in CI and with --json.
--jsonPrint JSON on stdout.
--help, -hRead help without connecting or changing anything.
--version, -v, masko versionPrint the CLI version.