Ink Studio AI

io.github.ciroartz由 GitHub 帳號 ciroartz 發布v0.1.1更新於 Nov 1, 2026

Generate AI tattoo designs in 13 styles, search a public tattoo gallery, and check plans.

已驗證STDIO僅桌面商業與電商媒體與設計

概覽

AI 產生的概覽

Ink Studio AI 可依文字提示生成 13 種風格的刺青設計,搜尋公開刺青圖庫,並查看方案與結帳連結。

可以做什麼
  • 依文字提示生成刺青設計,可指定風格 id,回傳圖片及其連結
  • 列出可用風格 id,並搜尋公開刺青圖庫尋找靈感
  • 查看帳戶方案、剩餘免費生成次數、進階額度與當日 API 用量
  • 列出方案與額度包及其 sku 和美元價格,並建立 Stripe 結帳連結
  • 在對話中透過連結與驗證碼完成登入
適用情境
適合需要依描述取得刺青設計靈感或成品圖、瀏覽公開圖庫,以及在不離開對話的情況下查看方案與額度狀態時使用。
執行需求
透過 npx 以 stdio 在本機執行(需 Node.js 18.17 或更新版本)。生成設計需要 Ink Studio AI 帳戶,可用 login 工具登入或在 INKSTUDIO_API_KEY 提供 API 金鑰;圖庫搜尋不需金鑰。需要能連線至 Ink Studio AI API 的網路。
安裝前請注意
每次呼叫 generate_tattoo 會消耗帳戶中的一次生成額度(免費或方案)。create_checkout 只回傳 Stripe 連結,但付款會產生實際費用,助理不應聲稱已完成購買。login 工具會在本機儲存 API 金鑰,提示詞與選項會傳送至 Ink Studio AI API,設計會保存在帳戶中。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ink Studio AI,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

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:

sh
npx inkstudioai login

Or install it globally:

sh
npm i -g inkstudioai

The package installs two command names, inkstudioai and the shorter inkstudio. They are the same tool.

Quick start

sh
# 1. Sign in. No account yet? Create one in the browser. New accounts get one free design.npx inkstudioai login
# 2. Create a design. The image is saved in the current directory.npx inkstudioai generate "a fox sleeping inside a crescent moon" --style fine-line
# 3. Look for ideas in the public gallery.npx inkstudioai gallery dragon

Output of generate with the free design of a new account:

text
✔ Design ready in 21s  File      a-fox-sleeping-inside-a-crescent-moon.webp  Image     https://cdn.inkstudioai.com/free-tattoo-designs/6718f0c2.webp  Style     fine-line, black ink, white background  Quality   free (0 free designs left)  Saved to  https://inkstudioai.com/account?view=tattoos&utm_source=cli&utm_medium=referral
  Try it on your skin  https://inkstudioai.com/tools/try-tattoo?design=https%3A%2F%2Fcdn.inkstudioai.com%2F...  Make a stencil       https://inkstudioai.com/tools/tattoo-to-stencil?utm_source=cli&utm_medium=referral

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:

OptionWhat it does
--jsonPrint raw JSON for scripts and agents
--api-key <key>Use this key instead of INKSTUDIO_API_KEY or the saved key
--no-colorTurn off colors. NO_COLOR also works
-h, --helpShow help
-v, --versionShow the version

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.

sh
inkstudioai logininkstudioai login --no-browser          # print the link, do not open a browserinkstudioai login --key isk_...         # save a key from your account pageecho "$KEY" | inkstudioai login --with-key

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.

sh
inkstudioai generate "a fox in a crescent moon"inkstudioai gen "koi fish with waves" --style japanese --colorinkstudioai gen "rose and dagger" --skin --openinkstudioai gen "minimal mountain range" --out designs/inkstudioai gen "lotus flower" --out lotus.webpinkstudioai gen "compass rose" --negative "text, letters" --no-saveinkstudioai gen "lotus flower" --out lotus.webp --force   # replace lotus.webp
OptionWhat it does
-s, --style <id>Style id from inkstudioai styles. Default: minimal
-c, --colorColor ink. Default: black ink
--skinShow the design on skin instead of a white background
--negative <text>Things to leave out of the design
-o, --out <path>File or directory for the image. Default: the current directory
--forceOverwrite the --out file if it exists
--no-saveDo not download the image, only print its URL
--openOpen the image when it is ready

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.

sh
inkstudioai styles

designs

List the designs saved to your account, newest first.

