@caddis/cli

中文文档
0.4.100发布于 2026/11/09MITES Module构建来源已验证近 30 天下载 6603

Install, update and diagnose the caddis dev harness across every coding agent you use (Claude Code, agy/Antigravity, and more).

原始使用文档
文档目录12 节
  1. What it does
  2. Install
  3. Commands
  4. caddis doctor
  5. caddis status
  6. caddis update
  7. caddis init
  8. caddis hub
  9. Removing caddis
  10. Flags
  11. Where the caddis content comes from
  12. License

@caddis/cli

One command to install, update and diagnose the caddis dev harness across every coding agent you use.

npx @caddis/cli init      # detect your agents, confirm, install caddis into each
npx @caddis/cli doctor    # what is installed where, and what to do about it

If you use more than one coding agent, you have more than one place caddis can go stale. This CLI is the single front door.


What it does

caddis is a meta-installer. It detects the agents on your machine and drives each one's own native install mechanism — it never reimplements them, and it never installs an agent for you.

AgentDetected viaHow caddis is installedStatus
Claude Codeclaude on PATHits plugin marketplace✅
agy (Antigravity)agy on PATHthe caddis bundle shipped inside this package (--extras adds caddis-extras)✅
Codexcodex on PATH / ~/.codexconfig mergeplanned
GitHub Copilotcopilot on PATH / .github/copilot-instructions.mdconfig mergeplanned

Codex and Copilot are detected and reported, never written to. They are file-configured, which means supporting them properly requires merging into config you already own — that ships when it is safe, not before.

Absence is graceful. Missing agents are skipped with a reason, never an error. One agent failing never stops the others.


Install

npx @caddis/cli <command>      # no install
npm i -g @caddis/cli           # then just: caddis <command>

Requires Node >= 20.19.


Commands

caddis doctor

The one worth knowing. Every agent, the caddis version each actually has, whether that matches what this CLI ships, where the version was read from, and the exact command that fixes each gap.

Environment
  ✓ node 22.14.0
  • platform win32 x64
  • @caddis/cli 0.2.0
  ✓ shipped pool 1.3.39
      bundle antigravity-plugin @ 1.3.39
      bundle antigravity-plugin-extras @ 1.3.13

Agents
  ▲ Claude Code — caddis 1.3.38 → 1.3.39 available
      C:\Users\you\AppData\Roaming\npm\claude.CMD
      agent version 2.1.220
      read from `claude plugin list`
      → caddis update --agent claude
  ▲ agy (Antigravity) — caddis 1.3.38 → 1.3.39 available
      ~\.gemini\config\plugins\caddis\plugin.json
      → caddis update --agent agy
  • Codex — detected — not yet supported

Summary
  3 of 4 agents detected · 0 current · 2 stale · 0 not installed

  2 things to fix:
    • Claude Code has caddis 1.3.38, this CLI ships 1.3.39
      caddis update --agent claude
    • agy (Antigravity) has caddis 1.3.38, this CLI ships 1.3.39
      caddis update --agent agy

--strict exits non-zero when something needs fixing (for CI). Detected-but-unsupported agents are information, not failures, and never trip --strict. --json gives machine-readable output.

doctor also checks whether @caddis/cli itself is behind npm (a 5s npm view lookup, opt-in to doctor only — status/init/update stay network-free by default so they never feel hung offline). This matters because every per-agent drift check above compares against the pool bundled in this install — a CLI that is itself stale can under-report drift even though each individual comparison is correct. When behind, doctor adds:

  ▲ @caddis/cli 0.2.3 → 0.2.4 available
      npm i -g @caddis/cli@latest

and counts it as a --strict-tripping problem, same as an agent gap.

caddis status

The same facts as a glanceable table. Running bare caddis does this.

  caddis  cli 0.2.0  ·  pool 1.3.39  ·  extras 1.3.13

  AGENT              DETECTED  CADDIS  EXTRAS  STATE
  ─────────────────  ────────  ──────  ──────  ────────────────
  Claude Code        yes       1.3.38  —       update available
  agy (Antigravity)  yes       1.3.38  1.3.13  update available
  Codex              yes       —       —       planned
  GitHub Copilot     no        —       —       —

  2 agent(s) behind — run caddis update (or caddis doctor for detail)

