inkstudioai
[npm version]
[npm downloads]
AI tattoo generator for your terminal and your AI agents.
One free design for new accounts, no card needed.
inkstudioai is the official command line tool for Ink Studio AI. Describe a tattoo in words and get a finished design as an image file. It also runs as an MCP server, so Claude, Cursor, Windsurf, and other AI agents can create tattoo designs for you.
- Create tattoo designs from text in styles such as fine line, Japanese, traditional, and realism.
- Search the public gallery of tattoo designs for ideas, with no account.
- Check your plan and credits, and buy a plan from the terminal.
- Zero dependencies. Node.js 18.17 or newer.
Install
Run it once with npx:
Or install it globally:
The package installs two command names, inkstudioai and the shorter inkstudio. They are the same tool.
Quick start
Output of generate with the free design of a new account:
The try-on link opens the website's tattoo simulator with the new design loaded. Links to website pages carry utm_source=cli, so Ink Studio AI can count visits from the CLI. Image, API, and checkout links have no such parameters.
Commands
Every command has --help, and inkstudioai help <command> shows the same text. Global options:
login
Sign in with your browser. The terminal shows a code and opens a page. Check that the page shows the same code, then approve. The CLI saves an API key on your computer.
New to Ink Studio AI? Create an account on the same page. New accounts get one free tattoo design.
In a terminal, --with-key asks you to paste the key and press Enter.
generate (alias: gen)
Create a tattoo design from a text prompt.
Without --out, or with a directory, the file name comes from the prompt, for example a-fox-in-a-crescent-moon.webp. An existing file is never overwritten; the CLI adds -2, -3, and so on.
With --out <file>, the CLI refuses to overwrite an existing file unless you add --force. The extension always matches the image type that the server sends: --out lotus.png saves lotus.webp when the image is WebP, and the CLI tells you. The File line and the file field of --json show the real name.
If you have no free design left and no plan, generate shows the error and the plans. In an interactive terminal it then asks Open checkout for 7-day-access ($12.99)? [Y/n] for the cheapest plan, and opens Stripe checkout when you answer yes. It does not ask with --json, in CI (CI is set), or when stdin is not a terminal.
If the connection breaks after the server accepted the prompt, the design can still be finished and saved, and it can use a generation. The CLI then does not tell you to try again. Run inkstudioai designs to check if the design is in your account first.
styles
List the style ids for --style.
designs
List the designs saved to your account, newest first.
gallery
Search the public gallery. No login needed.
whoami (alias: status)
Show your plan, the time left on it, free designs, premium credits, and API use today. When less than 2 days are left, whoami tells you how to extend the plan.
pricing
Show the plans and credit packs.
buy
Open Stripe checkout for a plan or credit pack. The purchase is added to the signed-in account.
open
Open a page of the website.
logout
Remove the saved key from this computer. The key still works on the server until you revoke it on your account page.
Use with AI agents (MCP)
inkstudioai mcp runs a Model Context Protocol server over stdio. It gives an agent these tools:
There are three ways to sign in:
- No terminal needed: ask the agent to sign you in. It calls the
login tool and gives you a link and a code. Approve the code in the browser (or create an account there), then tell the agent. It calls login again, which saves the API key on your computer.
- Run
npx inkstudioai login in a terminal. The MCP server uses the same saved key.
- Create a key on your account page and put it in
INKSTUDIO_API_KEY in the client config. This key takes precedence over the saved key.
The server reads the saved key on each tool call, so a login while the client runs needs no restart.
generate_tattoo returns the image URL as text. It also returns the image itself (when it is smaller than 1.5 MB) and, on protocol 2025-06-18, a resource_link to the image. If the download fails, the result has only the text. It sends notifications/progress messages when the client gives a progressToken. Links to website pages carry utm_source=mcp. The server supports MCP protocol versions 2025-06-18 and 2024-11-05.
Claude Code
If you ran npx inkstudioai login, or want to sign in with the login tool, you can leave out the key:
Claude Desktop (claude_desktop_config.json)
Cursor (~/.cursor/mcp.json or .cursor/mcp.json in a project)
Windsurf and other MCP clients use the same command, arguments, and environment variable. In every client you can leave out env and sign in with the login tool instead.
Scripts and JSON output
Add --json to any command to get the raw API response on stdout. Errors are JSON too, with error, code, and hints, and the exit code is not 0. A wrong command or option has "code": "usage".
If the design is ready but the image file could not be saved, generate --json prints the full result with "file": null and a saveError message, and exits with 3. The design is in your account, so do not generate it again.
Exit codes: 0 success, 1 error, 2 wrong command or options, 3 design created but the image file not saved.
Configuration
Pricing
Every new account gets one free design, and no card is needed for it. A plan gives unlimited text-to-tattoo designs (up to 50 a day through the API) and premium credits for the image tools on the website. Credit packs add premium credits to an active plan. See current prices with inkstudioai pricing or on the pricing page.
API
The CLI uses the public Ink Studio AI API. You can call it from any language.
Privacy
Designs you create are saved privately to your account, in your design history on the website. The CLI sends your prompt and options to the Ink Studio AI API and stores only your API key on your computer.
Support
Questions or problems: [email protected], or open an issue at https://github.com/ciroartz/inkstudioai-cli/issues. Report security problems by email, not in an issue (see SECURITY.md).
License
MIT