You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Corbits Code is a local-first coding agent. It lives in your terminal and works with whatever model you point it at — Anthropic, OpenAI, Google, a local Ollama, or any OpenAI-compatible endpoint. Your machine, your keys, your code.
3
+
Corbits Code is a local agentic software factory: a single-process coding agent
4
+
CLI that runs multi-agent fleets to implement, verify, and land software — with
5
+
progress and cost always visible. Point it at Anthropic, OpenAI, Google, a local
6
+
Ollama, or any OpenAI-compatible endpoint. Your machine, your keys, your code.
7
+
8
+
The product is the **harness** — the loop that dispatches work, watches it,
9
+
decides what happens next, and reports to the operator. Agent personas and
10
+
skills are content that run inside it.
4
11
5
12
## Quickstart
6
13
@@ -10,7 +17,8 @@ Corbits Code is a local-first coding agent. It lives in your terminal and works
10
17
brew install corbitsdev/tap/corbits-code
11
18
```
12
19
13
-
Upgrade later with `brew update && brew upgrade corbits-code`. The CLI binary is `corbits`.
20
+
Upgrade later with `brew update && brew upgrade corbits-code`. The CLI binary is
After pulling new changes, re-run `bun run build:bin` to refresh the binary.
36
44
37
-
## Contributing
45
+
## Usage
38
46
39
-
Before your first commit: `git config core.hooksPath .githooks` and `./bin/check-env`.
47
+
### TUI (default)
40
48
41
-
Every change must pass `bun run typecheck`, `bun run build`, and `bun run test`, and behavior changes come with tests. Coding conventions live in `AGENTS.md` (functional TypeScript, no classes, arktype at boundaries); commit, PR, and Linear/GitHub linking rules live in `CONTRIBUTING.md`. System design is documented in `docs/ARCHITECTURE.md` and `docs/IMPLEMENTATION.md`.
49
+
```sh
50
+
corbits "Add JWT auth to the API"
51
+
```
42
52
43
-
## Stack
53
+
Full-screen terminal UI (OpenTUI): event log, permission and operator prompts,
54
+
diff and cost visibility, and a chat input for follow-ups. Press **Shift+Tab**
55
+
to cycle reasoning effort for the current model; **Tab** toggles focus between
56
+
the prompt and the transcript. See `docs/TUI.md`.
44
57
45
-
-**Runtime:** Bun + TypeScript
46
-
-**Agent loop:**`@intx/agent` with event-driven reactor
47
-
-**Inference:**`@intx/inference` with OpenAI-compatible SSE adapter
48
-
-**Tools:**`@intx/tools-posix` with path-escape, authz, and verify plugins
49
-
-**Persistence:**`@intx/storage-isogit` for git-backed resume
50
-
-**Testing:**`@intx/inference-testing` for deterministic agent loop tests
51
-
-**TUI:** Ink + React
58
+
### Exec (non-TUI)
52
59
53
-
## Architecture
60
+
```sh
61
+
corbits exec"Add JWT auth to the API"
62
+
# alias:
63
+
corbits run "Add JWT auth to the API"
64
+
```
54
65
55
-
Corbits Code is a single-process CLI built on Interchange primitives. The goal is raw feature implementation throughput that outperforms other coding agents through deterministic event-loop discipline, better prompts, and a custom reactor director.
66
+
Same directors, tools, permissions, MCP, plugins, and hooks as the TUI — without
67
+
the OpenTUI shell. Streams assistant text to stdout for scripts and CI.
The chat director adds context management on top of the reactor:
77
+
Plain `corbits` always starts a fresh conversation. `corbits resume` opens a
78
+
picker of saved sessions for the working directory.
79
+
80
+
### Mid-run steering
81
+
82
+
While a run is in progress:
73
83
74
-
-**Threshold compaction:** As the context window fills, the conversation is compacted at the next safe point.
75
-
-**Idle compaction:** A pending compaction also runs when a turn ends without more work, so a text-only conversation still compacts.
76
-
-**Overflow recovery:** A context-overflow error triggers a bounded compact-and-retry instead of failing the turn.
77
-
-**Workflow nudges:** When a workflow is active, the director keeps the run on the current step and surfaces a visible message if it stalls.
84
+
-**Enter** — soft-steer while the parent is busy (in-flight tool / `wait_agents`); starts a new primary turn when the parent is idle with a fleet still running
85
+
-**Alt+Enter** — queue a follow-up delivered when the whole session is idle
86
+
-**Ctrl+C** — interrupt the run
87
+
88
+
Shortcuts are listed in `/help`. Details live in `docs/PRODUCT.md`.
78
89
79
90
## Permissions and auto mode
80
91
81
-
Corbits Code defaults to **auto mode** (`auto = true`). Workspace file writes/edits/deletes and unconstrained shell commands run without per-action prompts. Pass `--no-auto` to start in ask-on-every-consequential-action mode (there is currently no in-session key to toggle auto). Press **Shift+Tab** in the TUI to cycle reasoning effort for the current model. Enabling auto prints a one-line reminder of the envelope below.
Wrappers such as `bash -c '…'`, `sh`/`zsh -c`, `xargs`, and transparent prefixes (`env`, `nice`, `timeout`) are peeled so the same rules apply to the inner command. Unparseable wrappers fall through to ask rather than auto-allow.
126
+
Wrappers such as `bash -c '…'`, `sh`/`zsh -c`, `xargs`, and transparent prefixes
127
+
(`env`, `nice`, `timeout`) are peeled so the same rules apply to the inner
128
+
command. Unparseable wrappers fall through to ask rather than auto-allow.
103
129
104
-
Catastrophic patterns (`rm -rf /`, `sudo`, `curl | bash`, force-push, open-ended `find`/`rg`/`grep -r`, …) are always denied by authorization, independent of auto mode. `--dangerously-skip-permissions` still forces this process; `/yolo` persists as the user-global default. Both bypass the permission gate (not secret-guard path denies or authz hard blocks).
-**Skills / slash commands** — first-party actions such as `/implement`,
188
+
`/plan`, `/review`, `/create-issue` ship with the `corbits-skills` plugin (on
189
+
by default; toggle in `/plugins`)
190
+
191
+
## Agent workspace
118
192
119
193
Corbits Code keeps repository guidance and the closed director fleet separate:
120
194
121
195
-`AGENTS.md` — shared startup instructions and project context
122
-
-`CLAUDE.md` — Claude-specific workspace notes
123
-
-`src/agent/directors/` — closed spawn catalog (`directorProfiles()`). Skywalker is the primary orchestrator; spawnable directors include builder, explorer, counsel, intern, critic, greybeard, and the rest of `DIRECTOR_IDS`. Closed ids cannot be overridden by plugins or local files.
124
-
-`.agents/agents/` — optional local profile additions; this directory is not required and may be absent
emil, rand, shakespeare, testsmith, and tester. Closed ids cannot be
200
+
overridden by plugins or local files.
201
+
-`.agents/agents/` — optional local profile additions; this directory is not
202
+
required and may be absent
203
+
204
+
Named workers resolve through `spawn_agent` / `task` (`resolveDirector`): closed
205
+
directors first, then enabled agent plugins, then local
206
+
`.agents/agents/*.json|*.yaml` profiles. Use `search_agents` to discover ids
207
+
before dispatching.
208
+
209
+
## Contributing
210
+
211
+
Before your first commit: `git config core.hooksPath .githooks` and
212
+
`./bin/check-env`.
213
+
214
+
Every change must pass `bun run check` (lint, typecheck, build, and test).
215
+
Behavior changes come with tests. Coding conventions live in `AGENTS.md`
216
+
(functional TypeScript, no classes, arktype at boundaries); commit, PR, and
217
+
Linear/GitHub linking rules live in `CONTRIBUTING.md`.
218
+
219
+
```bash
220
+
bun install
221
+
bun run check
222
+
```
125
223
126
-
Named workers resolve through `spawn_agent` / `task` (`resolveDirector`): closed directors first, then enabled agent plugins, then local `.agents/agents/*.json|*.yaml` profiles. Use `search_agents` to discover ids before dispatching.
0 commit comments