Built in the open
An agent operating system for the terminal.
Coding agents are multiplying faster than the tools that supervise them. GridWork is the operating layer for a fleet of them — one Rust binary, one append-only event log, one surface.
- binary
gwa single Rust binary, from the first build- truth
- append-only event log every view is a projection of it
- surface
- a TUI no web console, ever
git clone https://github.com/GridWork-dev/gridwork
cargo build --workspace # stable rust · msrv 1.88
cargo install gridwork lands when the CLI crate publishes at 1.0.
Pre-1.0 — expect breakage.
This project is being built in the open from its first commit. Schemas, protocols,
and the binary itself change without notice until 1.0. Don’t run
main anywhere you care about.
Architecture
Four commitments, and everything follows from them.
Each one is a constraint before it is a feature. They are what makes the system auditable instead of merely automated.
One log
Every platform truth — tasks, messages, gates, budgets, telemetry — is a projection of a single append-only event log. No dashboard database. No second truth.
A kernel, not a wrapper
A daemon owns the event store, the attention queue, the authority policy — what agents may do unattended and what pages a human — plus workflow runs and worktree lifecycle. Clients are thin.
Terminal-native
The surface is a TUI: an orchestration mode with an attention queue, a work board, and a live view of the fleet — and a workspace mode that is a real multiplexer.
Engine-agnostic
Agents are driven over ACP plus engine hooks and PTY. Control never rides keystrokes — no synthetic typing, no screen scraping, no guessing what the agent saw.
Provenance
Built by the thing it builds.
GridWork is not a cold start. It is the open rebuild of an internal agent OS that has been running a real software operation for months: spec-driven phases, authority gates deciding what agents may do unattended, event-sourced telemetry, and a fleet of coding agents shipping production systems under it.
That contribution graph is the receipt — nearly all of it agent-authored, and until now, nearly all of it in private repositories. This is the first public one, and the same agents are writing this codebase: most commits here are agent-authored under human direction and review. That is disclosed as a fact, not a caveat — the same quality gate applies regardless of who typed the code.
Clean room
Terminal multiplexing and agent orchestration are domains where established projects carry copyleft licenses. GridWork is Apache-2.0, and its independence is procedural — written down and in force before any engine code exists.
- ✓ Concept-level inspiration from public, documented behavior.
- ✓ A derivation citation on every non-obvious terminal behavior — the public spec it implements, or a registered captured observation.
- × Code copied, ported, or mechanically translated from an incompatibly-licensed project. Never accepted, from anyone.
- × Engine authors reading copyleft multiplexer source, before or during that work.
Every change touching the clean-room paths gets an independent second review on the public pull request. Full policy: CLEANROOM.md.
Roadmap
Five stages to 1.0, landing in order.
Each stage exits with working, tested code. There are no aspirational branches.
stage 1 of 5 — contract, in progress
-
01
Contract
currentThe shared language everything else speaks.
- Domain types, event schemas, and state machines in
gwk-domain, with property tests - Event-stream conformance checking in
gwk-cert - A generated TypeScript contract for non-Rust consumers, CI-checked against the committed artifact
- Domain types, event schemas, and state machines in
-
02
Kernel
planned- A daemon owning an append-only event store — the sole writer; every other view is a projection
- The attention queue: one prioritized feed of everything that needs a human
- Authority policy as data: what agents may do unattended, what always pages
- Headless CLI verbs over the same protocol the TUI will use
-
03
Engines
planned- PTY engine: authoritative server-side virtual terminal, render-state deltas, detach/reattach, recording
- Agent adapters over ACP and engine hooks — control never rides synthetic keystrokes
- A parity matrix per engine, including permission-prompt relay
-
04
Console
planned- The orchestration TUI: Queue (attention), Board (work), and a live view of the running fleet
- Time-synced replay of ledger and terminal, exportable as evidence
-
05
Workspace
planned- A full terminal multiplexer: workspaces, tabs, splits, scrollback, detach
- Daily-driver quality — the stage where GridWork becomes the terminal you live in
-
——
1.0
planned- All pillars complete and packaged, with a single-command install
- Distribution stops assuming you run your own postgres — a zero-setup embedded backend is part of 1.0 packaging, not before
Principles that won’t move
- One append-only log owns every truth; user interfaces are projections of it.
- The kernel is the sole writer; clients are thin.
- Control never rides keystrokes.
- Terminal only. No web console.
Build surface
What exists, and what doesn’t yet.
Library crates are prefixed gwk-; the crates.io name gw belongs to an
unrelated tool. The binary is gw — permanently, from the first build.
| Crate | What | Status |
|---|---|---|
| gwk-domain | Shared types, events, state machines — the contract | skeleton |
| gwk-cert | Contract conformance checker for event streams | skeleton |
| xtask | Codegen and release glue | skeleton |
| gwk-kernel | Daemon: event store, projections, attention, authority | planned |
| gwk-pty | PTY engine: server-side VT, render-state deltas, reattach | planned |
| gwk-adapter-* | Per-engine ACP and hooks adapters | planned |
| gwk-tui | The client: modes, lenses, palette | planned |
| gridwork | CLI crate — headless verb twin of the TUI; ships gw | planned |
Pre-1.0, the fastest way to help is issues with concrete reproductions and small,
focused PRs. Every PR is green on fmt, clippy -D warnings,
the test suite, doc tests, and cargo deny before it merges — agent-authored
or not.