Skip to content

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 isolation

Crate 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/ and src/*/tests.rs for integration vs unit tests respectively.
  • Workspace-wide clippy gate runs -D warnings — no warnings in merged code.