Repository navigation
Releases: airiclenz/capcom
Release list
v0.14.0
capcom — v0.14.0 — 2026-11-01
This release lets the capcom block live in a file of your choosing instead of AGENTS.md, and makes capcom ready and capcom next explain an empty result.
Breaking changes
- New stores use store format 6 —
capcom initnow writesformat: 6into.capcom/config.yaml, and earlier capcom releases refuse to open a store that declares it. What to do: upgrade capcom on every machine and agent that works in the repository before creating a store with this release, or before raising an existing store toformat: 6to useagents.file.
New
- Put the capcom block in a file other than
AGENTS.md— setagents.filein.capcom/config.yamlto a path inside the repository (such asdocs/capcom.md) and capcom keeps its block there; it defaults toAGENTS.md, cannot also be listed underagents.guides, and needsformat: 6, with a clear error telling you to set it when the store declares an older format. capcom agentsandcapcom checkfollow the chosen block file —capcom agentswrites the block there, creating the file and any missing folders, and adds an import line such as@docs/capcom.mdto anAGENTS.mdthat lacks one. When the block lives outsideAGENTS.md,capcom checkandcapcom agents --checkfail ifAGENTS.mdis missing, does not import the block file, or still holds capcom block markers, andcapcom agentswarns about a missingAGENTS.mdwithout creating it.capcom readyandcapcom nextexplain an empty list caused byready.hide— when every Ready issue is hidden by aready.hidelabel, both commands now warn how many are hidden and by which labels, and point to--show-hidden; the warning appears as awarning:line, in the--jsonwarningsarray and as aWARNING=line undernext --kv, andcapcom nextstill exits with code 4.
Improved
- Output names the file it actually wrote —
capcom agents(including thepathfield of its--jsonoutput), therefreshed:line fromknow add,know update,know mvandknow rm, the hint fromcapcom init, and capcom's errors about the block now name the block file in use rather than always sayingAGENTS.md.
Docs & install
- Documentation for
agents.file— the agent setup, Managed block and quickstart guides, the file-format reference, the glossary and the help forcapcom agents,capcom knowandcapcom know addnow explain how to keep the capcom block outsideAGENTS.mdand whatcapcom checkreports about it.
v0.13.0
capcom — v0.13.0 — 2026-11-01
This release adds capcom apply, which files and updates a linked set of issues in one step that either fully lands or changes nothing.
New
capcom applyruns a batch of issue writes, all or none — Listcreate,update,dep add,closeandlogsteps in a YAML file and runcapcom apply <file>(orcapcom apply -to read it from stdin): every step lands, or none does, and the first step that fails is reported with its line in the file.--dry-runchecks the whole batch without writing anything, and the output (also as--jsonor--kv) shows each step and the issues the batch made ready.
Improved
- The
AGENTS.mdblock now tells agents aboutcapcom apply—capcom agentsadds a line for it right aftercapcom create, and the capcom plugin skill mentions it in its work loop too. An existing block shows as out of date incapcom checkandcapcom agents --checkuntil you runcapcom agentsagain.
Docs & install
- Apply file reference — The user manual has a new page on the apply file: each step and the keys it takes, the all-or-none rule, dry runs, the output and the errors, with a worked example. The JSON output reference now describes what
capcom apply --jsonreturns, including a failed batch.
v0.12.1
capcom — v0.12.1 — 2026-10-27
The terminal UI now lets you pick between the side-by-side and the stacked layout, and remembers your choice.
New
- Choose your layout in
capcom ui— on a terminal big enough for both (at least 90 columns by 25 rows), pressvto switch between the side-by-side split layout and the stacked one. Your choice is remembered asui.layoutand applied again each time both layouts fit, and the help screen now listsv. - A layout button in the status bar — the right end of the status bar shows a small button (
───while split,│while stacked) that you can click to switch layouts, even with the filter line or the status picker open, which both stay open; it is hidden while help or a prompt is showing. - A
layout-buttoncolour — you can recolour the new status-bar button underui.colorsin your user config (by default a dark grey on the dark scheme and a light grey on the light one); withNO_COLORset, the button is drawn in reverse video.
Improved
- The stacked sidebar height follows the layout you choose — the sidebar height you set for the stacked layout (
ui.stacked_ratio) now applies whenever the panes are stacked, including when you pick the stacked layout on a wide terminal, not only on a narrow one. - A clearer message when settings can't be saved — if
capcom uicannot save your layout or divider position, it now sayscannot save the layout:followed by the error, instead ofcannot save the divider position:; the new layout or position still takes effect.
Docs & install
- Terminal UI guide covers choosing a layout — the guide has a new section on switching layouts with
vor the status-bar button and on what is remembered, and the file format reference documents theui.layoutsetting and thelayout-buttoncolour.
v0.12.0
capcom — v0.12.0 — 2026-10-27
This release makes Tree locks safer to share between sessions and worktrees, lets the issue outline be filtered, and turns index and lock failures into messages that say what to do next.
Breaking changes
- Lock records no longer hold the token in the clear — a lock record now stores only a fingerprint of the Lock token, so reading the lock directory tells you who holds the lock but not how to act as them. An older capcom in the same clone cannot match the new record and treats it as held by another session. What to do: upgrade every capcom that works in the clone; if an older one is stuck, clear the lock with
capcom lock break. Records written by older versions still work and are converted the next time the lock is touched or resumed. --plantakes a plan name, not a path —capcom create --planandcapcom update --plannow refuse (exit 1) a value that is absolute, contains/or\, or is.or.., and the message lists your plans directories. What to do: pass the plan's file name alone, with or without.md;--plan ""still clears it, and a name found in no plans directory is still saved, now with a warning.--jsonon a bare command group is a usage error — runningcapcom,capcom know,capcom dep,capcom lockorcapcom relatedwith--jsonand no subcommand now fails with<command> does not support --jsonand exit 2, instead of printing help and exiting 0. What to do: name a subcommand, or use--helpto see the help.- The AGENTS.md block needs a refresh — the Tree lock paragraph that
capcom agentswrites now explains that the lock is a signal, not a barrier: writes are never refused, but they warn and name the holder. Until you refresh it,capcom checkandcapcom agents --checkreport your existing block as out of date. What to do: runcapcom agentsonce after upgrading.
New
list --treenow filters —capcom list --treecombines with--status,--category,--label,--no-label,--type,--priority,--plan,--plannedand--unplanned, keeping each matching issue together with its parents; a parent shown only for context ends with[context](and"context": truein--json). Only--limitstill cannot be combined with--tree.- Writes tell you when another session holds the worktree —
create,update,log,close,reopen, moves, removals, dependency and Note edits, andfmtoragentswithout--checkstill succeed, but now warnlocked by <holder> (<purpose>) …; if it is yours, carry onwhen the Tree lock is held for something else. Writing the issue you started yourself, andstart,finishand thelockcommands, stay quiet. finish --keep-lockhands you the next command — it now prints the Lock token and itsnext:line spells outcapcom start <next> --token <token>, so you can carry the lock straight on to the next issue (TOKEN=in--kv,lock.tokenin--json). A plaincapcom startrefused aslockednow suggests the same--tokenform.prime --jsonreports whether this worktree is free — its data gains aworktreeentry with the worktree's key, its lock state (free,held,stale,invalidorunreadable) and the same advice as the text'sthis worktree:line.
Improved
- Large stores list faster —
list,ready,next,searchand the other commands that read many issues now fetch them from the index in a fixed handful of reads instead of several per issue, so a store with thousands of issues answers noticeably sooner; output is unchanged. - "Planned" means the plan file exists —
capcom primeandready/next --planned/--unplannedcount an issue as planned only when its plan names a file in one of your plans directories.list --planned/--unplannedstill go by whether the plan field is set, and their help now says so. - Checking a lock no longer writes to disk —
capcom lock check,capcom lock status,capcom primeand the terminal UI no longer create.git/capcom/locks/or a guard file just to read the lock. On a read-only lock directory,lock checknow answers 0 or 3 from the record instead of failing with exit 1. - A busy index explains itself — when another command such as
capcom reindexholds the index past the five-second wait, commands now fail withthe index is busy: … retry when it finishesinstead of a rawdatabase is locked (SQLITE_BUSY)error, andcapcom primeno longer advises a reindex for it. - A damaged lock record points to the fix —
lock check,lock acquire,lock touch,lock releaseandstartmeeting a lock record that cannot be read now fail withthe lock record cannot be readand the hintcapcom lock status, then capcom lock break, in text and--json. - Warning when frontmatter comments are dropped — editing, moving or removing an issue or Note whose frontmatter contains a YAML comment now warns
frontmatter comments are not kept; capcom writes frontmatter in canonical form, instead of losing the comment silently. - Tree and dependency JSON match the text —
list --tree --jsonnow includes each parent'schildrenprogress (total,closed) and themorecount of a--depthcut, anddep list --jsonmarks an issue shown as(see above)withrepeat: trueand carriesmore.
Fixed
- Removed worktrees no longer leave their lock behind — a lock left by a linked worktree that was removed, or removed and re-created at the same path, now counts as free:
capcom lock checkexits 0 andlock acquireorstarttakes it over with a new token.lock statusandprimeshow such a lock asfree (orphaned record of a removed worktree), with"orphaned": truein--json. - Moving an issue or Note keeps Note Refs valid —
capcom mvandcapcom know mvnow rewrite every Note Ref that pointed at the moved file or anything under it, keeping any#symbol, socapcom checkno longer fails on stale Refs afterwards. Both commands list the Notes they changed asrefs_rewritten(REFS_REWRITTEN=in--kv). capcom reindexrepairs a corrupt index — it now deletes a damagedindex.dbwith its-waland-shmfiles and builds a fresh one, where it used to fail on the bad file; other commands meeting a corrupt index fail with the hintcapcom reindex.- Edits that keep a file's size and timestamp are no longer missed — the index now also notices a change that leaves a file's size and modification time as they were, so
list,showandsearchshow the new content. The index rebuilds itself once on the first command after upgrading. - A lock from a fast clock no longer sticks — a Tree lock whose heartbeat is dated more than one TTL in the future now counts as stale, so
capcom lock acquire --take-stalecan take it over, and thelockederror no longer shows negative ages. - Resuming a lock under a new purpose retires the old one —
capcom lock acquire --purpose <new> --token <token>orcapcom start <id> --token <token>now moves the lock to the new purpose, so a session still using the old purpose is refused aslocked(exit 3) instead of taking the lock back.
Docs & install
- Search help covers Chinese, Japanese and Korean text —
capcom search --helpandcapcom know search --helpnow explain that a run of CJK characters without spaces counts as one word, so登录超时问题is found by the whole run and not by登录. - Corrected examples — the
--refexample in the README and incapcom know add --helpnow points at a file that exists, and the terminal UI guide no longer shows a fixed capcom version in its sample screen.
v0.11.0
capcom — v0.11.0 — 2026-10-26
This release makes capcom quicker to recover from a mistake and quicker to get started on an issue: every error now names the command to run next, mistyped ids and values come with suggestions, and a new capcom context gathers what you need before you begin. The terminal UI gains a Closed tab.
Breaking changes
capcom checknow flags Note Refs a fresh clone would not have — a Ref into the.git/folder or to a file git ignores is reported asunshared-refeven though it opens fine in your own checkout, so acapcom check(orcapcom know verify) that passed before can now fail. What to do: point the Ref at a committed file, or drop it withcapcom know update <id> --remove-ref <path>.capcom agents --checkreports AGENTS.md blocks written by earlier versions as out of date — the block's work loop now tells agents to runcapcom context <id>before starting an issue, so an older block fails the check. What to do: runcapcom agentsonce to refresh the block, and commit the result.
New
capcom context <id>— one call prints the issue, the issues it waits on and the ones waiting on it, its plan, and up to eight Knowledge Notes that apply to it, with the first few Notes in full;--briefkeeps it to a short summary and--jsongives everything uncut.capcom recap— lists what changed in your issues and Notes since a date, a number of days (--since 3d; a week by default) or a git commit: issues closed, filed, moved to a new status or given a log entry, and Notes added, changed or retired.- Closed tab in
capcom ui— a fourth tab, on key4, lists your closed issues newest first with each one's full details beside the list; pressRto reopen the selected issue after giving a reason, or/to filter the list. capcom ui closed [id]— opens the terminal UI straight on the Closed tab, with that issue selected when you name one.- "Did you mean" for mistyped ids — an issue or Note id that matches nothing now suggests up to three close ones, so
capcom show retry-bakoffanswers "did you mean retry-backoff?";--jsoncarries them assuggestionsand--kvasSUGGESTIONS=. - Write an issue's body as you create it —
capcom createtakes--body <text>,--why <text>for a## Whysection and--acceptance <text>(repeatable) for the bullets of an## Acceptancesection, so no body file is needed. - Search excerpts —
capcom search --excerptandcapcom know search --excerptshow the lines of each hit that hold your words, and ignore accents just as the search does, socafefinds a line readingcafé. - Shell completion for ids and values — pressing Tab now offers issue and Note ids, each with its title and open issues first, the
capcom uitab names, and the statuses, categories and types each flag accepts.
Improved
- Every error tells you what to run next — errors end with a
hint:line naming the command that fixes them (hintin--json,HINT=in--kv); that command no longer sits inside the message, so message wording has changed, while error codes and exit codes have not. - Bad flag values are refused with the list of good ones — an unknown
--status,--typeor--category, or a--priorityoutside 0 to 4, is refused before anything is written, and the error names the flag and lists what it accepts (validin--json,VALID=in--kv). - Search no longer comes back empty on a partial match — when no issue or Note holds every word,
capcom searchandcapcom know searchlist the ones holding some of them under a line saying so;--jsonreports which kind of match it was asmatch. --kvoutput carries the whole issue —capcom show,capcom nextandcapcom startwith--kvnow also printTYPE=,PRIORITY=,LABELS=,PARENT=,DEPS=andPLAN=, so a script can read an issue back without a second call.- Tab counts in
capcom ui— tab labels show how many items each holds, as inIssues [12], and[matched/total]while a filter is on; the counts on tabs you are not looking at are drawn in dim grey. capcom primepoints out Note Refs a clone would lack — the briefing adds anunshared Note refs: Nline when there are any (unshared_refsin--json).capcom know addrefuses Refs inside.git/—--ref, and--add-refoncapcom know update, refuse a path in the git folder before writing anything; a Ref that does not open here, or that git ignores, is still written, with a warning.- Easier-to-read
--help— every command's help now prints the summary, usage, subcommands, examples and flags first and the longer rules last, split into short paragraphs.
v0.10.0
capcom — v0.10.0 — 2026-10-23
Two commands now handle what agents do most: capcom start claims an Issue together with the Tree lock, and capcom finish closes it and frees the lock. capcom also keeps the Lock token for the session, so a lock survives a restart or compaction without anyone saving the token.
Breaking changes
- The AGENTS.md Managed block has new instructions — after upgrading,
capcom checkandcapcom agents --checkreport an existing Managed block as out of date, because the block now tells agents to claim work withcapcom start <id>and close it withcapcom finish <id> --reason <text>, and no longer asks them to keep the Lock token. What to do: runcapcom agentsonce to rewrite the block.
New
capcom start <id>— claims a Ready Issue and this worktree's Tree lock in one step, printing the Issue in full and the Lock token; running it again on the same Issue resumes your lock without changing anything. It refuses an Issue that is Closed, standing, not Ready or already in doing without your lock, and a lock another session holds (exit code 3), writing nothing and naming the command that fixes each case.capcom finish <id> --reason <text>— closes an Issue, frees the Tree lock using the tokencapcom startkept (or a--tokenyou give), and ends with the next Ready Issue to pick up (or "nothing is ready to work on"). Add--keep-lockto hold on to the lock; if no token holds the lock, the Issue is still closed and the output says why the lock was left alone and points tocapcom lock status.- Lock tokens are no longer lost —
capcom lock acquire --purpose <text>keeps the Lock token for the session, so running the same command again, even after a restart, compaction or a stale lock, resumes your lock and prints the token again. A--tokenyou pass is used instead,capcom lock releaseandcapcom lock breakclean up the kept tokens, and a lock held by another session still fails with exit code 3.
Improved
capcom primegives simpler lock advice — thethis worktree:lines now suggestcapcom start <id>for issue work and, for a held or stale lock, tell you to run the same acquire or start again to resume it, instead of asking you to keep a token.- Renaming the doing status keeps the Managed block current — changing the name of your doing status in
config.yamlno longer makescapcom checkreport the Managed block as out of date.
Fixed
- The Claude Code plugin's Briefing no longer goes silent by mistake — a settings file that only mentions
capcom prime, for example in a permission rule, used to stop the plugin from printing the Briefing at session start. Now the plugin steps aside only when a hook runs exactlycapcom prime, ascapcom init --claude-hookssets up.
Docs & install
- Guides teach the start-and-finish workflow — the README, the manual,
llms.txtand the plugin'scapcomskill now claim work withcapcom startand close it withcapcom finish, explain that running start or acquire again resumes the lock, and describe the Lock token as a shared signal between agents rather than a secret. The skill falls back to the older commands when the installedcapcomhas nostart, and the tree-locks guide has a new section on the kept token. - Output and plugin docs corrected — the README and
capcom --helpnow say that every command exceptcapcom uitakes--json, and thatcapcom helpandcapcom completionignore it. The--kvreference points to each command's own page and notes that warnings come before every record, and the README and plugin skill now say the plugin also runscapcom primebefore compaction.
v0.9.2
capcom — v0.9.2 — 2026-10-21
This release makes capcom quicker to drive: one command picks the next issue, mistakes at the prompt now point to what you meant, and capcom hooks into more agent tools.
New
capcom next— prints the most urgent ready issue in full, the same viewcapcom showgives, so finding what to work on is one step. It accepts the filterscapcom readyhas (--label,--no-label,--planned,--unplanned,--show-hidden) plus--no-elsewhere, and when nothing is ready it saysnothing is ready to work onand exits with the new code 4, so a script can tell "nothing to do" apart from a failure.- apogee hooks —
capcom init --apogee-hooksadds an entry to.apogee/config.yamlthat runscapcom primewhen an apogee session starts and after compaction, creating the file if needed and leaving the rest of it alone. It needs apogee v0.28.0 or later, apogee asks you once to adopt the entry, it works alongside--claude-hooks,--codex-hooksand--merge-driver, and if the file cannot be edited capcom stops with an error that names it and leaves it unchanged. - Claude Code plugin —
/plugin install capcom --marketplace airiclenz/capcomadds acapcomskill to Claude Code and runscapcom primeat session start and before compaction in repositories that use capcom. The hook stays quiet when capcom is not installed, the repository has no capcom store, or your settings already runcapcom prime.
Improved
- "Did you mean" for mistyped commands — a misspelled command or subcommand, such as
capcom know shwo, now fails and names the closest real one (did you mean know show?). A mistyped subcommand ofknow,dep,lockorrelatednow exits with code 2 instead of printing that group's help and exiting 0; running the group on its own still shows its help. - "Did you mean" for mistyped flags — an unknown flag such as
--statsunow suggests the nearest flag that command accepts (did you mean --status?). With--jsonthe hint appears aserror.suggestion, and with--kvas aSUGGESTION=line; nothing is suggested when no flag is close. capcom uishows which worktree you are in — the tab bar now reads like~/repos/capcom · v<version> · capcom, with your home folder shortened to~. On a narrow terminal the folder is dropped first and then the whole label, so the tabs are never cut off.- Agent instructions point to
capcom nextfirst — the capcom section thatcapcom agentswrites intoAGENTS.mdnow opens withcapcom next, ahead ofcapcom ready. After upgrading, an existing section counts as out of date: runcapcom agentsonce to refresh it.
Docs & install
- FAQ and comparison pages — the manual gains a FAQ and a page comparing capcom with beads, GitHub Issues, Task Master and a plain
TODO.md, and the README FAQ now covers which coding agents capcom works with, how to keep project knowledge across sessions, and that capcom makes no network calls. The README and manual also state that capcom is not affiliated with Capcom Co., Ltd., and a newllms.txtat the top of the repository indexes the docs for AI tools. - Demo on the manual's start page — the manual's front page now opens with the same animated
capcom uidemo as the README.
v0.9.1
capcom — v0.9.1 — 2026-10-19
This release makes capcom stricter and more predictable when a flag is given more than once: flags that take one value refuse a repeat, and body edits on updates now apply every repeat.
Breaking changes
- A flag that takes one value can no longer be repeated — giving
--title,--status,--priority,--plan,--json,--standingor any other single-value flag twice to a capcom command now stops with a usage error (exit 2),--<name> given <n> times; give it once, before anything is read or written; before, the last value quietly won. What to do: give each such flag once in your scripts and agent prompts; flags that collect a list, such as--labeland--dep, still take every repeat.
Fixed
- Repeated body edits in
capcom updateandcapcom know updateall apply —--body-appendand the--body-replace-old/--body-replace-newpair can be given several times, and every replacement now runs in the order given, followed by every append, instead of only the last of each being used. If any replacement's old text does not appear exactly once, the whole update is refused with a message naming that pair (for example--body-replace-old #2 "<old>": …) and nothing is written; an unequal number of old and new texts is a usage error naming both counts.
v0.9.0
capcom — v0.9.0 — 2026-10-18
This release adds standing Parents, issues that exist only to group their children and never show up as work to pick up, and lets capcom ui show both panes at once on a narrow, tall terminal.
Breaking changes
- Marking an issue standing moves the store to format 5 — the first time any command leaves an issue marked standing,
.capcom/config.yamlis raised toformat: 5with a warning, and older capcom releases can no longer read that repository; new repositories fromcapcom initstart at format 5. What to do: upgrade capcom everywhere the repository is used, including teammates' machines and CI, before anyone marks an issue standing. - The agent instructions in
AGENTS.mdread as out of date after upgrading — the capcom block now tells agents never to claim or close a standing issue, socapcom checkandcapcom agents --checkreport an existing block as stale. What to do: runcapcom agentsonce to refresh the block.
New
- Standing issues —
capcom create --standingorcapcom update <id> --standingmarks an issue as a parent that only groups its children, andcapcom update <id> --no-standingremoves the mark, even in the same call that claims the issue with--status.capcom showprintsstanding: true,--jsonoutput carries"standing": true, and a closed or in-progress issue cannot be marked. - Standing issues never come up as ready work —
capcom ready,capcom prime, the ready list incapcom uiand thenow ready:line aftercapcom closeall leave them out, while their open children stay ready as usual.capcom ready --alllists one with the reasonstanding: holds children, andcapcom showprintsready: no (standing: holds children). - Claiming or closing a standing issue is refused —
capcom close <id>andcapcom update <id> --statuswith an in-progress status fail with a message telling you to runcapcom update <id> --no-standingfirst; closing several ids at once still closes the others. capcom checkcatches a standing issue that is closed or in progress — it reports it under the codestanding, at the line holding the mark, and says how to fix it.capcom uiknows about standing issues — the detail pane showsstanding: yes, and trying to claim, close or move one into an in-progress status shows a notice pointing tocapcom update <id> --no-standinginstead of changing anything.capcom uishows both panes on a narrow, tall terminal — below 90 columns and at least 25 rows, the list sits on top and the details below, split by a rule you can drag or move with<and>; a double-click resets it to a third of the screen. The position is remembered between sessions asui.stacked_ratioinstate.yaml, and shorter terminals keep the one-pane view.
Docs & install
- Manual covers standing issues — the file format reference documents the
standingkey and store format 5, and the pages on issues, JSON output, the session briefing and the agent instructions explain how standing issues behave. - Glossary defines Standing Parent — a new entry explains the term, and the entries for Ready, Parent and format version now account for it.
- Smoother demo in the README — the demo animation now zooms back out more slowly after the agent closes an issue.
v0.8.1
capcom — v0.8.1 — 2026-10-17
New
capcom uipicks up where you left off — Run with no argument,capcom uinow reopens on the tab you last had open in this worktree, with the same Issue or Note selected on each tab, instead of always starting on Ready (the very first run still opens Ready). Naming a tab or an id on the command line, as incapcom ui <tab> <id>, still takes you straight there; the remembered place lives in<git-dir>/capcom/ui-state.yaml, which is never committed, while the sidebar width you set stays remembered across all your projects as before.
Docs & install
- An animated tour at the top of the README — The README now opens with a short recording of
capcom ui: the Ready queue, claiming an issue, an agent closing another one live, the Issue tree, the Knowledge, and resizing the sidebar. - apogee listed among supported agents — The README now names apogee alongside Claude Code, OpenAI Codex, Cursor and the other coding agents capcom works with.