Overview
Crystal Code is a coding TUI for a local repository. The terminal is the only operator surface. It streams a model-and-tool loop, with Plan and Work, approval, compaction, and operator data under ~/.crystal.
crystal run runs one task without a terminal. Anything that would ask the operator is denied.
Crystal Code uses the Crystal library. It does not modify Crystal, and it does not replace it.
What it does
Section titled “What it does”In the workspace you want the agent to inspect or change:
- Streams a turn with tool calls, and queues follow-ups while the turn runs.
- Retries a failed model round on rate limits, server errors, timeouts, network faults, and incomplete streams.
- Switches provider and model with
/model. - Plan reads. Work can edit, write, and run shell commands.
- Approves side effects manually, with a reviewing model, or by policy.
- Compacts context as usage approaches the selected window.
- Stores configuration, permissions, and sessions under
~/.crystal. - Calls DeepSeek, OpenAI-compatible Chat Completions, OpenAI Responses, and Anthropic Messages, including endpoints you add.
Built-in tools and provider adapters register through one in-process plugin table. Add tool sets under ~/.crystal/tools and <workspace>/.crystal/tools. Add plugins under ~/.crystal/plugins and <workspace>/.crystal/plugins.
Not yet implemented
Section titled “Not yet implemented”Not in this build: MCP servers, an operating-system sandbox, parent/child agents, audio and video input, non-text model output, editing provider definitions in the TUI, and fetching a provider’s model list.
Built-in protocols are DeepSeek, OpenAI-compatible Chat Completions, OpenAI Responses, Anthropic Messages, Gemini, and Ollama. A plugin can add another protocol. Image input works for models and providers that support it.