Skip to content

Releases: tc3oliver/claude-team-kit

Claude Team Kit 0.1.8

Claude Team Kit 0.1.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Oct 00:04

Claude Team Kit 0.1.8 (prerelease)

The lead stops rationing on its own, sees which teammates need attention, and is woken less for
nothing. No new runtime dependencies (still only zod). The worker cap, model routing and sync
behaviour are unchanged. Two new options, both off by default.

This is still a public preview. Agent Teams are experimental in Claude Code and Mods (which carry
the cap and the team line) are early access, so it can break when Claude Code changes. Read "Known
limitations" before you rely on it.

The model no longer sees your quota

ctk_team_status used to return the 5h and weekly usage, reset times and cost on every call. In a
long team run the lead read them and stopped opening workers to "wrap up", which nobody had asked for
(#8). The figures now come back only when
/ctk is asked about usage. The band and Mission Control still show them to you.

If you do want a limit, set it yourself: team.stopAtFiveHourPct or team.stopAtCostUsd (0 is off).
Past it, a new teammate spawn is refused with TEAM_BUDGET_REACHED and you get a notice. Workers that
are already running carry on.

Which teammate needs you

  • Stalled: a teammate with a task in progress and no tool call for 10 minutes, or three failed
    calls in a row. It shows in the band and on Workers, and you get one notice per stall.
  • N ready · M idle in the band when there are tasks ready to start and teammates idle.
  • Unverified: a task a teammate marked done stays unverified until the lead runs a check.
  • Collisions: two live agents writing the same file are flagged, for information only.
  • Tokens per teammate on Workers. No price: Claude Code reports cost per session only.
  • The Usage page forecasts when the 5h limit is reached at the current pace.

Fewer wasted turns

  • A teammate, or the lead, that claims a task no longer gets its own task_assignment back. That echo
    used to wake it for a whole extra turn.
  • The lead is no longer woken by shutdown approvals, or by terminations that released no task.
  • The implementer does not load the Artifact and Workflow tools. It reports a test failure outside its
    own files and finishes, instead of waiting on other workers. Reviewers report at most 8 findings.
  • /ctk-report adds a Friction line, and the prompt suggests /ctk-report when the team finishes.

Also

Notices also show as an in-terminal toast, /ctk-doctor shows the engine version, ctk doctor
reports the mods check as unknown under WSL, and the team skill has preset recipes
(skills/team/references/presets.md).

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives
when the plugin version changes
(the manifest pins it), and it did — 0.1.7 to 0.1.8 — so a
normal update reaches you and keeps your options, the worker cap and model routing.

If you prefer a plain status line, set CTK_COLOR=0 in the env object of your
settings.json.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
to the env object of your settings.json and restarting (a plugin cannot do this for you).
/ctk-doctor checks the setup and prints the exact fix for anything missing.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay
in <config>/ctk/stats/. Claude Code has no rollback command; to return to an earlier release,
remove the marketplace, add it at that tag (/plugin marketplace add tc3oliver/claude-team-kit#v0.1.7) and install again with your options. Details:
docs/INSTALLATION.md.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them
    there is no cap, no team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other: a named Agent call that passes
    isolation: worktree is an ordinary subagent, which the cap does not count.
  • The settings compare-and-swap (from v0.1.2) is not a lock; see the threat
    model
    .
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug
    imperfectly, and no code checks that a task was verified.
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new
    events arrive (the counters in the stats file continue).
  • Always-on context is about 480 tokens, above the 250-token goal and close to the 500-token CI
    budget.

Platforms

Status
macOS Verified live: install, version-bump update with options kept, uninstall, the cap, guard states, Mission Control by real clicks
Linux, Windows CI only — tests, plugin validate --strict, plugin test and the pack audit run on ubuntu, macos and windows with Node 22 and 24. Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues. Include Claude Code's
version, your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste
credentials or settings files.

Published as

This is the GitHub prerelease v0.1.8 with the npm tarball attached. The earlier prereleases
v0.1.7, v0.1.6, v0.1.5, v0.1.4, v0.1.3, v0.1.2, v0.1.1 and v0.1.0 are unchanged. Not published to npm and not in any official Claude
Code plugin directory. The repository works as a plugin marketplace as it is, and installing from the
tag is what /plugin marketplace add tc3oliver/claude-team-kit#v0.1.8 does. npm publish stays a
manual step after review.

Claude Team Kit 0.1.7

Claude Team Kit 0.1.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 20:33

Claude Team Kit 0.1.7 (prerelease)

Team runs cost fewer tokens and say more about themselves. No new runtime dependencies (still only
zod), and the worker cap, model routing and sync behaviour are unchanged.

This is still a public preview. Agent Teams are experimental in Claude Code and Mods (which carry
the cap and the team line) are early access, so it can break when Claude Code changes. Read "Known
limitations" before you rely on it.

Fewer tokens in a team run

  • Workers report once, within a word limit. A worker used to send its final reply, a
    SendMessage copy, and another report when a task_assignment echo woke it.
  • The engine's "task tools haven't been used recently" reminder is dropped once tasks exist.
  • output.bashFilter (off by default) shortens long test, build, lint and log output to its
    head, tail and failure lines. The full output is saved under <config>/ctk/recall/<session>/ and
    the shortened result names the file. Turn it on in Mission Control's Config page or with
    ctk config set output.bashFilter true.
  • A Cache cell in the band warns when the prompt cache is cold or mostly missed, which makes
    every following request pay for the whole prefix again.

Knowing what the team did

  • Desktop notices when every teammate has finished, when one fails, and when the cap refuses a
    spawn. They go through your Notification hooks like any other notice.
  • /ctk-report lists the session's tasks, spawns, cost, models and changed files.
  • Mission Control's worker detail page has an Open transcript button (Claude Code 2.1.300+).
  • After the main session compacts, a short team summary is kept, so the lead still knows who is
    live and which tasks are open.

Safer team flow

  • A slice touching auth, money, migrations, data deletion or security waits for your approval
    before its worker starts; the other slices go ahead.
  • Review findings go back to the teammate that wrote the slice, for one fix round and a re-review.

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives
when the plugin version changes
(the manifest pins it), and it did — 0.1.6 to 0.1.7 — so a
normal update reaches you and keeps your options, the worker cap and model routing.

If you prefer a plain status line, set CTK_COLOR=0 in the env object of your
settings.json.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
to the env object of your settings.json and restarting (a plugin cannot do this for you).
/ctk-doctor checks the setup and prints the exact fix for anything missing.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay
in <config>/ctk/stats/. Claude Code has no rollback command; to return to an earlier release,
remove the marketplace, add it at that tag (/plugin marketplace add tc3oliver/claude-team-kit#v0.1.6) and install again with your options. Details:
docs/INSTALLATION.md.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them
    there is no cap, no team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other: a named Agent call that passes
    isolation: worktree is an ordinary subagent, which the cap does not count.
  • The settings compare-and-swap (from v0.1.2) is not a lock; see the threat
    model
    .
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug
    imperfectly, and no code checks that a task was verified.
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new
    events arrive (the counters in the stats file continue).
  • Always-on context is about 480 tokens, above the 250-token goal and close to the 500-token CI
    budget.

Platforms

Status
macOS Verified live: install, version-bump update with options kept, uninstall, the cap, guard states, Mission Control by real clicks
Linux, Windows CI only — tests, plugin validate --strict, plugin test and the pack audit run on ubuntu, macos and windows with Node 22 and 24. Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues. Include Claude Code's
version, your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste
credentials or settings files.

Published as

This is the GitHub prerelease v0.1.7 with the npm tarball attached. The earlier prereleases
v0.1.6, v0.1.5, v0.1.4, v0.1.3, v0.1.2, v0.1.1 and v0.1.0 are unchanged. Not published to npm and not in any official Claude
Code plugin directory. The repository works as a plugin marketplace as it is, and installing from the
tag is what /plugin marketplace add tc3oliver/claude-team-kit#v0.1.7 does. npm publish stays a
manual step after review.

v0.1.6

v0.1.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 17:19

Claude Team Kit 0.1.6 (prerelease)

A fix and polish release for Mission Control, the band and the status line. No new runtime
dependencies (still only zod), and the worker cap, model routing and sync behaviour are unchanged.

This is still a public preview. Agent Teams are experimental in Claude Code and Mods (which carry
the cap and the team line) are early access, so it can break when Claude Code changes. Read "Known
limitations" before you rely on it.

The band really is coloured now

0.1.5 said the band's Ctx turned yellow and red. It did not: the colour was computed but the band
was drawn as one dim text. The band is now drawn piece by piece, so a figure under pressure stands
out and the rest stays dim. Checked on the drawn band: Ctx 42% dim, Ctx 85% in the error colour.

One rule for "getting full"

  • Context, the 5h window and the weekly window are quiet below 60%, yellow from 60%, red from
    80%
    , in the band, the status line, Mission Control's header and its bars. The pane's bars used
    70/90 and drew a healthy bar green; they now follow the same rule. Task progress bars are unchanged.
  • Every Mission Control page header shows a badge for a figure under pressure (Ctx 82%, 5h 61%,
    Wk 70%). The header stays one line: read-only, then weekly and 5h, then the long title give way,
    context last.
  • Usage lists CTX first.

Overview, Workers, Doctor

  • Overview lists the workers (up to four, each a button that opens its detail, then
    +N · 2: Workers) instead of two cards that repeated the same count. The context line stays
    visible down to 50 columns. The session line moved out; Usage has the tool calls.
  • Workers shows how long an idle teammate has been idle (idle 4m, a dash when not observed).
  • Doctor keeps to the page's row budget and ends with +N more when there are many fixes.

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives
when the plugin version changes
(the manifest pins it), and it did — 0.1.5 to 0.1.6 — so a
normal update reaches you and keeps your options, the worker cap and model routing.

If you prefer a plain status line, set CTK_COLOR=0 in the env object of your
settings.json.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
to the env object of your settings.json and restarting (a plugin cannot do this for you).
/ctk-doctor checks the setup and prints the exact fix for anything missing.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay
in <config>/ctk/stats/. Claude Code has no rollback command; to return to an earlier release,
remove the marketplace, add it at that tag (/plugin marketplace add tc3oliver/claude-team-kit#v0.1.5) and install again with your options. Details:
docs/INSTALLATION.md.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them
    there is no cap, no team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other: a named Agent call that passes
    isolation: worktree is an ordinary subagent, which the cap does not count.
  • The settings compare-and-swap (from v0.1.2) is not a lock; see the threat
    model
    .
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug
    imperfectly, and no code checks that a task was verified.
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new
    events arrive (the counters in the stats file continue).
  • Always-on context is about 480 tokens, above the 250-token goal and close to the 500-token CI
    budget.

Platforms

Status
macOS Verified live: install, version-bump update with options kept, uninstall, the cap, guard states, Mission Control by real clicks
Linux, Windows CI only — tests, plugin validate --strict, plugin test and the pack audit run on ubuntu, macos and windows with Node 22 and 24. Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues. Include Claude Code's
version, your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste
credentials or settings files.

Published as

This is the GitHub prerelease v0.1.6 with the npm tarball attached. The earlier prereleases
v0.1.5, v0.1.4, v0.1.3, v0.1.2, v0.1.1 and v0.1.0 are unchanged. Not published to npm and not in any official Claude
Code plugin directory. The repository works as a plugin marketplace as it is, and installing from the
tag is what /plugin marketplace add tc3oliver/claude-team-kit#v0.1.6 does. npm publish stays a
manual step after review.

v0.1.5

v0.1.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 16:39

Claude Team Kit 0.1.5 (prerelease)

A small release for the band and the status line: the figures you check most are easier to find. No
new runtime dependencies (still only zod), and the worker cap, model routing and sync behaviour are
unchanged.

This is still a public preview. Agent Teams are experimental in Claude Code and Mods (which carry
the cap and the team line) are early access, so it can break when Claude Code changes. Read "Known
limitations" before you rely on it.

Context first, and coloured

  • Ctx now sits right after the model and is the last figure dropped on a narrow terminal.
  • It turns yellow from 60% and bold red from 80%, plain below. CTK_COLOR=0 or any non-empty
    NO_COLOR still turns colour off. The band does the same when the CTK status line is not set up.
  • The status line shows the directory name (the last part of the working directory) before the
    git branch.

A quieter band

  • Tool calls and live agents are 🔧 153 and 🤖 2/3 (1 busy).
  • Guard ready and Guard ON are gone. The guard is named only when it needs attention (ERR,
    unavailable, –); /ctk-doctor and Mission Control still show its state. With
    hud.idle: minimal the band is just the CTK ▸ entry until something needs saying.
  • One blank line above the band separates it from the conversation.
  • The emoji take two cells each, so a very narrow terminal drops a figure a little sooner.

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives
when the plugin version changes
(the manifest pins it), and it did — 0.1.4 to 0.1.5 — so a
normal update reaches you and keeps your options, the worker cap and model routing.

If you prefer a plain status line, set CTK_COLOR=0 in the env object of your
settings.json.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
to the env object of your settings.json and restarting (a plugin cannot do this for you).
/ctk-doctor checks the setup and prints the exact fix for anything missing.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay
in <config>/ctk/stats/. Claude Code has no rollback command; to return to an earlier release,
remove the marketplace, add it at that tag (/plugin marketplace add tc3oliver/claude-team-kit#v0.1.4) and install again with your options. Details:
docs/INSTALLATION.md.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them
    there is no cap, no team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other: a named Agent call that passes
    isolation: worktree is an ordinary subagent, which the cap does not count.
  • The settings compare-and-swap (from v0.1.2) is not a lock; see the threat
    model
    .
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug
    imperfectly, and no code checks that a task was verified.
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new
    events arrive (the counters in the stats file continue).
  • Always-on context is about 480 tokens, above the 250-token goal and close to the 500-token CI
    budget.

Platforms

Status
macOS Verified live: install, version-bump update with options kept, uninstall, the cap, guard states, Mission Control by real clicks
Linux, Windows CI only — tests, plugin validate --strict, plugin test and the pack audit run on ubuntu, macos and windows with Node 22 and 24. Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues. Include Claude Code's
version, your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste
credentials or settings files.

Published as

This is the GitHub prerelease v0.1.5 with the npm tarball attached. The earlier prereleases
v0.1.4, v0.1.3, v0.1.2, v0.1.1 and v0.1.0 are unchanged. Not published to npm and not in any official Claude
Code plugin directory. The repository works as a plugin marketplace as it is, and installing from the
tag is what /plugin marketplace add tc3oliver/claude-team-kit#v0.1.5 does. npm publish stays a
manual step after review.

v0.1.4

v0.1.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Oct 10:54

Claude Team Kit 0.1.4 (prerelease)

A small fix release for Mission Control and the status line. No new runtime dependencies (still only
zod), and the worker cap, model routing and sync behaviour are unchanged.

This is still a public preview. Agent Teams are experimental in Claude Code and Mods (which carry
the cap and the team line) are early access, so it can break when Claude Code changes. Read "Known
limitations" before you rely on it.

Usage shows every model the session ran on

Mission Control's Usage view showed only the lead's model, so a session that also ran Sonnet
subagents looked Opus-only. Ordinary subagents' models were never recorded at all, only teammates'.

  • The card is now labelled Lead model, and an Agents line lists every subagent and teammate
    model started this session, merged by display name (for example Sonnet 5.5×3 Haiku 5.5×1). It
    appears once one has started, so a lead-only session keeps the row for the note.
  • The stats file gains subagentModels, counted only for a subagent that actually started. A stats
    file written by an earlier version still reads, with an empty count.
  • The status tool's usage line (ctk_team_status) carries the same figures.

The status line and the band read apart

  • The status line is coloured by default: the model in bold cyan, the separators dim.
    CTK_COLOR=0 or any non-empty NO_COLOR turns it off. Before, it was plain unless CTK_COLOR=1.
    The width maths ignores the escape sequences, so what fits and what is dropped is unchanged.
  • The band's CTK ▸ entry above the prompt is drawn in the theme's accent colour and underlined, so
    it reads as the button it is (a click opens Mission Control).

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives
when the plugin version changes
(the manifest pins it), and it did — 0.1.3 to 0.1.4 — so a
normal update reaches you and keeps your options, the worker cap and model routing.

If you preferred the plain status line, set CTK_COLOR=0 in the env object of your
settings.json.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
to the env object of your settings.json and restarting (a plugin cannot do this for you).
/ctk-doctor checks the setup and prints the exact fix for anything missing.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay
in <config>/ctk/stats/. Claude Code has no rollback command; to return to an earlier release,
remove the marketplace, add it at that tag (/plugin marketplace add tc3oliver/claude-team-kit#v0.1.3) and install again with your options. Details:
docs/INSTALLATION.md.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them
    there is no cap, no team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other: a named Agent call that passes
    isolation: worktree is an ordinary subagent, which the cap does not count.
  • The settings compare-and-swap (from v0.1.2) is not a lock; see the threat
    model
    .
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug
    imperfectly, and no code checks that a task was verified.
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new
    events arrive (the counters in the stats file continue).
  • Always-on context is about 480 tokens, above the 250-token goal and close to the 500-token CI
    budget.

Platforms

Status
macOS Verified live: install, version-bump update with options kept, uninstall, the cap, guard states, Mission Control by real clicks
Linux, Windows CI only — tests, plugin validate --strict, plugin test and the pack audit run on ubuntu, macos and windows with Node 22 and 24. Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues. Include Claude Code's
version, your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste
credentials or settings files.

Published as

This is the GitHub prerelease v0.1.4 with the npm tarball attached. The earlier prereleases
v0.1.3, v0.1.2, v0.1.1 and v0.1.0 are unchanged. Not published to npm and not in any official Claude
Code plugin directory. The repository works as a plugin marketplace as it is, and installing from the
tag is what /plugin marketplace add tc3oliver/claude-team-kit#v0.1.4 does. npm publish stays a
manual step after review.

v0.1.3

v0.1.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Oct 09:09

Claude Team Kit 0.1.3 (prerelease)

A follow-up hardening release: five problems found after v0.1.2 shipped are fixed, each verified by
a test that fails without the fix, and green across the whole CI matrix. No features, no new runtime
dependencies (still only zod), and the worker cap, model routing and Mission Control behaviour are
unchanged.

This is still a public preview. Agent Teams are experimental in Claude Code and Mods (which carry
the cap and the team line) are early access, so it can break when Claude Code changes. Read "Known
limitations" before you rely on it.

The v0.1.2 sync upgrade dead end is closed

v0.1.2 started refusing any userinfo in an http(s) remote URL. That left a user who had
stored one (https://abc123@host/…, accepted by v0.1.1) with no way out: every sync command
failed closed, and ctk sync init refused to switch an already-initialized remote — so the v0.1.2
release notes' instruction to "re-run ctk sync init with a clean URL" did not work. The published
v0.1.2 release body carries a correction notice pointing here; the manual recovery it documents was
verified against the real v0.1.2 build.

In this release, ctk sync init --remote <the same URL without the userinfo> migrates the
existing clone in place:

  • the profile, the clone, its git history and any unpushed commits are kept — nothing is re-cloned
    or deleted;
  • reachability is verified against the clean URL as a direct argument, so the stored credential
    never reaches git and is never printed;
  • only that exact URL (and branch) is accepted, so sync can never be silently repointed at another
    repo — a different host, path or branch is still refused, with the stored credential redacted.

Every other sync command keeps failing closed and now names the migration command. ctk sync status
stays usable and prints the remote redacted. Compatibility: this migration is new in 0.1.3.
On v0.1.2 there is no CLI migration; the corrected v0.1.2 release body documents the verified
manual equivalent (edit <config>/ctk/sync/config.json to the clean URL and git remote set-url origin <clean-url> inside <config>/ctk/sync/repo). Updating to 0.1.3 and running the one
sync init command replaces both steps.

Data integrity

  • A backup copy is verified before it is restored. Rollback and uninstall found their backup copy
    by the manifest SHA and checked only that the file existed, then wrote whatever they read — a
    tampered, truncated or corrupted copy was restored over a live user file and the transaction
    reported success. The bytes are hashed before the write now; on a mismatch nothing is written, the
    file stays byte-identical, a conflict names it and the exit code is 2.
  • An unreadable skill root is no longer published as an empty skill. collectSkill treated every
    failure to stat a skill root as "the directory is not there", so one hidden behind an unreadable
    parent (EACCES), a path through a file (ENOTDIR) or a symlink loop (ELOOP) published and applied
    as an empty skill, silently emptying it on every other machine. Only ENOENT keeps the
    "not there" behaviour; anything else is a problem that makes the skill unusable for publish and
    pull.

CLI

  • --json is honoured when there is no command to run. ctk --json --profile printed the text
    help and an unknown command printed text on stderr, so a machine consumer got no JSON exactly when
    something went wrong. Both paths now emit the same JSON failure shape as the rest of the CLI. The
    v0.1.2 fix stays: a flag-shaped value still cannot hijack the command — the raw scan only chooses
    the error format.

Tests

  • The demo recorder test waits for an event, not a wall clock. It used to give the shell a fixed
    300 ms warm-up before typing; on a loaded CI runner that raced the shell starting. It now waits
    for the shell prompt to appear and hold, so a slow runner waits instead of failing. The behaviour
    under test (a real tmux session, scripted keys, stop-on-match) is unchanged.

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives
when the plugin version changes
(the manifest pins it), and it did — 0.1.2 to 0.1.3 — so a
normal update reaches you and keeps your options, the worker cap and model routing.

If you stored an http(s) remote with userinfo before v0.1.2, after updating run
ctk sync init --remote <the same URL without the userinfo> once; see above.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
to the env object of your settings.json and restarting (a plugin cannot do this for you).
/ctk-doctor checks the setup and prints the exact fix for anything missing.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay
in <config>/ctk/stats/. Claude Code has no rollback command; to return to an earlier release,
remove the marketplace, add it at that tag (/plugin marketplace add tc3oliver/claude-team-kit#v0.1.2) and install again with your options. Details:
docs/INSTALLATION.md.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them
    there is no cap, no team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other: a named Agent call that passes
    isolation: worktree is an ordinary subagent, which the cap does not count.
  • The settings compare-and-swap (from v0.1.2) is not a lock; see the threat
    model
    .
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug
    imperfectly, and no code checks that a task was verified.
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new
    events arrive (the counters in the stats file continue).
  • Always-on context is about 480 tokens, above the 250-token goal and close to the 500-token CI
    budget.

Platforms

Status
macOS Verified live: install, version-bump update with options kept, uninstall, the cap, guard states, Mission Control by real clicks
Linux, Windows CI only — tests, plugin validate --strict, plugin test and the pack audit run on ubuntu, macos and windows with Node 22 and 24. Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues. Include Claude Code's
version, your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste
credentials or settings files.

Published as

This is the GitHub prerelease v0.1.3 with the npm tarball attached. The earlier prereleases
v0.1.2, v0.1.1 and v0.1.0 are unchanged. Not published to npm and not in any official Claude
Code plugin directory. The repository works as a plugin marketplace as it is, and installing from the
tag is what /plugin marketplace add tc3oliver/claude-team-kit#v0.1.3 does. npm publish stays a
manual step after review.

v0.1.2

v0.1.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Oct 00:18

Claude Team Kit 0.1.2 (prerelease)

⚠️ Correction (added 2026-10-10, after release)

The "Breaking change" section below originally told you to fix a stored credential remote by
re-running ctk sync init with a clean URL. That instruction does not work in v0.1.2: sync init refuses to switch an already-initialized remote, and every other sync command fails closed on
the stored URL. v0.1.2 has no CLI migration.

Manual recovery on v0.1.2 (verified against the real v0.1.2 build; nothing is re-cloned, your
history and unpushed commits survive). Let <config> be your Claude Code config dir (~/.claude
by default) and <clean-url> the stored remote without its userinfo:

  1. Edit <config>/ctk/sync/config.json and replace the remote value with <clean-url>
    (keep branch as it is).
  2. In the clone: git -C <config>/ctk/sync/repo remote set-url origin <clean-url>.
  3. ctk sync status and ctk sync pull work again.

v0.1.3 (released 2026-10-10) replaces both steps with one command: ctk sync init --remote <clean-url> migrates the clone in place (it verifies reachability with the clean URL,
repoints origin, rewrites config.json, and keeps the profile, history and unpushed commits).
Update with /plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit.
The tag, commit and assets of this release are unchanged; only this note was edited.

A hardening release: every problem a full code review of main found is fixed, verified by a test
that fails without the fix, and green across the whole CI matrix. No features and no new runtime
dependencies. The worker cap, Mission Control's behaviour and the plugin's always-on context are
unchanged.

This is still a public preview. Agent Teams are experimental in Claude Code and Mods (which
carry the cap and the team line) are early access, so it can break when Claude Code changes. Read
"Known limitations" before you rely on it.

Breaking change: an http(s) sync remote may no longer carry any userinfo

ctk sync init now refuses any userinfo in an http or https remote URL — previously a bare
user name (https://abc123@host) was accepted as "not a credential". Two reasons: the URL is stored
in sync/config.json as plaintext, and with GIT_TERMINAL_PROMPT=0 a username-only http(s) URL
cannot authenticate anyway, so it never worked.

If you stored such a remote, re-run ctk sync init with a clean URL. (This did not work — see
the correction at the top of this page for the manual recovery on v0.1.2, or update to v0.1.3.)
Use
a git credential helper or an SSH key. SCP-style (git@host:org/repo.git) and plain
https://host/org/repo.git remotes are unaffected. No error message ever echoes the credential.

Security

  • A referenced skill can no longer be deleted from the shared repo. publish decided which
    skills were stale by reading every tracked sibling profile, and a profile that failed to parse was
    silently treated as "references nothing" — so its skills were deleted, recoverable only from git
    history. A tracked profile that is missing, unreadable, invalid JSON or schema-invalid now refuses
    the whole publish: nothing is deleted, committed or pushed.
  • Credentials are no longer written to disk from a remote URL (the breaking change above), and
    redactUrls now hides userinfo in any scheme, not only http(s).
  • The secret scanner catches authorization-style keys. "authorizationHeader": "Bearer …" used
    to pass every rule — the key deny-list held only the exact word authorization, and the value
    rules need the keyword immediately before the secret. The deny-list now matches by prefix, so
    authorizationHeader, authorization_header, AuthorizationValue and authHeader are refused
    whatever the value looks like, including a placeholder. Plain auth* keys that are not
    credentials (author, authority, authentication, authorizedKeysFile) are still not flagged.
  • Reading a skill directory fails safe. A file or subdirectory that is unreadable or disappears
    mid-walk is recorded as a problem that makes the whole skill unusable, instead of throwing a raw
    filesystem error that bypassed the refusal path.
  • No path can reach rmSync unvalidated. Every tracked path a publish would delete is checked
    with isSafeRelPath first; a crafted ../, .git or absolute entry in the git index refuses the
    publish rather than deleting something outside the clone. This is the check publish already
    applied to unpushed commits.

Data integrity

  • settings.json writes are a compare-and-swap. CTK and Claude Code both read-modify-write the
    file; the atomic rename prevented corruption but not a lost update, so an edit landing while CTK
    was planning was silently overwritten. CTK now records a content hash when it reads the file and
    refuses the write if the file changed underneath it — nothing on disk changes, and you re-run to
    pick up the new content. This is not a lock: a lockfile cannot bind Claude Code, and the narrow
    window between the re-read and the rename is documented in the threat
    model
    rather than claimed away.
  • A minified settings.json stays minified. The indentation heuristic never matched a
    single-line file, so CTK's next write reformatted the whole user file to two-space indent.
  • Backups hash what they actually stored. createBackup hashed the source after copying it, so
    a source changed in between produced a manifest SHA matching neither copy — verifyBackup then
    reported "backup copy differs" and rollback or uninstall refused to restore. One read now feeds
    both the copy and the hash.

Reliability

  • Rollback is crash-consistent. Several transactions were reverted in a loop but the ledger was
    saved once at the end, so a crash mid-rollback left reverted files against a ledger with no
    undoneAt — and the next run reverted them again. The ledger is now the per-transaction commit
    point. A re-run is idempotent because every write re-checks live state first, and a value you
    changed after the crash is kept as a conflict, never overwritten. Verified by fault injection at
    three stages (before the first transaction, after its files, during the ledger write) plus a
    middle-transaction crash.
  • ctk uninstall restores instead of deleting. An out-of-CTK-dir file with a prior version and
    a backup copy used to be forced down the delete branch; it is now restored from the backup.
  • ctk doctor no longer crashes on an odd filesystem. It parses ledger.json once per run
    instead of twice, and reports a skills path that exists but is not a directory instead of throwing
    ENOTDIR.
  • A flag-shaped value cannot hijack the CLI. ctk config set outputStyle --version printed the
    version and exited 0, because global flags were detected by scanning raw argv before parsing.
    They are decided from parsed tokens now; --version counts only before the command word.

Performance (measured, not estimated)

  • Mission Control builds its model once per pane frame instead of three times. The pane drew the
    Mission three times per frame — for the motion timer, the observation and the render — so
    buildMission ran its O(n²) task rows three times for one snapshot. It is now built once and
    threaded to all three, so motion, rows and pending state read one view. Measured 3 → 1
    buildMission calls per draw; host calls per draw unchanged.
  • A burst of task events no longer storms the host. TaskCreated/TaskCompleted each fired a
    full refresh (roster, usage, clock, model, .git/HEAD, a stats write) while the equivalent
    tool-call counter already used a throttled path. They use it too: a burst of 50 events costs
    300 → 150 host calls, loses no counter and adds no delay to the task board, which rides a
    different event.
  • Fewer allocations per frame: one pending-change sweep per draw instead of three, and the stats
    view's matcher is hoisted to module scope instead of being rebuilt per segment per frame.

Also

  • One live-status predicate. The cap, the band's subagent count and Mission Control each had
    their own test and diverged on an unknown status. An unrecognised status now counts as live
    everywhere, so the cap refuses rather than over-admits and no view hides a possibly-running agent.
  • Task eviction respects the DAG. Past 500 remembered tasks, eviction refreshed nothing, so an
    actively-updated old task could be dropped while newer finished ones stayed and then resurrected.
    Updates refresh recency now, and terminal, unreferenced tasks go first — a task another retained
    task depends on outlives them.
  • Dead code removed: listFiles, merge3's unchanged field, busyStatuses, the never-read
    Change.to, the unused from of a parsed pending change, and a priorEq duplicated in two
    modules (now one, beside the type it operates on). Three copies of the backup file list are one
    exported backupSet.

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives
when the plugin version changes
(the manifest pins it), and it did — 0.1.1 to 0.1.2 — so a
normal update reaches you and keeps your options. Verified on a scratch config directory: a 0.1.1
install with maxWorkers=3, reviewerModel=opus and hudIdle=minimal updates to 0.1.2 with all
three options, the worker cap and model routing intact.

If you are on a preview installed from an earlier commit at the same version, reinstall to catch up:
/plugin uninstall ctk@ctk-kit, then install again with --config KEY=VALUE, because
uninstalling deletes the plugin's options from settings.json (note your cap first;
/ctk-doctor shows it).

Install

...

Read more

v0.1.1

v0.1.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Oct 14:54

Claude Team Kit 0.1.1 (prerelease)

A lightweight companion plugin for Claude Code's native Agent Teams: a hard cap on how many teammates run at once, a
clickable read-only Mission Control, and skills that guide the lead to split work into verifiable tasks. The lead and the
teammates stay Claude Code's own; CTK is not a second orchestrator or scheduler.

This is a public preview. Agent Teams are experimental in Claude Code and Mods (which carry the cap and the team
line) are early access, so it can break when Claude Code changes. Read "Known limitations" before you rely on it.

Highlights

  • A new Mission Control. A redesigned read-only pane beside the transcript, tuned for the roughly 48 cells it really gets in a 120-column terminal.
    • Live workers: a row per teammate with its task, model, tool calls, elapsed time and last activity; a worker's page lists its last tool calls (tool name and file base name only).
    • Task dependency graph: waiting, ready, running and done nodes drawn only from the dependencies the lead declared, with a progress bar. "Done" means marked complete, not verified.
    • Ordinary subagents are listed in their own section and are never counted against the cap.
    • Clearer empty states: an empty Workers or Tasks page says why and what to do.
    • Overview, Usage, Config, Stats and Doctor were reorganised; text wraps instead of being cut, and motion is event-driven and off with CTK_REDUCED_MOTION=1 or NO_COLOR.
  • Designer agent. ctk:designer is a read-only Opus agent that returns a UI/UX design brief for the lead to hand to implementers (option designerModel, default opus). It is skill-guided and new: it has not been part of a recorded run.
  • Install with your AI agent. INSTALL.md and a README prompt, both through the native Plugin Manager only.
  • A README that reads as a product page, built around a real recording of Mission Control; recording notes are in docs/DEMO.md.

Behaviour change: the default worker cap is 5 (was 3)

The cap is still 1 to 12. A value you set yourself is kept, including through an update. An install that never set one follows the new default after it updates.

Other changes since 0.1.0

  • Mission Control tells teammates and ordinary subagents apart. An Agent call without a name is an ordinary
    subagent: it is listed in its own section, counted as Subagents and Sub n, and still not counted or limited by the
    worker cap. Empty Workers and Tasks pages say why they are empty and what to do. Guard ON now says how many of the
    spawns it saw were teammates.
  • Plain requests for several agents or a team load the team skill more reliably. A fixed English and Chinese
    phrase check (it names agents or a team; a bare "parallel" does not count) adds one hidden hint line beside your own prompt (no model call, no always-on context). The model still
    decides; one real session showed it working, which is not a measured rate. Turn it off with the plugin option teamHint.
  • Changing the worker cap is visible. The lead is told to say "press Confirm in Mission Control", and the band shows
    Confirm setting until you answer.
  • Install with your AI agent: INSTALL.md and a README prompt, both through the native Plugin Manager only.
  • Update to it with /plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit; from 0.1.0 the version changed, so it arrives.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" to the env
object of your settings.json and restarting (a plugin cannot do this for you). /ctk-doctor checks the setup and
prints the exact fix for anything missing; it reads Guard ready until the first spawn and Guard ON after a spawn has
reached the guard.

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives when the plugin
version changes
(the manifest pins it): a preview installed from an earlier commit with the same version will say
"already at the latest version". Reinstall to catch up: /plugin uninstall ctk@ctk-kit, then install again, passing
your options with --config KEY=VALUE, because uninstalling deletes the plugin's options from settings.json
(note your cap first; /ctk-doctor shows it). Tested live: a version-bump update keeps the options and the mod loads.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay in
<config>/ctk/stats/ (delete it if you like). Claude Code has no rollback command; to return to a release, remove the marketplace, add it at the release tag
(/plugin marketplace add tc3oliver/claude-team-kit#<tag>) and install again with your options. Removing the marketplace
removes the plugin's options too, and adding it at a different ref while the old one is still registered is refused. Tested
live with throwaway tags: install pinned to a tag, and update and roll back by moving a tag the marketplace follows. Details:
docs/INSTALLATION.md.

What is in it

  • Skills: /ctk:team (a goal into vertical slices with real dependencies, a capped native team, a verification
    before "done"), /ctk:review (review depth scaled to risk), /ctk:debug (reproduce, hypothesise, fix, regression
    test), and ctk (status and settings in plain words). Agents: explorer, implementer, reviewer,
    high-risk-reviewer and designer, with a model per role unless a spawn names one.
  • Worker cap (mod): a teammate spawn above the cap (default 5, 1 to 12) is refused with TEAM_CAPACITY_REACHED;
    if the roster cannot be read it is refused with TEAM_GUARD_FAILED instead of guessed.
  • Team line and Mission Control (mod): one line above the prompt (model, 5-hour and weekly usage with reset
    countdowns, tool calls, agents against the cap, tasks, context, cost, fitted to the terminal width) that you click to
    open a read-only pane with workers, tasks and usage. Anything not observed reads unavailable.
  • Optional ctk CLI (not needed for the plugin): a status line, profile sync through a git repository you own
    with a secrets scan before publish, an install ledger with rollback and uninstall.

What CTK adds to a session: about 480 tokens of always-on context (measured with a real call), no model calls, no
network calls, no credential reads. A skill's body loads only when it is used.

What the worker cap does and does not cover

It counts and refuses teammate spawns only. Observed live on Claude Code 2.1.295: a named Agent call is a
teammate (any agent type, from any plugin) and is capped; an unnamed call, a fork, and a named call that passes
isolation: worktree are ordinary subagents, which the cap does not count. The team skill therefore never uses
isolation and names every worker, and Mission Control counts named agents that started outside the cap. It limits how
many teammates are alive, not what they spend, and CTK queues nothing: the lead keeps a refused task pending.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them there is no cap, no
    team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other (above).
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug imperfectly, and no code
    checks that a task was verified. /ctk:review and /ctk:debug have not been run on real changes.
  • Whether a plain sentence loads the team skill is Claude's decision; the evals were tuned on the same prompts.
  • Always-on context is about 480 tokens, above the 250-token goal and close to the 500-token CI budget.
  • The team line can vanish for a few seconds after the lead's turn ends while workers run (cause unknown).
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new events arrive.
  • Model routing to different models on live teammates was not shown (the recordings used Sonnet throughout).
  • Older recordings (Runs A to E) were made before the guard-state change: they show Guard ON at start where this version shows ready.
  • The light terminal theme was not checked; the real-cell screenshots are dark.
  • Linux and Windows terminals, and the install prompt run end to end by an agent, were not tried.

Platforms

Status
macOS Verified live: install, update, version-bump update, uninstall, the cap, guard states, Mission Control by real clicks (in tmux), width captures
Linux, Windows CI only (tests, plugin validate --strict, plugin test, pack audit on ubuntu, macos and windows). Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Breaking changes

No removed commands or options. The default cap changed from 3 to 5 (above). Option names (maxWorkers, hudBand, hudIdle, recordStats, teamHint, five model options) may
still change before 1.0.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues (bug report template). Include Claude Code's
version (claude --version), your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste credentials or settings files.

Published as

This is the GitHub prerelease v0.1.1 with the npm tarball attached; the previous one is the prerelease v0.1.0 (commit 6d9799d), which is unchanged...

Read more

v0.1.0

v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Oct 08:33

Claude Team Kit 0.1.0 (prerelease)

A lightweight companion plugin for Claude Code's native Agent Teams: a hard cap on how many teammates run at once, a
clickable read-only Mission Control, and skills that guide the lead to split work into verifiable tasks. The lead and the
teammates stay Claude Code's own; CTK is not a second orchestrator or scheduler.

This is a public preview. Agent Teams are experimental in Claude Code and Mods (which carry the cap and the team
line) are early access, so it can break when Claude Code changes. Read "Known limitations" before you rely on it.

Install

In Claude Code (needs 2.1.287 or newer):

/plugin marketplace add tc3oliver/claude-team-kit
/plugin install ctk@ctk-kit

Then /reload-plugins. Turn on Agent Teams by adding "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" to the env
object of your settings.json and restarting (a plugin cannot do this for you). /ctk-doctor checks the setup and
prints the exact fix for anything missing; it reads Guard ready until the first spawn and Guard ON after a spawn has
reached the guard.

Upgrade

/plugin marketplace update ctk-kit, then /plugin update ctk@ctk-kit. An update only arrives when the plugin
version changes
(the manifest pins it): a preview installed from an earlier commit with the same version will say
"already at the latest version". Reinstall to catch up: /plugin uninstall ctk@ctk-kit, then install again, passing
your options with --config KEY=VALUE, because uninstalling deletes the plugin's options from settings.json
(note your cap first; /ctk-doctor shows it). Tested live: a version-bump update keeps the options and the mod loads.

Uninstall

/plugin uninstall ctk@ctk-kit, then /plugin marketplace remove ctk-kit. The mod's counters stay in
<config>/ctk/stats/ (delete it if you like). Claude Code has no rollback command; to return to a release, remove the marketplace, add it at the release tag
(/plugin marketplace add tc3oliver/claude-team-kit#<tag>) and install again with your options. Removing the marketplace
removes the plugin's options too, and adding it at a different ref while the old one is still registered is refused. Tested
live with throwaway tags: install pinned to a tag, and update and roll back by moving a tag the marketplace follows. Details:
docs/INSTALLATION.md.

What is in it

  • Skills: /ctk:team (a goal into vertical slices with real dependencies, a capped native team, a verification
    before "done"), /ctk:review (review depth scaled to risk), /ctk:debug (reproduce, hypothesise, fix, regression
    test), and ctk (status and settings in plain words). Agents: explorer, implementer, reviewer,
    high-risk-reviewer, with a model per role unless a spawn names one.
  • Worker cap (mod): a teammate spawn above the cap (default 3, 1 to 12) is refused with TEAM_CAPACITY_REACHED;
    if the roster cannot be read it is refused with TEAM_GUARD_FAILED instead of guessed.
  • Team line and Mission Control (mod): one line above the prompt (model, 5-hour and weekly usage with reset
    countdowns, tool calls, agents against the cap, tasks, context, cost, fitted to the terminal width) that you click to
    open a read-only pane with workers, tasks and usage. Anything not observed reads unavailable.
  • Optional ctk CLI (not needed for the plugin): a status line, profile sync through a git repository you own
    with a secrets scan before publish, an install ledger with rollback and uninstall.

What CTK adds to a session: about 425 tokens of always-on context (measured with a real call), no model calls, no
network calls, no credential reads. A skill's body loads only when it is used.

What the worker cap does and does not cover

It counts and refuses teammate spawns only. Observed live on Claude Code 2.1.295: a named Agent call is a
teammate (any agent type, from any plugin) and is capped; an unnamed call, a fork, and a named call that passes
isolation: worktree are ordinary subagents, which the cap does not count. The team skill therefore never uses
isolation and names every worker, and Mission Control counts named agents that started outside the cap. It limits how
many teammates are alive, not what they spend, and CTK queues nothing: the lead keeps a refused task pending.

Known limitations

Full list: docs/LIMITATIONS.md. The ones to know first:

  • The cap needs Mods (Claude Code 2.1.287 or newer; reportedly not available in WSL). Without them there is no cap, no
    team line, and /ctk:team says so before starting.
  • Worktree isolation and the cap exclude each other (above).
  • Skill behaviour is guidance: the lead may follow /ctk:team, /ctk:review and /ctk:debug imperfectly, and no code
    checks that a task was verified. /ctk:review and /ctk:debug have not been run on real changes.
  • Whether a plain sentence loads the team skill is Claude's decision; the evals were tuned on the same prompts.
  • Always-on context is about 425 tokens, above the 250-token goal.
  • The team line can vanish for a few seconds after the lead's turn ends while workers run (cause unknown).
  • A confirmed settings change reloads the mod and loses per-worker and per-task detail until new events arrive.
  • Model routing to different models on live teammates was not shown (the recordings used Sonnet throughout).
  • The recordings were made before the guard-state change: they show Guard ON at start where this version shows ready.

Platforms

Status
macOS Verified live: install, update, version-bump update, uninstall, the cap, guard states, Mission Control by real clicks (in tmux), width captures
Linux, Windows CI only (tests, plugin validate --strict, plugin test, pack audit on ubuntu, macos and windows). Not run interactively
Windows Terminal, VS Code terminal, WSL Not verified

A passing CI run is not interactive support. Matrix: docs/LIMITATIONS.md.

Breaking changes

None: this is the first preview. Option names (maxWorkers, hudBand, hudIdle, recordStats, four model options) may
still change before 1.0.

Reporting problems

Open an issue at https://github.com/tc3oliver/claude-team-kit/issues (bug report template). Include Claude Code's
version (claude --version), your OS and terminal, the output of /ctk-doctor and /ctk-stats, and what you ran. For a
security problem use a private advisory instead (SECURITY.md); do not paste credentials or settings files.

Published as

A GitHub prerelease (tag v0.1.0, commit 6d9799d) with the npm tarball attached. Not published to npm and not in any
official Claude Code plugin directory. The repository works as a plugin marketplace as it is, and installing from the tag
is what /plugin marketplace add tc3oliver/claude-team-kit#v0.1.0 does. npm publish stays a manual step after review.