Repository layout
lime-code/├── Cargo.toml # Workspace root├── rust-toolchain.toml # Pinned Rust toolchain├── AGENTS.md # Repo instructions used by Lime itself├── README.md├── assets/ # Brand & docs assets (logo, agent illustration)├── docs/ # Internal design docs (NOT the public site)├── website/ # This Starlight site (public docs)├── extensions/│ └── vscode/ # Lime Code VS Code extension├── web/ # React + Vite + Tailwind PWA (web companion)└── crates/ ├── lime-cli/ # CLI entrypoint, REPL, TUI, bridge, remote control ├── lime-core/ # Shared types & traits ├── lime-config/ # Layered config loading & validation ├── lime-provider-openai/ # OpenAI Responses API + WebSocket provider ├── lime-provider-anthropic/ # Anthropic Messages API + adaptive thinking ├── lime-provider-gemini/ # Google Gemini Generative Language API ├── lime-provider-openai-compat/ # OpenAI-compatible Chat Completions ├── lime-telemetry/ # Telemetry & usage primitives ├── runtime/ # Sessions, permissions, MCP, memory, agents, sandbox policy ├── tools/ # Built-in tool specs, dispatch, workers ├── commands/ # Slash-command registry, parsing, handlers ├── plugins/ # Plugin loader, manifests, hooks, skills └── sandbox-runtime/ # `srt` binary — namespace / net / fs isolationCrate responsibilities
lime-cli
The CLI binary. Owns the clap-style argument parser, the streaming TUI,
the JSON-RPC bridge implementation (bridge/), and the remote-control
flow (remote/). Depends on every other crate.
lime-core
The shared kernel — types, traits, and small utilities used across the
workspace with no heavy dependencies of their own. Other crates depend on
lime-core; lime-core depends on the standard library and a few small
utility crates.
lime-config
Layered config loader. Merges Policy / User / Project / Local / Flag sources with correct precedence and ergonomic diagnostics.
lime-provider-*
One crate per provider. Each owns its wire format, error mapping, retry policy, and any provider-specific quirks (caching, reasoning summaries, thinking, etc.).
lime-telemetry
Token, cost, and event tracking. Plugged into the runtime; consumable by external collectors.
runtime
The agent loop, session management, permission system, MCP runtime, memory and compaction, sub-agent supervisor, and the sandbox policy glue. The largest crate; isolates orchestration concerns from tool implementations.
tools
Built-in tool definitions, JSON schemas, runners, executors, patching and batching primitives. The “what the model can do” surface.
commands
Slash-command registry, parsing, and dispatch. Used by both the CLI and the bridge.
plugins
Plugin loader, manifest validator, hook bridge, skill discovery, and marketplace client.
sandbox-runtime (the srt binary)
A separate binary used by the runtime to isolate FullAccess tool calls
on Linux. Compiles to a stub on macOS and Windows.
Non-crate directories
extensions/vscode/
The first-party VS Code extension. Speaks the JSON-RPC bridge over a local WebSocket; shares the engine.
web/
The web companion PWA — React + Vite + Tailwind v4. Speaks the same bridge protocol over WebSocket.
docs/
Internal design notes, including REMOTE_CONTROL.md (the design history
of the bridge / remote control). These are intentionally kept out of the
public docs site.
website/ (this site)
Astro + Starlight. Written and verified against the source.
Conventions
- Public APIs are surface-stable across patch versions unless an AGENTS.md note says otherwise.
- Persisted formats (sessions, settings, manifests) are versioned and backwards-compatible at write time.
- Per-crate
tests/andsrc/*/tests.rsfor integration vs unit tests respectively. - Workspace-wide clippy gate runs
-D warnings— no warnings in merged code.