
Block
Creator and engineer / 2026
- Rust
- Ratatui
- JSONL
- RPC
- OAuth
I started Block as a Rust port of Pi. It kept Pi’s basic shape, a terminal-first coding agent with local tools and saved sessions, but soon grew past a direct port. Block now has its own package system, Rust extension API, RPC mode, and embeddable SDK.
Features
- Full-screen TUI, one-shot text output, JSONL event streaming, and RPC operation through the same application layer
- Resumable sessions with fork, clone, compaction, naming, and standalone HTML export
- Local coding tools, OpenAI-compatible models, ChatGPT OAuth, and configurable thinking levels
- Installable packages, a Rust extension API, and an embeddable SDK
Design
Block uses a ports-and-adapters structure. The domain crates hold messages, tools, models, and sessions. The application crate defines what the agent can do. OpenAI, local tools, JSONL storage, the TUI, packages, and RPC implement the outside edges.
I enforce that layout with tests. An adapter cannot import another adapter or reach into the CLI for shared behavior. This matters in Block because it has many moving parts: streamed model output, tool calls, OAuth, files on disk, terminal state, and loadable extensions. Clear boundaries let me change one part without dragging the rest with it.