
coniso
Coniso: context-isolated agent teams for Claude Code
Install with your AI
Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.
Install and set up coniso (git-clone project) into my current project. Found on https://claudeers.com/coniso Repo: https://github.com/Palatine-Labs/coniso Homepage/docs: https://github.com/Palatine-Labs/coniso Detected install method: git-clone → git clone https://github.com/Palatine-Labs/coniso Category: plugins. Platforms: cli, api, desktop, web. Read the repo's README for exact setup and env vars, then install it and wire it into my project. Claudeers Health Verdict: unknown; community-verified: false. Confirm the source before running anything.
git clone https://github.com/Palatine-Labs/coniso
// compatibility
| Platforms | cli, api, desktop, web |
|---|---|
| Operating systems | — |
| AI compatibility | claude |
| License | Apache-2.0 |
| Pricing | open-source |
| Language | Python |
Coniso
Coniso: context-isolated agent teams for Claude Code
by Palatine Labs · pronounced CON-ih-so (short for context isolation)
Call a role and it brings its team. Every agent works in a clean, small context, and a deterministic script handles the bookkeeping so no model has to.
Status: v1.0. The core is stable and in daily use. Expect sharp edges on uncommon setups. Please report them as issues.
Claude Code only. Coniso runs a local Python script, git worktrees and nested subagents, so it needs Claude Code: the terminal, an IDE extension, or the desktop app's Code tab. In claude.ai chat it installs but has nothing to run on. Cowork is untested.
The problem
Long Claude Code sessions on large codebases degrade in two predictable ways:
- Context bleed. One session accumulates file dumps, diffs, test logs and dead ends from every task it has touched. Later work is reasoned against that noise, instructions from early in the session get diluted, and quality drifts.
- Token waste. The same session re-reads all of that history on every turn. Ad hoc subagents help, but they usually hand raw output back up the chain, so the main context fills up anyway, just more slowly.
Coniso is built to reduce both, mostly through structure rather than prompting alone:
- Every subagent gets one packet in a fresh context and is told to return at most 12 lines. Detail (briefs, assignments, diffs, test logs, reports) lives in files under
.coniso/, and agents are told to pass paths, not contents. That keeps raw output from climbing the hierarchy. It's a rule agents follow, not a limit the script enforces. - A plain Python script, not an LLM, owns the bookkeeping: scheduling, dependency waves, sprint state, git worktrees, diffs, merges, plan validation and roadmap edits. No tokens are spent on graph math or rule checks a script can do.
- The main session is built to stay small for hours, and a sprint survives a restart ("director, continue").
Roles
The main session is always the top of the hierarchy. You call a role, and it brings the team it needs:
| You call | Agent · default model | It brings | Use it for |
|---|---|---|---|
Engineer (/coniso:engineer) | coniso:engineer · sonnet (haiku for mechanical, opus for hard) | itself: one worker, no worktree | a quick, well-defined task |
Lead (/coniso:lead) | coniso:lead · sonnet (opus on opus tickets) | one ticket in its own git worktree: a solo engineer plus one reviewer for S/M tickets, a lead with 3–4 engineers for L tickets | one roadmap ticket or one described feature |
Manager (/coniso:manager) | coniso:manager · opus | a track of teams and solo engineers, one dependency wave at a time | a roadmap phase or workstream |
Review Lead (/coniso:review) | coniso:review-lead · opus | adversarial reviewers | verdicts on built tickets, or a sweep for defects over merged work |
Director (/coniso:director) | the main session | everything above | a long session working through a block of your roadmap |
Support roles, spawned by leaders, never by you:
- Reviewer (
coniso:reviewer): adversarial review against the acceptance criteria. Every finding needs evidence. It also hunts for gamed tests: deleted or loosened tests, hard-coded expected values, TODOs claimed as done. Builders never judge their own work. - Auditor (
coniso:auditor): a model one tier cheaper than the leader it audits. It challenges judgment calls (model tier, packet size, ordering, scope) and review rulings. Every overrule is logged, so the retro shows whose routing is going wrong. - Scout (
coniso:scout): read-only recon of a codebase area or docs question, written to a short map file.
Specialties (builder, tester, ui, net, level, audio, docs, batch, artisan, synth) are scoped guidance injected into a generalist engineer. They aren't personas with lanes to get stuck in.
Install
Inside Claude Code:
/plugin marketplace add Palatine-Labs/coniso
/plugin install coniso@coniso
Or from your shell:
claude plugin marketplace add Palatine-Labs/coniso
claude plugin install coniso@coniso
Install it from one source only. A copy added from Anthropic's directory on claude.ai appears in Claude Code as coniso@synced; if you also install coniso@coniso, disable one of them.
Requirements
- Claude Code with plugin support. Nested subagents give full parallelism; without them, relay mode keeps sprints working with less (see below). Developed and tested on v2.1.292. Older 2.1.x releases may work but aren't tested.
- Python 3.8+ on
PATHaspython3,pythonorpy -3. Standard library only. - git: each ticket builds in its own worktree. For non-code work, init with
--no-worktrees. - Windows, macOS and Linux.
Experimental flags
None required. Coniso runs on Claude Code's defaults. Two existing values would break nesting, and Coniso offers to fix them (see Permissions):
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHbelow 3: fix sets it to 3.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1: fix sets it to 0. Coniso uses its own hierarchy, not experimental agent teams.
If nested spawning isn't available at all, leaders switch to relay mode on their own: they write spawn requests and the main session spawns for them. Sprints keep working; only parallelism drops. preflight (run on every call) reports which mode you're in.
Quickstart
- Open Claude Code in a git repo with at least one commit.
- Make a roadmap (optional for one-off calls, needed for sprints):
Claude settles the goal, stack and phases with you, then writes
/coniso:roadmap new My Projectdocs/roadmap/<Project>-Roadmap.html. - Call a role:
or describe a feature:
/coniso:lead P1-01/coniso:lead add CSV export to the reports page. - For a long session:
The Director schedules ready tickets into waves, builds each in its own worktree, reviews them, and merges the ones that pass. It stops at phase gates for your go/no-go.
/coniso:director P1 - Check progress any time with
/coniso:status. To resume in a fresh session, say "director, continue".
The first call runs init, which:
- installs
.coniso/and git-excludes it; - finds your roadmap and your build and test commands;
- reports which permission rules would stop agents stalling on prompts. Claude then asks whether to add them (below).
Permissions
Coniso never changes your Claude Code settings without your yes. On the first call, Claude shows you exactly what it would add to .claude/settings.local.json and asks:
- allow rules for the Coniso script and your build and test commands, so agents don't stop on every prompt;
- an env fix, only if one of your current values breaks nested subagents (see above).
Say yes and it runs permissions --write. Say no and it records that and stops asking; Coniso still works, but agents may pause for approval. That file is local to you and git-excluded.
You can change your mind at any time, by asking Claude or running the script yourself:
| Command | What it does |
|---|---|
python .coniso/coniso.py permissions | Show what's allowed and what's missing |
python .coniso/coniso.py permissions --write | Add the allow rules (and any needed env fix) |
python .coniso/coniso.py permissions --accept-edits | Also make accept-edits the project's default mode, for unattended sprints. Always a separate opt-in |
python .coniso/coniso.py permissions --decline | Stop asking |
python .coniso/coniso.py permissions --remove | Remove everything Coniso added |
Natural language works too ("call a lead on P2-04", "run a sprint on phase 2").
The HTML prompt roadmap
The roadmap is a single self-contained HTML file per project. It needs no server and no internet, and you open it in any browser. It holds phases, small tickets, a copy-ready prompt per ticket, and a recommended model and effort per ticket.
- On the page: set statuses, tick done-when items and write notes. These stay in your browser.
- Copy prompt gives a fresh-session prompt with the project preamble included.
- Copy Coniso command gives
/coniso:lead <id>, or/coniso:director <phase>from a phase header. - Save updated file downloads the roadmap with your changes.
- Copy status for Claude gives a summary to paste into a session.
- Keep it current:
/coniso:roadmap nextshows what's next. Pasting status, or asking to "expand phase 2" or "revise tickets after we switched to Postgres", updates the file through the script. The script validates every write, merges browser and Claude edits without clobbering, and refuses to delete done tickets. - How sprints use it: the Director builds from it. After each wave,
roadmap-syncmoves merged tickets toreviewwithClaude:notes and bumps the revision. Tickets are never markeddonefor you. Clicking through and marking done stays yours.
Roadmap work needs no Coniso setup and works in non-git folders too.
Token usage and cost
Being straight about this:
- Coniso does not use fewer total tokens than doing the same work yourself in one session. A ticket costs one builder plus at least one reviewer, and leaders add auditors. Each agent reads the brief and its own assignment. That overhead is the price of independent review and isolated contexts.
- What it does is keep every context small and bounded. The main session doesn't grow with the work, so it doesn't pay to re-read hours of history on every turn, and late work isn't reasoned against the noise of early work. For long sessions on large codebases we expect this to be a net saving, though we haven't published measurements. For a ten-minute fix it isn't. Just ask Claude directly.
- It spends where it matters: haiku for mechanical packets, sonnet as the workhorse, opus only for load-bearing work and leadership. A ticket that fails twice moves up one model tier, and a third fail stops and asks you. S and M tickets run as one engineer plus one reviewer, with no team overhead.
- Parallelism multiplies spend rate. By default, a Director sprint can run up to ~20 subagents at once. That finishes sooner but burns your plan's usage or API budget faster.
- Levers:
/coniso:director … lighthalves concurrent builds and uses single reviewers.- Prefer
/coniso:leadfor single tickets over a full sprint. - When cost has to drop, Coniso cuts breadth (fewer concurrent units) before it ever cuts review.
- Idle cost is small: about 600 tokens per session while installed, whether or not you use it.
- Rule of thumb: use Coniso on a usage-based plan with headroom or an API budget you've set limits on. Watch your first sprint's usage before running unattended (
permissions --accept-edits).
Commands
| Command | What it does |
|---|---|
/coniso:director [phase|ids|continue] [light|max] | Full sprint |
/coniso:manager <phase|ids> | One track |
/coniso:lead <ticket id | feature description> | One ticket |
/coniso:review <ids | A..B range> | Review round or sweep |
/coniso:engineer <task> | One worker, no worktree |
/coniso:status | Sprint board |
/coniso:roadmap [new <project> | next | change] | Create or update the roadmap, or show what's next |
Always-on footprint: about 600 tokens per session (measured with claude plugin details coniso): one short skill description, one-line agent descriptions, and role commands that Claude can't auto-invoke. Each role's full procedure loads only when you call it.
Script reference (.coniso/coniso.py)
| Command | Purpose |
|---|---|
init [--stack <pack>|none], preflight | Install or refresh; check git state, roadmap validity, nesting mode and permissions |
permissions [--write [--accept-edits] | --decline | --remove] | Show, grant, decline or undo Coniso's entries in .claude/settings.local.json |
schedule [--phase P] [--tickets ids] [--limit N] [--add] [--formation managed|direct] | Plan a sprint |
validate-plan <table> [--slots N] [--no-files] | Check a delegation plan: one owner per file per step, complete assignment files, slot limits |
adhoc <id> --title … [--size] [--model] [--accept …] [--prompt-file] | Add a non-roadmap ticket |
status [id] [--json] [--open], set <id> <state> [--note] [--verdict] [--model] | Sprint state |
wt add|path|remove <id> | Worktrees on branch coniso/<id>, based on your current HEAD |
diff <id> / diff --range A..B, test <id|main> | Diff and test output go to files; the console gets a summary |
sync <id> [--continue] | Bring main into a ticket's worktree to resolve conflicts |
merge <id> | Squash, integration test, commit; resets cleanly on conflict or failure |
ledger add|stats | Auditor objection log |
roadmap-sync, retro, close | Write back, report, archive |
roadmap new|show|next|validate|extract|write|set|log|upgrade | Roadmap file tools (work without .coniso/) |
Stack packs
init --stack <name> installs a pack from the plugin's stacks/<name>/ folder. A pack can provide:
rules.md, added to the brief;specialties/*.md, extra engineer specialties;stack.json, with optionalcheck_cmd,setup_cmd,build_cmdandreview_lens;proving.md, a pass the Director runs after each wave.
{python} and {stack} in commands expand to the interpreter and the installed pack folder. v1.0 ships no packs. The mechanism is there for your own. Contributions are welcome.
Guarantees and notes
- Coniso doesn't push. The script has no push command, and agents are told never to push. Sprint sync never marks roadmap tickets done, and merges refuse to run over uncommitted work rather than stashing or touching it.
- What it runs and touches: your build and test commands, git (worktrees, branches, squash merges on your current branch), and its own files under
.coniso/and.git/info/exclude. With your yes, it edits.claude/settings.local.json. Agents' own web lookups (scouts) go through Claude Code's tools. Coniso sends nothing anywhere itself. - The merge gate checks the integrated code. A ticket needs a passing review. Each merge then squashes it, runs your build and tests on the integrated result, and resets the branch untouched if anything fails or conflicts. Limits: with no build or test command set, preflight warns and the merge rests on review alone;
merge --forceand--no-testoverrides exist (--forceis reserved for your say-so);--no-worktreesmode has no merge gate; and it's a rule, not a lock, so an agent with shell access could still commit directly. - Worktrees live in
.coniso/wt/. If a tool in your repo scans dot-folders (some eslint or jest setups), add.conisoto its ignore list. - Leave the main checkout alone during a sprint: merges need it clean.
- Lessons loop: when you critique an agent's work, a one-line lesson goes to
docs/agent-feedback/<specialty>.md, and engineers read it before working.
Contributing and security
- Contributions: see CONTRIBUTING.md.
- Vulnerabilities: report privately per SECURITY.md. Please don't use public issues.
- Privacy: Coniso collects and sends nothing. See PRIVACY.md.
License
Apache License 2.0. See LICENSE and NOTICE.
Coniso is an independent project by Palatine Labs and is not affiliated with or endorsed by Anthropic. "Claude" and "Claude Code" are trademarks of Anthropic, PBC.
// faq
What is coniso?
Coniso: context-isolated agent teams for Claude Code. It is open-source on GitHub.
Is coniso free to use?
coniso is open-source under the Apache-2.0 license, so it is free to use.
What category does coniso belong to?
coniso is listed under plugins in the Claudeers registry of Claude-compatible tools.
// embed badge
[](https://claudeers.com/coniso)
// retro hit counter
[](https://claudeers.com/coniso)
// reviews
// guestbook
// related in Claude Plugins
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explainin…
"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/
financial-services — a Claude ecosystem project on GitHub.