Built in the open
An agent operating system for the terminal.
GridWork is the operating layer for a fleet of coding agents: one append-only event log, one kernel, and one place that says what needs a human.
- binary
gwa single Rust binary- truth
- append-only event logevery view is a projection
- surface
- terminal-nativeno web console
$ cargo run -p gwk-cert -- crates/gwk-cert/fixtures/valid-stream.json
[]
gwk-cert: certified — 16 events, 0 findings
$ gw kernel health
{"type":"health","ready":true,"sealed":true}Install GridWork
cargo install gridworkCopycargo build --workspace # stable Rust · msrv 1.94Pre-1.0: expect breakage. Schemas, protocols, and the binary change without notice until 1.0. The headless CLI needs PostgreSQL 16 and separate admin and runtime roles. Review the prerequisites.
Where it actually is
Pre-alpha, at stage 5 of 6. The contract, kernel, engines, and console are done; the workspace multiplexer is the work now.
Working
- The contract and kernel are published.
- Certification runs against a real PostgreSQL 16.
- The performance envelope is measured, not asserted.
- The headless
gwCLI speaks the kernel protocol. gw tuiopens five live lenses over the estate.
Not built yet
- The exportable-as-evidence half of replay — recordings replay in the console, but not yet ledger-synced.
- The workspace: the real multiplexer.
- Engine host packaging — a separate, unpublished process until 1.0.
The architecture stays legible
Four boundaries define what owns truth, how clients behave, and where engine control belongs.
One log
Every platform truth is a projection of one append-only event log.
Read the boundaryA kernel, not a wrapper
The daemon owns storage, attention, authority, workflows, and worktrees.
Read the boundaryTerminal-native
The intended human surface is a TUI, with no web console.
Read the boundaryEngine-agnostic
Adapters use ACP, engine hooks, and PTY; control never rides keystrokes.
Read the boundary
Six stages, in order
Stages land when their gates are green. Contract, kernel, engines, and console have shipped; the workspace is current.
- 01
Contract
shippedThe shared language and conformance surface.
- 02
Kernel
shippedThe sole writer, projections, blobs, attention, and authority.
- 03
Engines
shippedPTY and agent-control adapters, certified by the parity matrix.
- 04
Console
shippedFive lenses over one estate: hall, work, fleet, flow, term.
- 05
Workspace
currentA daily-driver terminal multiplexer.
- 06
Context runtime
plannedSkills, memory, and knowledge as measured, receipted surfaces.
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.
Built by the thing it builds
The public repository begins after months of agent-operated software work, with authorship stated plainly.
- 7,300+
- contributions in the measured window
- 5 mo
- through July 2026
- 1 public repo
- the first from this operating system
This profile's contribution graph is the receipt — 7,300+ contributions in the five months to July 2026, nearly all agent-authored, and until this repo, all of it in private repos. This is the first public one, and the agents that produced that graph are writing this codebase too: most commits here are agent-authored under human direction and review. That's disclosed as a fact, not a caveat — the same gates apply regardless of who typed the code.
Clean-room means a traceable boundary
Apache-2.0 engine work is derived from permitted specifications and observations, never incompatible source.
Permitted
- Public specifications cited by stable derivation ID.
- Observed wire behavior captured in the public registry.
Forbidden
- Code copied, ported, or mechanically translated from an incompatibly licensed project.
- Copyleft terminal-multiplexer source in a gated engine author's context.
Independent second reader. Every clean-room change gets an additional fresh-context review with no exposure to the implementing session. The reader is not a second human, and the status check does not claim reviewer independence.
Crates, without padding the surface
Published contract and kernel crates sit beside the engine and TUI work that remains planned.
| Crate | What | Status |
|---|---|---|
| gwk-domain | Shared types, events, state machines — the contract | 0.0.2 |
| gwk-cert | Stream checker, plus the storage suite a backend runs against its own event store | 0.0.2 |
| gwk-theme | The 15 SIGNAL design tokens — one source for the site, the TUI, and the generated TypeScript | 0.0.2 |
| gwk-kernel | Daemon: event store, projections, blobs, attention, authority, the wire | 0.0.2 |
| gridwork | Ships the gw binary — the CLI that speaks the kernel's protocol | 0.0.2 |
| gwk | Namespace root for the gwk-* crates. No API | 0.0.2, name only |
xtask | Codegen and release glue. Not published | in-tree |
gwk-pty | PTY engine: server-side VT, render-state deltas, reattach | in tree, unpublished |
gwk-pty-host | Resident PTY engine host: session registry, spawn, detach/reattach routing | in tree, unpublished — not in cargo install gridwork until its own release |
gwk-adapter-* | Per-engine ACP + hooks adapters | in tree, unpublished |
gwk-parity | The engine parity matrix harness — runs locally, never in CI | in tree, unpublished |
gwk-text | Pure column arithmetic and extended grapheme boundaries | in tree, unpublished |
gwk-tui | The client: modes, lenses, palette | in tree, unpublished — five lenses and the live estate runtime |
| Before contributing, review the prerequisites and enforced gates in CONTRIBUTING.md. | ||