A rock-solid agent foundation · The TUI client for DSH · A single Rust file
Why CLAT
CLAT brings the model into your terminal: reading code, editing files, and running commands all happen locally — every step visible, controllable, and auditable.
Sessions persist as append-only logs; settings, credentials, and trust decisions live in local JSON files under ~/.clat. No cloud dependency — your data never leaves your machine.
A single Rust executable with no runtime and nothing to install. Runs out of the box on six platforms across macOS, Linux, and Windows.
Entering a new directory passes a trust gate first. Permissions switch between read-only, project-write, and full-access; at the default level every file write and command asks first, and paths stay inside the project root.
Positioning
Spring, DeepSeek Harness, and CLAT share the same "composable container" organ — systems assembled declaratively from swappable parts, an idea reaching back to IoC and OSGi — yet they serve different users and head in different directions. This table orients first-time visitors.
| Spring | DSH | CLAT | |
|---|---|---|---|
| Positioning | Enterprise Java application framework | An "everything is a plugin" agent runtime | A rock-solid agent foundation |
| Users | Programmers building applications | Developers driving agents, and the models themselves | Users who want local-first, single-binary, auditable tooling |
| Container philosophy | Let programmers forget the container | Let the runtime be rewritten at any time | Let the user audit the container |
| Composition time | Compile time / deploy time | Run time | Compile time (static manifest); extensions move out via MCP |
| Extension | jar + interfaces | In-process TypeScript plugins | MCP protocol + gated WASM |
Spring lets programmers forget the container, DeepSeek Harness lets the model rewrite it, and CLAT lets the user audit it. If what you want is a stable, small, see-through agent foundation — this is it.
Features
01 — Models
DeepSeek, GLM, Qwen, Kimi, and Tencent Hy presets are built in, and any OpenAI-compatible endpoint works too. /model opens a two-level picker — vendor first, then model — with keys stored in per-vendor slots.
02 — Multimodal
Press Ctrl+V to paste a screenshot, drag an image path in, or use /paste-image from the clipboard — images enter the message as structured attachments, shown in both the TUI and the web workbench. The built-in view_image tool lets the model itself inspect images in your project. GLM 5.3 Flash and the DeepSeek Vision preset see natively; when a model can't, CLAT fails loudly instead of silently degrading.
03 — Interaction
The model stops to ask when a decision is yours to make; while a run is active you can send steering messages that change its direction. Reasoning renders inline as a collapsible Think row (Ctrl+R expands), and /suggest previews a next-message hint on demand — sent only when you adopt it.
04 — Runtime
No turn limit — a run continues until the task is done. At 80% of the context window the conversation compacts automatically, with the original history fully preserved.
05 — Permissions
Read-only, project-write (default), and full-access, switchable any time via /perm or right from a permission prompt, remembered per project. In the lower two modes, file writes and commands still ask every time.
06 — Integration
MCP servers over stdio or Streamable HTTP; GLM Coding Plan mounts the four official GLM MCP servers automatically, and /mcp shows every connection and registered tool.
07 — Agent
Memory is yours to write explicitly: /memory stores project or global knowledge, the model only reads it and never auto-saves conversations. /goal arms one bounded goal per session — hard caps on rounds, tokens, and time, with acceptance criteria verified automatically. /subagents on launches read-only subagents to explore the codebase in parallel, all usage charged to the parent run.
08 — Persistence
Every conversation is written to an append-only log, flushed before the model is called; after a crash it recovers to the last complete batch. Logs use the DSH-compatible format, readable by other compatible tools, and legacy sessions upgrade in one step with /update. The model titles each session — /rename to edit.
09 — Skills
Skills layer across the project's .clat/skills/, the user directory, and built-ins; the model loads instructions by name (/skill invokes directly) — loading is read-only and never executes code. Configure ~/.clat/lsp.json for read-only language intelligence: precise definition, references, implementation, and hover navigation.
10 — Plugins
The signed plugin marketplace pi.at.cn is live: clat plugin browses, installs, updates, and rolls back in one command, with dependency solving, publisher and revocation checks, and capability review built in. WASM components and MCP servers share one manager, interoperable with the DSH ecosystem.
11 — Ecosystem
One clat dsh connects to a local DSH host and the CLAT interface becomes its terminal: DSH sessions, questions, and approvals all happen in the same TUI, with automatic reconnection. It never writes to ~/.dsh — everything goes through the official API.
12 — Frontends
clat now starts a background host: the TUI, web workbench, and WeChat remote all attach to the same sessions as clients — close the TUI and the host keeps running, so tasks never drop. The host lives on 127.0.0.1:2691; a newer CLAT smoothly replaces an idle old host, and browser pages reconnect in place.
Get started
The one-line scripts are recommended: they detect your platform, download the release binary, verify the Minisign signature and SHA-256, and put it into ~/.local/bin (Windows: %LOCALAPPDATA%\Programs\clat). First-install verification needs minisign (macOS: brew install minisign); when no prebuilt binary exists the scripts fall back to building from source.
You can also grab the binary for your platform from the Releases page and drop it into your PATH. Installed users self-update with clat upgrade.
| Platform | Asset | Architecture |
|---|---|---|
| macOS | clat-v*-aarch64-apple-darwin.tar.gz | Apple Silicon |
| macOS | clat-v*-x86_64-apple-darwin.tar.gz | Intel |
| Linux | clat-v*-x86_64-unknown-linux-gnu.tar.gz | x64 |
| Linux | clat-v*-aarch64-unknown-linux-gnu.tar.gz | ARM64 |
| Windows | clat-v*-x86_64-pc-windows-msvc.zip | x64 |
| Windows | clat-v*-aarch64-pc-windows-msvc.zip | ARM64 |
Linux builds require glibc 2.39+ (Ubuntu 24.04 generation or newer); older distributions should build from source. After extracting, try clat --help, then run clat inside a project directory — the first run asks you to trust it. The scripts are the same: once installed, just run clat.