Skip to content
← All work

CLI coding agentProof of concept

Zace

A model-agnostic CLI coding agent I built to learn how coding agents work, from planner–executor runs to validated tool calls.

Typed tools carry every side effect
3
Context usage that triggers automatic compaction
80%
Diagnostics fed back after every file change
LSP
Role
Solo project
Period
Feb 2026 – Mar 2026
Stack
Bun, TypeScript, Python, Zod, JSON-RPC, LSP, uv
Live
GitHub ↗ (opens in a new tab)

Overview

I built Zace to learn how coding agents work under the hood: planning, tool calling, context management and safety checks. It’s a proof of concept for learning, not a tool meant for everyday use.

It’s a command-line agent built with Bun and TypeScript. It works with any model, and splits each task into planning and execution so that runs are deterministic.

The runtime

  1. 01Developer intent
  2. 02Planner
  3. 03Executor
  4. 04Validated tools

A context and memory pipeline keeps multi-step execution state. It threads session history and tool outputs through agent loops, and caches structured summaries to improve code understanding.

Safety

  • Zod-validated tool schemas, so malformed tool calls are rejected before they run.
  • Permission-aware safeguards around actions that change the workspace.
  • Controlled side-effect boundaries, keeping autonomous execution auditable.
Next projectZevium →