Lemon Documentation
Lemon is a self-hosted assistant and a deterministic simulation platform. This index follows the site navigation: Getting started, User guides, Configuration & CLI reference, Integrations & channels, and Developers & contributors, plus LemonSim & benchmarks. Source modules and tests define implementation APIs.
Getting started
| Goal | Guide |
|---|---|
| Install and get a first model-backed answer | Quickstart |
| Choose a supported install or source checkout | Install |
| Configure providers, secrets and channels | Setup |
| Explore the assistant on real work | Demo |
| Update safely, or roll back | Safe updates |
| Understand current limits | Capabilities and support |
| Understand why Lemon runs on the BEAM | Why BEAM for agents |
| Watch a keyless simulation | LemonSim UI |
User guides
- Interfaces: browser, TUI and CLI and sessions
- Lemon Bot physical phone and provider acceptance
- Profiles, memory, skills, instruction files and rules, file slash commands, reviewed source learning and bounded context references
- Reminders and heartbeats
- Attaching a bot machine and execution-node files, secrets and processes
- Backups and Hermes migration
- Adaptive behavior and feature rollout
- Built-in tools: file and search, shell and background processes, user questions, checkpoints/rewind, todo plans, local tool issue reports, Web/browser, browser tool, Firecrawl, media, LSP, eval kernels, debugger, omp delegate and computer use
- Safety: safety model, agent safety contract, secrets/keychain, secret migration, secret obfuscation and threat model
Configuration and CLI reference
- Configuration reference and configuration registry
- CLI and sessions and the TUI slash-command reference, generated from the terminal command registry
- Control-plane methods
- Skill implementation/reference and manifest schema
- Product versioning/channels
The obsolete skills-v2 roadmap is consolidated into the manifest and skills references. The former introductory tour is consolidated into the architecture overview and the app guides below, rather than keeping a second runtime catalog.
Integrations and channels
- Add a channel and lemon_gateway
- Lemon in Tern
- OpenAI-compatible API, ACP, extensions/MCP clients and WASM
- Delegating to omp: run, watch, steer and resume omp sessions
- A2A peers and Honcho memory
Developers and contributors
- Build: first agent, add a tool, add a channel and persist memory
- Architecture: overview, app boundaries, BEAM lifecycle invariants, bus events, model selection and execution policy
- Context, bootstrap, long-running harnesses and parent questions
- Hot reload, telemetry and error reporting
- Testing lanes, deterministic test patterns, platform test harness and Mix tasks
- Public repository practices and ownership
- Releases: deployment flows, release/support checklist, five-package status and Hex publication — 0.2.0 is published; 0.1.0 is retired
- Root contributor/app guide index
LemonSim and benchmarks
- Benchmark quickstart and platform guarantees
- VendingBench, run your model, platform microbenchmarks and paired disclosure protocol
- Simulation harness and control room
Documentation site
Markdown is the source of truth. The VitePress site uses Node.js 24 LTS+, Python 3, and Bun 1.3.14+ for the TUI command-reference drift check. From the repository root:
npm --prefix docs ci
npm --prefix docs run dev
npm --prefix docs run build
scripts/verify_docs_siteBoth dev startup and build generate docs/public/llms.txt and llms-full.txt through scripts/generate_docs_llms.py. These assets are ignored, not committed; VitePress copies them into the site root. The generator fails if a curated page is missing. Its optional --check compares already generated files, not the git index. No clean-tree generated diff is required.
bun clients/tui/scripts/generate-commands-doc.ts regenerates the committed TUI command reference without connecting to a daemon. Pass --check to fail on drift. verify_docs_site runs this check in the original checkout (the registry is its source), keeping documentation drift in the docs gate rather than only the client lane. Install TUI dependencies with bun install --frozen-lockfile --cwd clients/tui if needed.
The same gate checks every Markdown page against the actual VitePress sidebar. Add user-facing pages to the matching section of the sidebar in docs/.vitepress/config.js (Getting started, User guides, Configuration & CLI reference, Integrations & channels, Developers & contributors, or LemonSim & benchmarks); intentionally unlisted contributor/internal pages need a reason in scripts/check_docs_navigation.mjs. Hidden directories, generated, node_modules, and public are excluded.
verify_docs_site copies docs and the generator into a temporary workspace, installs locked dependencies, runs source-link tests, builds, checks both output assets, then runs the shared Markdown link-check entrypoint against the original checkout so repository-relative links resolve. npm --prefix docs run link-check uses that same recursive entrypoint, including root-level docs pages. CI uses the same npm build/link commands. Links to repository files are rewritten for the website; the site is served at the root of https://lemon.food/.
Update the canonical page for a changed behavior, not four prose copies. Keep contributor guides operational, API detail in moduledocs, and workflows here. When consolidating a page, migrate its inbound links and site navigation. Existing Excalidraw/SVG diagrams are supporting illustrations; the architecture overview and generated dependency table are the current app/boundary inventory.