caddis update

Brings every detected, supported agent up to the caddis version shipped in this CLI, through that agent's native mechanism. Agents already current are skipped (--force re-drives them).

Extras. caddis-extras is the optional long-tail skill library. It is never installed by default — it is large and always-loaded — but --extras adds it, and once installed, plain update keeps it current so it can't rot behind a forgotten flag. It versions independently of the core pool, so status and doctor report its drift in a separate column.

caddis init --extras       # core + extras
caddis update --extras     # add extras to an existing install

caddis init

The first run. Detects, shows exactly what it is about to run, asks, then installs. --yes skips the prompt for CI.

caddis hub

A local web page (127.0.0.1 only) with your repos, PRs, plans and live sessions. caddis hub start starts it in the background; caddis hub stop stops it.

Updates by itself. A running hub checks npm for a new @caddis/cli 60 s after it starts, then every 30 minutes. When a newer version is published, the hub installs it (npm i -g @caddis/cli@<version>), checks the installed version, and restarts on the same port. Open tabs show "caddis hub updated to X, reloading" and reload. A manual npm i -g @caddis/cli also restarts the hub within a minute. A failed install keeps the old hub running and tries again after an hour. Only a hub that runs from the global npm install installs updates: a hub from a dev checkout or npx only logs "update available". To check and log only, set "auto_update": false in ~/.caddis/hub/config.json. Each step goes to ~/.caddis/hub/hub.log.

Start at logon. caddis hub autostart enable starts the hub after each logon, so it comes back after a reboot. On Windows it creates the logon task caddis-hub. When Windows refuses the task ("Access is denied" for a user who is not an administrator), it puts caddis-hub.vbs in your Startup folder instead, and the message says which one it used. caddis hub autostart status shows which is in place; caddis hub autostart disable removes both.

Logins that last. Run caddis hub open to get a one-time login code and open the hub. Your session lasts 7 days without use and 30 days at most, and it survives a hub restart.

Timeline first, Board second. Roadmaps and plans open on the Timeline view by default, with the Board view as the second option. Click any phase tile on the Timeline to open the phase panel and read its Tracker status, PR links and plan section text.

Branch progress. A plan that an open PR changes shows the PR branch's Tracker and status:, with the badge on branch (PR #n). Done on main never goes back, and forks are not shown. The hub reads PR heads from GitHub and branch refs from the local origin refs, and never fetches. With no PR data, the line above the plans says branch progress off (no PR data). caddis hub export --prs <file> takes the output of gh pr list --json number,headRefName,isDraft,isCrossRepository,updatedAt. The export never publishes a branch name, and a privacy hit only in branch content publishes main only.

Guide Poster and Details. The Guide page has a Poster tab (with Workflow and Mind map views, plus a Print button for a two-page A3 landscape wall poster) and a Details tab. Every item on the poster links to its entry in Details.

