fanbox-agent

fanbox-agent is a skill for Claude Code, Codex from alchaincyf/fanbox. It costs 101 tokens per session (2,064 once invoked), scanned B, original, MIT.

A controller for terminal windows inside the FanBox desktop app. It can list windows, read their output, send commands, open new windows, and schedule commands.

In plain words
What is it for?
Use it to start work in another terminal, monitor its progress, send input, wait for it to reach a stopping point, or run scheduled terminal tasks. It only works when FanBox provides the required environment.
Why use it?
It lets you coordinate several agent terminals from one place instead of switching between them manually.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions Codex.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/xxx/Documents/写作.

Good fit Use it to start work in another terminal, monitor its progress, send input, wait for it to reach a stopping point, or run scheduled terminal tasks. It only works when FanBox provides the required environment.

Compare 6 skills from other repositories ↓
About the project

FanBox is a desktop workspace for coding agents that combines local file browsing and editing with an embedded terminal. Developers use it to run agents such as Claude Code or Codex, see which files and lines they change, and take over the work when needed.

alchaincyf/fanbox · 1,005 stars · on GitHub

Install

Getting it into your agent

There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for fanbox-agent

README.md
[![agentmods](https://agentmods.dev/badge/skills/alchaincyf/fanbox/fanbox-agent/github.svg)](https://agentmods.dev/skills/alchaincyf/fanbox/fanbox-agent)
Your own site
<a href="https://agentmods.dev/skills/alchaincyf/fanbox/fanbox-agent"><img src="https://agentmods.dev/badge/skills/alchaincyf/fanbox/fanbox-agent/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for fanbox-agent

Your own site · 80×15
<a href="https://agentmods.dev/skills/alchaincyf/fanbox/fanbox-agent"><img src="https://agentmods.dev/badge/skills/alchaincyf/fanbox/fanbox-agent.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 101 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,064 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00101 $0.02064
Opus 5 $0.00051 $0.01032
Sonnet 5 $0.00020 $0.00413
Haiku 4.5 $0.00010 $0.00206

Measured 5d ago against content hash 4eea9077c5cd, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade B, and why

fanbox-agent scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Sends data to an external URLmediumData exfiltration

A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.

curl "${CT[@]}" -X POST -H 'Content-Type: application/json' -d '{"id":"t5"}' "$FANBOX_CTL/kill"

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl "${CT[@]}" "$FANBOX_CTL/terminals"
Origin

Copies of this mod

1 near-identical copy found in the catalogue:

skills/fanbox-agent/SKILL.md · 135 lines

How it starts

The opening of the file, as written. The whole thing — 135 lines — stays where its author put it; the contents beside it link to each section on GitHub.

FanBox 终端控制

只在 FanBox 桌面 app 的终端里可用。先确认门票在手:

[ -n "$FANBOX_CTL" ] && echo "在 FanBox 里,我是 $FANBOX_TERM_ID 号窗口" || echo "不在 FanBox 终端里,本 skill 不可用"

三个环境变量由 FanBox 注入:FANBOX_CTL(接口地址)、FANBOX_CTL_TOKEN(门票,每次启动随机、只存在于 FanBox 终端的环境里,绝不外传、不写进文件)、FANBOX_TERM_ID(自己的窗口 id)。

别给自己($FANBOX_TERM_ID)发指令——那会把你自己的输入流打乱甚至死循环。

接口速查

所有请求带 x-fanbox-token 头。以下用 CT 缩写公共参数:

CT=(-s -H "x-fanbox-token: $FANBOX_CTL_TOKEN")

列出所有终端窗口(id / 目录 / 前台进程 / 忙闲 / 最近输出尾巴):

curl "${CT[@]}" "$FANBOX_CTL/terminals"
# → {"ok":true,"terminals":[{"id":"t2","cwd":"…","proc":"claude","busy":false,"hooked":true,"state":"done","tail":"…"}]}

读某窗口最近输出(去 ANSI 纯文本,默认 200 行,最多 2000):

curl "${CT[@]}" "$FANBOX_CTL/read?id=t2&lines=100"

给窗口发指令(默认自动补回车提交;"submit": false 只输入不提交;多行文本发给 claude 等 TUI 加 "paste": true 走 bracketed paste 整块粘贴):

curl "${CT[@]}" -X POST -H 'Content-Type: application/json' \
  -d '{"id":"t2","text":"npm test"}' "$FANBOX_CTL/send"

控制键直接发字符本身,如 Ctrl-C:{"id":"t2","text":"","submit":false}

新开终端窗口(可选 autorun 开窗即执行,会等 shell 就绪再敲):

curl "${CT[@]}" -X POST -H 'Content-Type: application/json' \
  -d '{"cwd":"/path/to/project","autorun":"claude \"跑通所有测试\""}' "$FANBOX_CTL/create"
# → {"ok":true,"id":"t5","autorun":true}

等窗口告一段落(HTTP 长轮询,timeoutMs 最长 240000):

curl "${CT[@]}" -X POST -H 'Content-Type: application/json' \
  -d '{"id":"t5","timeoutMs":120000}' "$FANBOX_CTL/wait"

三种等法:

  • 默认:前台回到裸 shell 且输出静默 ≥ idleMs(默认 2000)——适合等普通命令跑完
  • "idle":"quiet":只看输出静默——适合等 claude 等常驻 TUI 回答完,建议配 "idleMs":3000
  • "until":"正则":新输出匹配到正则就立刻返回——注意只匹配 wait 开始之后的新输出,所以要在结果出现前就发起 wait。命令回显也算输出:你敲的命令本身会先出现在流里,正则要用 ^ 锚定行首(如 "^DONE$")才不会匹配到自己发的命令

返回 {ok, idle|matched|exited|timeout, elapsed, output},output 是等待期间的输出(最后 8KB),通常不用再 read。

关闭窗口

curl "${CT[@]}" -X POST -H 'Content-Type: application/json' -d '{"id":"t5"}' "$FANBOX_CTL/kill"

定时任务:用户白话 → 你换算成 schedule

Read the full file on GitHub · 135 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago Changed · +1 lines 4eea9077c5cd
  2. 9d ago First seen · 134 lines · 101 tokens per session scan B 631a6c299240

Subscribe to this mod's changes

fanbox-agent is a skill published in the GitHub repository alchaincyf/fanbox (1,005 stars, last pushed 5d ago), licensed MIT. It adds 101 tokens to every session and 2,064 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

chronicle

Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…

microsoft/vscode · 72 tokens

generate-run-commands

Generate or modify run commands for the current session. Use when the user wants to set up or update run commands that appear in the session's Run button.

microsoft/vscode · 36 tokens

get-search-view-results

Get the current search results from the Search view in VS Code.

microsoft/vscode · 17 tokens

channel_message

Use this skill to proactively send a one-way message to a user/session/channel, usually only when the user explicitly asks to send to a channel/session or when proactive notification is needed. First query sessions with qwenpaw chats list, then push with qwenpaw channels send.

agentscope-ai/QwenPaw · 58 tokens

tmux

Remote-control tmux sessions for interactive CLIs by sending keystrokes, capturing pane output, and managing terminal multiplexer windows. Enables parallel coding-agent orchestration, background process management, and REPL interaction via sockets. Use when the agent needs to launch, monitor, or coordinate…

elizaOS/eliza · 87 tokens

things-mac

Manage Things 3 via the things CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database). Use when a user asks Otto to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.

elizaOS/eliza · 67 tokens