From ink
Deploy the current project to Ink (ml.ink). Use when the user wants to deploy, ship, publish, or host their code on Ink.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ink:deploy [service-name][service-name]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Deploy the current project to Ink (ml.ink) via `POST https://api.ml.ink/graphql`.
Deploy the current project to Ink (ml.ink) via POST https://api.ml.ink/graphql.
Auth: Authorization: Bearer $INK_API_KEY (format dk_live_...). Check it's set first; if not, tell user to get one from https://ml.ink → Settings → API Keys.
Run a schema introspection query (no auth needed) to discover the exact mutation name, input type, and return fields for creating/updating a service. Also introspect the input type to see all available fields.
Read project files to detect the stack and determine configuration:
| File | Stack | Recommended config |
|---|---|---|
package.json | Node.js | railpack, 512Mi, 0.5 vCPU |
requirements.txt / pyproject.toml | Python | railpack, 512Mi, 0.5 vCPU |
go.mod | Go | railpack, 256Mi, 0.25 vCPU |
Cargo.toml | Rust | railpack, 512Mi, 0.5 vCPU |
Dockerfile | Docker | dockerfile, 512Mi, 0.5 vCPU |
docker-compose.yml | Compose | dockercompose, 512Mi, 0.5 vCPU |
index.html (no server) | Static | static, 128Mi, 0.25 vCPU |
Detect the port the app listens on (check code, Dockerfile EXPOSE, config). If not found:
8080 (nginx, automatic)publishDirectory: always 80803000Check .env.example, README, or config for required environment variables.
Build packs: railpack (auto-detect, works for almost everything), dockerfile, static, dockercompose.
Memory: 128Mi, 256Mi, 512Mi, 1024Mi, 2048Mi, 4096Mi.
vCPUs: 0.25, 0.5, 1, 2, 3, 4.
Query the service list to see if already deployed. updateService is create-or-update — if the name exists it redeploys; if not it creates.
GitHub (repo already on GitHub):
host: "github" and repo as owner/name (NOT the full URL)Internal git (no GitHub):
host: "internal"git remote add ink <REMOTE_URL>
git push ink main
Call the service create/update mutation with detected config.
$ARGUMENTS if provided, else derive from directory name (lowercase, alphanumeric + hyphens)owner/name for GitHub, ink/name for internal — never full URLsrootDirectory, dockerfilePath, publishDirectory must be relative (no leading /, no ..)publishDirectory only valid with railpack; dockerfilePath only valid with dockerfilePORT env var is auto-injected, don't set it manuallyAsk the user for secret env var values — never guess them.
Poll service status. Expected: queued → building → deploying → active.
If failed: query build logs.
If crashed: query runtime logs. Common causes:
localhost instead of 0.0.0.0When active, tell the user:
fqdn fieldProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub opensitesai/claude-code-ink