abox-live
Monitor Claude agents running inside your containers, from the host or phone — the single entry point (absorbed the old `abox`).
Skill by yichiche
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/yichiche-abox-live
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/abox-live
What's inside
- Skill name
abox-live- Description
- Monitor Claude agents running inside your containers, from the host or phone — the single entry point (absorbed the old `abox`). Two views: LIVE (process-based, exact container attribution via cgroup) and `ps` (transcript-file view incl. finished sessions). Read any session (`tail`/`watch`/`path`), and act on live ones (`stop`/`say`/`web`). Use when asked 'what are my agents doing', 'list container agents', 'which sessions are live', 'what container is X running in', 'is anything stuck/blocked', 'show me what <session> is doing', or to check on / talk to background container work.
- License
- MIT
- Instructions
- 363 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- body: contains an absolute path from the author's machine
Files (12)
- SKILL.md
- abox-live
- abox_inbox.py
- abox_live.py
- abox_parse.py
- abox_report.py
- abox_say.py
- abox_snapshot.py
- abox_stop.py
- abox_transcript.py
- abox_web.py
- claude-container-auth.sh
SKILL.md (first lines)
# abox-live — the single container-agent monitor (live sessions ↔ containers) In-container `claude` (billed via the AMD gateway API key) writes its transcript to `/root/.claude/projects/<proj>/<id>.jsonl`, bind-mounted to the host's `~/.claude/projects/...`. So the host watches every container agent by reading those JSONL files — no docker exec, no resume needed for monitoring. **This is the one entry point.** It replaced the old standalone `abox` CLI, whose reader engine (`ps`/`tail`/`watch`/`path`) now lives here (`abox_report.py`, `abox_parse.py`). Two complementary views: - **`ps`** — lists transcript **files**, so it includes **finished** sessions; but in the legacy shared dir it cannot attribute the container and prints `shared?`. - **default (live)** — starts from running **processes**, so container attribution is **exact** even in the shared dir: ``` claude PID ──► /proc/PID/cgroup ──► docker id ──► container name (always exact) claude PID ──► /proc/PID/cwd ──► project slug ──► session .jsonl (see evidence) ``` ## Run ```bash abox-live # DEFAULT: LIVE table, my containers ↔ sessions (exact attribution) abox-live <name> # only live sessions in the container matching <name> (substring ok) abox-live --all # include other people's containers (akao_*, soga_*, …) abox-live -v # + each session's latest turn abox-live --pid # add the owning PID column abox-live --group # grouped-by-container view instead of the table abox-live --json # machine-readable (full session id + transcript path; has "mine") # reader engine (absorbed from `abox`): abox-live ps [min] # ALL recent sessions incl. finished (transcript-file view; may show shared?) abox-live tail <id> [n] # last n turns of a session (id prefix ok) abox-live watch <id> # live-follow a session (Ctrl-C to stop) abox-live path <id> # print the session's JSONL path # act on a live session: abox-live stop <id> # stop a live session (prints the target; needs --yes to act) abox-live say <id> "msg" # send a follow-up to that session via `claude --resume` abox-live instruct <id> "msg" # queue instruction (then: abox-live drain --yes) abox-live drain [--yes] # execute queued instructions abox-live inbox # list instruction queue abox-live web # LOCAL web UI — human view + send instructions (POST /api/say) # remote dashboard (phone / laptop Claude): abox-live publish # rebuild the stable HTML + print the Artifact params → then call the Artifact tool abox-live snapshot -o F # self-contained HTML file for hand-off (SendUserFile), NOT published ``` ## How to answer common asks - **"list agents" / "what's running"** → `abox-live` (live, exact container). Add `abox-live ps` if the user wants finished sessions too. - **"what is <session> doing" / "show me the aiter one"** → `abox-live tail <id> 8` (resolve the id from the table first). - **"is anything stuck / waiting for input"** → `abox-live -v`; a session whose latest is a question or `[Request interrupted…]` and is idle is likely waiting; confirm with `tail`. ## Talking to a session (`abox-live say`) Send a follow-up instruction to a specific agent and get its reply, by continuing the conversation with `claude --resume <session> -p "<msg>"` run in the right place: ```bash abox-live say fda052ce "往下繼續找 sglang 今天的重點" abox-live say 5a699b21 "跳過 conc128,先把結果貼出來" --container jacky-…-inferencemax-0714 abox-live say fda052ce "…" --force # resume even though a live process holds it abox-live say fda052ce "…" --dangerous # pass --dangerously-skip-permissions ``` How it routes and guards: - **cwd** comes from the transcript's recorded `cwd` field (authoritative), not the dir-name slug. - **Container sessions** resume via `docker exec` into the owning container, gated by the same bind-mount ownership check as `bridge.sh` (refuses other users' containers). - **Host sessions** run as **root** with `HOME=/home/yichiche` — host transcripts are usually `root:root` (a container wrote them through the bind-mounted `~/.claude`), so running as `yichiche` gives "No conversation found". This was the one non-obvious bug in building it. - **Refuses a session with a live process** unless `--force`: two `claude` processes appending to one transcript interleave and corrupt it. Stop it first, or `--force`. - Default timeout 600s; the reply is printed. Long tasks may outlive it — then poll with `abox-live tail`. This overlaps `bridge.sh exec`, but that starts a **fresh** headless agent; `say` **continues an existing session** so the agent keeps all its context. ## Remote Control instruction flow (`instruct` / `drain`) From your phone via **Command Center** (Remote Control), you cannot click buttons on the published Artifact — but RC Claude **can run shell commands**. Two paths: ```bash abox-live say fda052ce "繼續跑 benchmark" # immediate (refuses if agent is live) abox-live instruct fda052ce "繼續跑 benchmark" # queue for later abox-live drain --yes # execute all pending queued items abox-live inbox # show queue ``` **Typical RC loop from phone:** 1. Open Command Center Remote Control session 2. Ask: 「列出 container agent 狀態」→ RC runs `abox-live` 3. Ask: 「叫 session fda052ce 繼續」→ RC runs `abox-live instruct fda052ce "…"` then `abox-live drain --yes` 4. Or paste the **instruction panel** from the published dashboard (copy-select blocks) The published dashboard (`abox-live publish`) shows: - **Human view** — your instructions + agent replies; internal tool work folded under `⋯ internal steps` (`<details>`) - **Instruction panel** per live session — copy-paste `say` / `instruct` commands + natural-language RC prompt - **Inbox section** at top — pending queued instructions awaiting `drain` ## Stopping a session ```bash abox-live stop 259baf41 # shows container / cwd / pid / last line, kills nothing abox-live stop 259baf41 --yes # SIGTERM abox-live stop 259baf41 --yes --force # SIGKILL if it ignores SIGTERM ``` It **refuses** when the row's evidence is `ambiguous` or `none` — the pid could belong
From yichiche/agent-box, MIT.
More from yichiche/agent-box
- 0.600score
gfx950-asm-development
yichiche
Develop, validate, and tune hand-written AMD gfx950 assembly kernels, with rocprof profiling.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
implement-kernel
yichiche
Implement a kernel optimization for SGLang on MI355/ROCm.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gpu-status
yichiche
Show which AMD GPUs are free and the exact CUDA_VISIBLE_DEVICES to use for SGLang.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
commit-push
yichiche
Commit (if needed) and push to the user's fork, with repo-aware remote selection and user confirmation before push.
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
generate-profile
yichiche
Generate an e2e profiling trace of an SGLang server run.
SkillAFreshness: A★ 2Claude Code +9 - 0.594score
pr-conflict-fix
yichiche
Resolve a conflicting GitHub PR inside a throwaway container built from an image you name.
SkillAFreshness: A★ 2Claude Code +9 - 0.594score
compare-kernels
yichiche
Compare kernel categories and timings between two trace analysis Excel files.
SkillAFreshness: A★ 2Claude Code +9 - 0.594score
commit-push-pr
yichiche
Commit, push, and create a PR in one flow — checks state at each stage, confirms push target, collects accuracy/benchmark data, drafts PR in HackMD format for…
SkillAFreshness: A★ 2Claude Code +9 - 0.589score
ci-analysis
yichiche
Analyze GitHub Actions CI failures for a pull request: trace root-cause jobs vs fast-fail cascades (check-pr-test-health), fetch job logs with gh, attribute…
SkillAFreshness: A★ 2Claude Code +9 - 0.585score
pr-ci-watch
yichiche
Watch a list of sgl-project/sglang PRs on two cadences (daily, or high-priority every 2h) and babysit them — re-run red NVIDIA CI only after /ci-analysis…
SkillAFreshness: A★ 2Claude Code +9 - 0.557score
debug-kernel-crash
yichiche
Debug GPU kernel crashes in SGLang (CUDA and ROCm) using @debug_kernel_api logging — illegal memory access, device assert, NaN/Inf, wrong shapes.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
add-sgl-kernel
yichiche
Step-by-step guide for adding a heavyweight AOT kernel — CUDA path via sgl-kernel (CUTLASS), ROCm/MI355 path via aiter C++/HIP (CK tile, assembly).
SkillBFreshness: B★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/yichiche/agent-box
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from yichiche
- 0.600score
gfx950-asm-development
yichiche
Develop, validate, and tune hand-written AMD gfx950 assembly kernels, with rocprof profiling.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
implement-kernel
yichiche
Implement a kernel optimization for SGLang on MI355/ROCm.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
gpu-status
yichiche
Show which AMD GPUs are free and the exact CUDA_VISIBLE_DEVICES to use for SGLang.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
commit-push
yichiche
Commit (if needed) and push to the user's fork, with repo-aware remote selection and user confirmation before push.
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
generate-profile
yichiche
Generate an e2e profiling trace of an SGLang server run.
SkillAFreshness: A★ 2Claude Code +9 - 0.594score
pr-conflict-fix
yichiche
Resolve a conflicting GitHub PR inside a throwaway container built from an image you name.
SkillAFreshness: A★ 2Claude Code +9
Cite this page
abox-live skill. Agent Mart. https://agentmart.dev/skills/yichiche-abox-live (last updated 2026-10-24)