ariana-dot-dev/kimi-box-plugin/box-api

Claude Code and agent skill by ariana-dot-dev/kimi-box-plugin

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Box HTTP API v1 reference — base URL, bearer auth, response envelope, error codes, box lifecycle states, prompt providers/models, and every endpoint. Use when calling the Box API directly with curl/fetch/httpx instead of the CLI or SDKs.

Install

npx vskill@latest install ariana-dot-dev/kimi-box-plugin/box-api

SKILL.md

Box HTTP API v1

Base URL: https://ascii.dev/api/box/v1 — auth is Authorization: Bearer $BOX_API_KEY on every request (create keys in the Box dashboard, API Keys tab). For typed clients prefer the SDKs (box-sdk-typescript / box-sdk-python skills); for shell integration the CLI (box-cli skill).

Response envelope & errors

Every v1 JSON body has ok (boolean) and type (stable discriminator, e.g. box.list, prompt.queued). Errors keep HTTP status authoritative and add a structured envelope:

json
{"ok": false, "type": "box.error", "status": 409, "code": "provider_not_configured", "message": "...", "error": {"code": "...", "message": "...", "status": 409, "details": {}}, "requestId": "req_..."}
StatusCodesAction
400invalid_json, prompt_required, provider_required, invalid_name, no_changes, machine_not_running, desktop_not_ready, invalid_ssh_key, stop_failedFix request / wait for runnable state
401unauthorizedValid bearer token
402billing_required, box_access_inactiveSend user to returned billing URL
404not_foundRefresh local state
409account_not_ready, provider_not_configured, box_not_promptable, resume_failed, fork_failed, box_restoring (retryable), box_securing (retryable)Resolve prerequisite / retry
429rate_limited, daily_limit_reached, limit_reachedBack off, show limit
5xxinvalid_json_response, stream_failed, http_500Retry idempotent calls with jitter; log requestId

Lifecycle states

provisioning/provisioned/cloning → poll GET /boxes/{id}; ready/idle → accepts prompts and access; running → agent work in progress; archiving → poll to archived; archived → resume or fork; error → show error, allow stop/delete/resume/fork.

idle/running only track work queued via POST /prompt — your own SSH/command-endpoint processes do not change state. Wait for ready or idle before sending commands (earlier commands run before per-box env is applied).

Prompt providers

codex (models gpt-5.5, gpt-5.4 default, gpt-5.4-mini, gpt-5.3-codex; efforts none–xhigh) and claude-code (models claude-fable-5, opus, sonnet default, haiku; efforts low–max except haiku). claude is accepted as an alias; store claude-code. Omit model to use the account's saved default. Missing provider credentials → provider_not_configured with a setup URL.

Core loop (curl)

bash
export BOX_API_BASE="https://ascii.dev/api/box/v1"
BOX_ID=$(curl -sS -X POST "$BOX_API_BASE/boxes" \
-H "Authorization: Bearer $BOX_API_KEY" -H "Content-Type: application/json" \
-d '{"ttlSeconds":3600}' | jq -r '.box.id')
curl -sS "$BOX_API_BASE/boxes/$BOX_ID" -H "Authorization: Bearer $BOX_API_KEY" # poll until ready/idle
curl -sS -X POST "$BOX_API_BASE/boxes/$BOX_ID/prompt" \
-H "Authorization: Bearer $BOX_API_KEY" -H "Content-Type: application/json" \
-d '{"provider":"codex","model":"gpt-5.4","reasoningEffort":"medium","prompt":"Run tests, fix failures, report back."}'
curl -sS "$BOX_API_BASE/boxes/$BOX_ID/events" -H "Authorization: Bearer $BOX_API_KEY"
curl -sS -X POST "$BOX_API_BASE/boxes/$BOX_ID/stop" -H "Authorization: Bearer $BOX_API_KEY"

Create options: ttlSeconds (null = no auto-stop, max 2592000), env (per-box vars), noEnv: true (withhold all account secrets — required for boxes given to your users). Run any in-box tool (including host and lux) through POST /boxes/{boxId}/commands: {"command":"host 3000 --private","cwd":"my-repo","timeoutSeconds":60}.

Endpoints

EndpointPurpose
GET /meCurrent account user
GET /limitsQuota, billing, canStart
GET /repos, POST /reposList / select GitHub repos cloned into new boxes
GET /api-keysAPI key metadata (never raw secrets)
GET /secrets, POST /secretsRead / fully replace account env vars + secret files
GET /boxes, POST /boxesList / create
GET /boxes/{boxId}, PATCH /boxes/{boxId}, DELETE /boxes/{boxId}Get / rename+TTL+subdomain / delete
POST /boxes/{boxId}/stop /resume /forkLifecycle actions (fork accepts env, noEnv; resume accepts noEnv)
POST /boxes/{boxId}/promptQueue agent work
GET /boxes/{boxId}/prompts/{promptId}Prompt run status (sending/queued/running/finished/failed)
GET /boxes/{boxId}/eventsTyped event history (prompt, response, git_checkpoint, usage_limit, ...; cursor pagination, type= filter)
GET /boxes/{boxId}/files, PUT /boxes/{boxId}/filesRead / write a file in the work dir (path, content, encoding utf8/base64)
POST /boxes/{boxId}/commandsBounded command in work dir (command, cwd, timeoutSeconds)
GET /boxes/{boxId}/artifacts?path=Download a file artifact
POST /boxes/{boxId}/interruptInterrupt running agent work
POST /boxes/{boxId}/desktopDesktop stream URL (?vnc=1, ?theme=light; body {"publicAccess":true} for ungated VNC). Treat URLs as secrets
POST /boxes/{boxId}/sshkeyAuthorize a public SSH key
GET /snapshots, GET /boxes/{boxId}/snapshots, GET /boxes/{boxId}/snapshots/latestSnapshot listing
GET /snapshots/{snapshotId}/tree /files?path= /downloadInspect/download snapshot content; works while the box is stopped

Treat API keys, desktopUrl, and any _token URL as secrets — never log them unredacted.

Full per-endpoint reference: https://docs.ascii.dev/box/api/v1 (OpenAPI: https://docs.ascii.dev/openapi/box-v1.yaml)

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/ariana-dot-dev/kimi-box-plugin/box-api/badge)](https://verified-skill.com/skills/ariana-dot-dev/kimi-box-plugin/box-api)

Something wrong with this skill or its page? Tell us.