Guide Wall poster. A third tab, Wall poster (#/guide/wall), shows one A4 landscape sheet: the daily commands in order, a card per stage (plan, build, review, ship, continuity, knowledge, setup), and the agents. The Print button prints exactly that sheet on one page. It is built from the same installed guide data as the other tabs, so a new command, agent or count appears by itself after caddis update and a hub restart. The text shrinks (to 60% at most) when the guide grows, so nothing is cut off. Each line is the first clause of the description; the Details tab has the full text.

Guide Map. A fourth tab, Map (#/guide/map), lays out the whole plugin: the daily loop (plan, build, review, ship) with its commands, the support lanes (continuity, knowledge, setup), the hooks as a timeline in the order a session fires them, the agents with their model and a writes files marker, the skills by family, and the runtimes that receive caddis. Every name links to its entry in Details. A filter box dims what does not match, and Print prints the map on A3 landscape. Nothing on the map is written by hand: it is built from the installed guide data, so a new command, agent, skill or hook appears by itself after caddis update and a hub restart.

Sessions from more than one agent. Claude Code sessions come from claude agents --json. agy (Antigravity) sessions come from the caddis agy hooks: each agy turn writes a status file, and the hub lists that session with an agy chip. A turn that starts sets working. A turn that ends sets waiting (waiting for you, after 45 s). A session that has not written for 10 minutes shows as idle, unless it waits and its agy process still runs. The hub drops a session when its process stops or when it has not written for 24 hours. Headless runs (CADDIS_HEADLESS) write nothing.

Any other agent can show its sessions the same way. Write one JSON file per session to ~/.caddis/sessions/<session-id>.json (CADDIS_HOME replaces the home folder). Write a temp file in that folder, then rename it over the target:

{
  "session_id": "c0ffee-1234",
  "harness": "my-agent",
  "caddis_version": "1.3.200",
  "pid": 4242,
  "started": 1793000000.0,
  "last_seen": 1793000300.0,
  "status": "waiting",
  "status_since": 1793000300.0,
  "cwd": "/work/shop",
  "repo_path": "/work/shop",
  "waiting_for": "input needed"
}
  • Times are Unix seconds. status is working or waiting; the hub ignores a file without one.
  • pid is the agent's own process, or null when it is not known. With a pid, the hub drops the session when that process stops. Without one, only the times count.
  • harness names the agent. The hub skips claude, because Claude Code sessions come from claude agents.
  • cwd puts the session under its repo. waiting_for is a short reason; it is shown when waiting.
  • The first six keys are the session heartbeat that caddis doctor already reads. Do not remove them.

Removing caddis

There is no caddis remove. This CLI installs and updates; it never uninstalls. Removal goes through each agent's own command — the same principle as everything else here:

claude plugin uninstall caddis@caddis         # Claude Code
claude plugin uninstall caddis-extras@caddis
agy plugin uninstall caddis                   # agy
agy plugin uninstall caddis-extras

npm uninstall -g @caddis/cli removes only this CLI, not the caddis plugins it installed into your agents. Uninstall those first if you want caddis gone entirely.


Flags

FlagEffect
--dry-runprint the exact vendor commands; change nothing
-y, --yesnever prompt
-a, --agent <name...>limit to specific agents (claude, agy, codex, copilot)
--extrasalso install the optional caddis-extras long-tail skills (init, update)
--jsonmachine-readable output (doctor, status)
--strictexit 1 when something needs fixing (doctor)
--no-update-notifierskip the "newer @caddis/cli available" check

Flags work before or after the subcommand: caddis update --dry-run and caddis --dry-run update are the same.

Always safe to preview:

$ caddis update --dry-run
  · Claude Code — dry run — nothing executed
      would run: claude plugin marketplace update caddis
      would run: claude plugin update caddis@caddis
  · agy (Antigravity) — dry run — nothing executed
      would run: agy plugin install <shipped bundle>

Where the caddis content comes from

The caddis bundles ship inside this npm package, versioned in lockstep with the CLI — the caddis you install is the caddis you get, with no extra fetch. That is why the tarball is a few MB: it carries both the core agy bundle and the optional caddis-extras library. doctor compares each agent's installed version against that shipped version; that difference is what "drift" means throughout.

License

MIT

版本与发布记录

@caddis/cli 共发布 105 个版本,首次发布于 2026/07/28;过去 12 个月发布了 105 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.100latest2026/11/09今天
0.4.992026/11/09今天
0.4.982026/11/081 天前
0.4.972026/11/072 天前
0.4.962026/11/053 天前
0.4.952026/11/054 天前

关于 @caddis/cli 的常见问题

@caddis/cli 是什么?

Install, update and diagnose the caddis dev harness across every coding agent you use (Claude Code, agy/Antigravity, and more).

如何安装 @caddis/cli?

在项目目录运行 npm install @caddis/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 caddis、caddis-cli、claude-glm、claude-oss、claude-deepseek,可以用 npx caddis 直接运行。

@caddis/cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/caddis__cli 是否存在。

@caddis/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@caddis/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.19。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@caddis/cli 可以商用吗?

@caddis/cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@caddis/cli 的下载量有多少?

根据 npm 官方下载统计,@caddis/cli 在 2026/10/09 – 2026/11/07 这 30 天内被下载 6,603 次,日均约 220 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@caddis/cli 还在维护吗?

最新版本 0.4.100 发布于 2026/11/09(今天);至今共发布 105 个版本,其中过去 12 个月发布了 105 个;首次发布于 2026/07/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。