ariana-dot-dev/kimi-box-plugin/box-sdk-python
Claude Code and agent skill by ariana-dot-dev/kimi-box-plugin
- community
Checking that the SKILL.md file is still in the repository.
Use the ascii-box-sdk Python client — install, Configuration/ApiClient, create/prompt/events lifecycle, waiters (wait_until_ready, wait_for_prompt), stream_prompt/stream_events, file/command helpers, and ApiException handling. Use when writing Python code that drives Box programmatically.
Install
npx vskill@latest install ariana-dot-dev/kimi-box-plugin/box-sdk-pythonSKILL.md
Box Python SDK
Package: ascii-box-sdk (PyPI). For raw HTTP see the box-api skill; for shell integration the box-cli skill.
Configure
Request models live under ascii_box_sdk.models (snake_case attributes; JSON uses the API's camelCase).
Create → prompt → events → stop
Create options: ttl_seconds (None = no auto-stop), env (per-box vars, ≤100 / 64 KB), no_env=True (withhold all account secrets — required when the box belongs to one of your users; a fork of a no-env box is always no-env).
Methods (all on BoxApi, snake_case)
Account: me(), limits(), repos(sync, q, ...), select_repo(RepoSelectionRequest), api_keys(), secrets(), update_secrets(SecretsUpdateRequest) (full replacement — send everything that should remain). Lifecycle: boxes(state, limit, cursor), create(CreateBoxRequest), get(box_id), update(box_id, UpdateBoxRequest) (name, ttl_seconds, subdomain), stop(box_id), resume(box_id, ResumeRequest) (no_env), fork(box_id, ForkRequest) (env, no_env), remove(box_id). Work & access: prompt(box_id, PromptRequest), prompt_run_status(box_id, prompt_id), events(box_id, limit, cursor, type), read_file(box_id, path, encoding="utf8"), write_file(box_id, FileWriteRequest), command(box_id, CommandRequest) (command, cwd, timeout_seconds — also runs in-box tools like host/lux), artifact(box_id, path) → bytes, interrupt(box_id), desktop(box_id, vnc, theme, request_body) (VNC ungated: request_body={"publicAccess": True}; if provisioning true, poll again), ssh_key(box_id, SshKeyRequest). Snapshots: list_snapshots(), list_box_snapshots(box_id), get_latest_box_snapshot(box_id), get_snapshot_tree(snapshot_id), get_snapshot_file(snapshot_id, path), get_snapshot_download(snapshot_id) — snapshot reads work while the box is stopped.
Waiters & helpers
Use wait_for_prompt/wait_for_prompt_done for completion — do not infer it from box.state plus event polling.
Streaming responses & tool calls
stream_events(box, box_id, type="prompt,response,git_checkpoint") gives a dashboard-style feed. Both long-poll the events cursor API — no SSE/WebSocket needed. Streaming partials set data.is_streaming.
Errors
Methods raise ApiException on non-2xx:
Redact API keys, secrets, and desktop_url values from logs. Prompting without configured provider credentials → error code provider_not_configured.
Docs: https://docs.ascii.dev/box/sdks/python
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
- SKILL.md in the repositoryCheckingskills/box-sdk-python/SKILL.md
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
[](https://verified-skill.com/skills/ariana-dot-dev/kimi-box-plugin/box-sdk-python)