sh
inkstudioai designsinkstudioai designs --limit 50 --page 2

gallery

Search the public gallery. No login needed.

sh
inkstudioai galleryinkstudioai gallery "minimalist wave" --limit 5

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.

sh
inkstudioai whoami
text
  Account          [email protected] (Ana)  Plan             Active, 8 days left (ends Nov 1, 10:00 UTC)  Free designs     0  Premium credits  28 (8 plan, 20 purchased) for the image tools on the website  Designs made     14  API today        3 of 50 generations  Next design      Paid quality  API key          isk_AbCdEfGh… (config file)

pricing

Show the plans and credit packs.

sh
inkstudioai pricing

buy

Open Stripe checkout for a plan or credit pack. The purchase is added to the signed-in account.

sh
inkstudioai buy 7-day-accessinkstudioai buy 7-day-access --no-browser   # only print the checkout link

open

Open a page of the website.

sh
inkstudioai open accountinkstudioai open pricinginkstudioai open developers

logout

Remove the saved key from this computer. The key still works on the server until you revoke it on your account page.

sh
inkstudioai logout

Use with AI agents (MCP)

inkstudioai mcp runs a Model Context Protocol server over stdio. It gives an agent these tools:

ToolWhat it does
loginSign in from the chat: returns a link and code to approve in the browser
generate_tattooCreate a design from a prompt, style, color, and background. Returns the image, so the client can show it in the chat
list_stylesList the style ids
get_accountShow the plan, free designs, credits, and usage
search_gallerySearch the public gallery
get_pricingList plans and credit packs
create_checkoutCreate a Stripe checkout link for the user to open. It charges nothing by itself

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

sh
claude mcp add inkstudioai --env INKSTUDIO_API_KEY=isk_... -- npx -y inkstudioai mcp

If you ran npx inkstudioai login, or want to sign in with the login tool, you can leave out the key:

sh
claude mcp add inkstudioai -- npx -y inkstudioai mcp

Claude Desktop (claude_desktop_config.json)

json
{  "mcpServers": {    "inkstudioai": {      "command": "npx",      "args": ["-y", "inkstudioai", "mcp"],      "env": { "INKSTUDIO_API_KEY": "isk_..." }    }  }}

Cursor (~/.cursor/mcp.json or .cursor/mcp.json in a project)

json
{  "mcpServers": {    "inkstudioai": {      "command": "npx",      "args": ["-y", "inkstudioai", "mcp"],      "env": { "INKSTUDIO_API_KEY": "isk_..." }    }  }}

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.

sh
inkstudioai generate "a paper crane" --json | jq -r .imageUrl

Exit codes: 0 success, 1 error, 2 wrong command or options, 3 design created but the image file not saved.

Configuration

SettingWhere
API key--api-key, then INKSTUDIO_API_KEY, then the saved key
Saved key$XDG_CONFIG_HOME/inkstudioai/config.json, default ~/.config/inkstudioai/config.json, on Windows %APPDATA%\inkstudioai\config.json. Only your user can read it
API URLINKSTUDIO_API_URL, default https://inkstudioai.com/api/v1
Do not open a browserINKSTUDIO_NO_BROWSER=1
No colorsNO_COLOR=1 or --no-color

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

來源:README.md,提交 ca9a3b5

工具

7

login

Sign in to Ink Studio AI

Sign in without a terminal. The first call returns a link and a code: give both to the user, who approves the code in the browser (new accounts get one free design). After the user approves, call login again. It saves the API key on this computer, and the other tools then work without a restart.

無需輸入參數。

generate_tattoo

Generate tattoo design

Create a tattoo design from a text prompt. Takes 10 to 40 seconds. Returns the image and its URL. Uses one generation from the account. The design is saved privately to the user's account.

輸入參數colorstyleprompt必填backgroundnegativePrompt

list_styles

List tattoo styles

List the style ids that generate_tattoo accepts.

無需輸入參數。

get_account

Get account status

Show the plan, free generations left, premium credits, and API usage today.

無需輸入參數。

get_pricing

Get pricing

List the plans and credit packs with their sku and price in USD.

無需輸入參數。

create_checkout

Create checkout link

Create a Stripe checkout link for a plan or credit pack sku from get_pricing. Nothing is charged until the user opens the link and pays. Give the URL to the user.

輸入參數sku必填

版本歷史

2
  1. v0.1.1最新Oct 25, 2026
  2. v0.1.0Oct 24, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分