Lemon Persistent Coding Agent

Keep coding work running in a self-hosted Elixir/OTP daemon, and resume it from a terminal, browser, or phone.

Source repo
z80dev/lemon
Stars
★ 132
Last updated
2d ago
License
NOASSERTION
Primary language
Elixir

At a glance

How it runs
CLISelf-hosted serviceWeb app
Works with
Universal · cross-platformOpenAI API · Claude APIChatGPT · Codex · Claude.ai (Partial support)
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Erlang/OTP 28.5+Elixir 1.19.5+Bun 1.3.14+ (TUI)Node.js 24+ (docs and browser client)Shell / CLINetwork accessLocal filesystemMCP Server
Typical use
An independent developer who wants coding work to continue after closing a terminal can run the Lemon daemon locally and resume from a phone later.
Not a fit if
  • Teams that require a stable 1.0 release
  • Teams that cannot send request data to their configured model provider

What does this agent do, and when should you use it?

Lemon is a self-hosted coding agent built around an Elixir/OTP daemon. Each session, run, and tool call is a separate supervised BEAM process, while the TUI, web workspace, CLI, Telegram, and Discord connect to the same runtime. It reads and edits code, runs shell commands, searches the web, and checks diagnostics, with planning, approvals, checkpoints, and diff review. It can use OpenAI, Anthropic, and other listed model services or compatible endpoints, as well as local models. The project is pre-1.0: the TUI, web UI, CLI, control plane, and text-first Telegram/Discord features are listed as stable, while some automation and advanced capabilities remain previews.

Run lemon in a repository to start or reuse the daemon and open the TUI. Lemon can read files, search code including with ast_grep, edit and patch files, run shells, search the web, and check diagnostics. /plan supports read-only planning before approval; /rewind and checkpoints help review or restore changes. Continue sessions through lemon web, lemon -p, Telegram, or Discord; task dispatches child sessions, and Kanban tasks can run in separate git worktrees. Outputs include code diffs, tool results, machine-readable one-shot results, and persistent session, memory, and automation records.

  1. An independent developer who wants coding work to continue after closing a terminal can run the Lemon daemon locally and resume from a phone later.
  2. An engineer who reviews changes across terminal and browser can start in the TUI and inspect diffs and tool cards in the web workspace.
  3. A maintainer handling exploration and edge-case review in parallel can use task to dispatch the built-in scout and reviewer child sessions.
  4. A team that needs one-shot coding jobs from CI or scripts can run lemon -p and request JSON output.
  5. A user who wants recurring CI checks or autonomous goal progress can configure heartbeats, cron, or goals; these features are currently previews.

How do you install or deploy this agent?

On macOS (Apple Silicon) or Linux, install a prebuilt release; it bundles the runtime and TUI, so you do not need to install Elixir yourself. Add Lemon to PATH and run setup. Choose ChatGPT or Claude Pro/Max sign-in, import an existing Codex CLI login, or provide a model-provider API key. Building from source requires Erlang/OTP 28.5+ and Elixir 1.19.5+; TUI development requires Bun 1.3.14+, and docs and the browser client use Node.js 24+.

curl -fsSL https://raw.githubusercontent.com/z80dev/lemon/main/install.sh | sh -s -- --skip-setup
export PATH="$HOME/.lemon/bin:$PATH"
lemon setup

How do you use this agent?

Start Lemon from the target repository. On first run, choose a model, then submit a task; use -p for a one-shot run with JSON output. Configure the Telegram or Discord gateway to continue the same session from chat.

cd /path/to/repository
lemon
lemon -p "Summarize the failing tests" --output json

During setup, choose a supported sign-in option or enter the relevant provider API key. The README also lists Gemini/Vertex, Bedrock, Azure, Mistral, OpenRouter, Groq, DeepSeek, xAI, Kimi, Qwen, and OpenAI-compatible endpoints.

What are this agent's strengths and limitations?

Pros
  • The OTP daemon keeps sessions running after the TUI closes and lets multiple interfaces use the same state.
  • Support for multiple model providers, compatible endpoints, and local models reduces dependence on one model vendor.
  • Approvals, planning, checkpoints, diff review, and /rewind file restoration provide concrete controls over code changes.
  • Child agents, worktree-based tasks, persistent memory, and automation support long-running work.
Limitations
  • The project is pre-1.0, and Goals, Kanban dispatch, and cron are preview features.
  • Source development requires recent Erlang/OTP and Elixir; TUI and browser-related development also need Bun or Node.js.
  • Actual model calls require a supported sign-in or API key, and the README does not state provider prices.
  • Local-first does not mean fully offline: configured model providers receive the data needed for their requests.

How does this agent compare with similar options?

The README names pi, oh-my-pi, takopi, OpenClaw, and Ironclaw as inspirations, and links a Hermes Agent migration guide; it does not provide feature comparisons.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Lemon Persistent Coding Agent This agent 58 · Major gaps CLIFree + model costs ★ 132 2d ago Elixir OpenAI API · Claude API
Pi Dynamic Workflows 88 · Good Agent plugin / skillFree + model costs ★ 555 12d ago TypeScript —
MetaHarness 86 · Good CLIFree + model costs ★ 706 9d ago TypeScript Codex · Claude Code
Pi Jev Semantic Router 80 · Good Agent plugin / skillFree + model costs ★ 66 16d ago TypeScript —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
58/ 100 5-point scale 2.9 / 5
Trust 16/29
Reliability 8/14
Adaptability 10/18
Convention 12/18
Effectiveness 7/13
Verifiability 5/8
Why each dimension lost points
Trust16 / 29 · 2.8/5

The documentation describes approval gates, path restrictions, encrypted secrets, untrusted-content handling, backups, and rollback; helper tests also claim coverage for path escape, cancellation, and bounded output. The full policy implementation is absent, and configured external providers receive request data, limiting evidence for least privilege and external-effect controls.

Reliability8 / 14 · 2.9/5

The README describes supervised processes, circuit breakers, and idempotent retries. CI configuration lists formatting, tests, static analysis, installation, and simulation benchmark jobs, while helper tests cover several failure cases. Static materials cannot establish that those jobs passed, and the required runtime versions are recent and specific.

Adaptability10 / 18 · 2.8/5

The documentation names terminal coding, browser, scripts, messaging, parallel work, and automation scenarios, and marks preview features and support boundaries. The capability range is broad, but trigger conditions and environment details are not complete for every channel.

Convention12 / 18 · 3.3/5

The README provides installation, quickstart, command-reference links, and examples; separate files cover licensing, security policy, support boundaries, and a changelog. Pre-1.0 status, maintainer, and vulnerability-reporting path are stated. The prebuilt install uses a remote script, and some operational details require following the linked documentation.

Effectiveness7 / 13 · 2.7/5

The product description covers persistent sessions, multiple surfaces, approvals, recovery, and parallel tasks; JSON output and diff review support downstream use. Operating a persistent runtime and configuring providers or channels add overhead, and the materials do not quantify the cost-benefit.

Verifiability5 / 8 · 3.1/5

Major README claims receive supporting descriptions in the security policy, CI workflow, and helper tests. CI configuration and test code are static evidence, not proof of execution or success. The docs identify preview features, external-provider data transfer, and support status, which helps separate claims from inference.

Risks and how to mitigate them
  • This static review did not run code, tests, or installation; CI configuration does not establish that this revision passed.
  • When using external model providers, account for request data being sent to configured services. Check the documented support boundaries before relying on preview automation unattended.
Evidence confidence: Low Reviewed Oct 17, 2026 Reviewed revision 68dde2e71e22
See the full review method →

FAQ

Do I need a paid model account to use Lemon?
The software is MIT licensed. You can use local models, but external model services require their sign-in or API key; the README does not specify provider prices.
Does work stop when I close the terminal?
Closing the TUI does not stop the daemon: the README says pressing Ctrl+C twice quits the TUI while leaving the daemon and its work running.
Will Lemon replay a run after a model or tool crash?
The README says a crashed tool call becomes an error result the model can read. Crashed runs are not replayed, avoiding repeated file writes and messages.
Which parts of Lemon are suitable for production reliance?
The README lists the TUI, web UI, CLI, control plane, and text-first Telegram and Discord features on macOS/Linux as stable. Browser automation, LSP, checkpoints, media generation, ACP, goals, Kanban, and cron are previews.
View on GitHub ↗ Install ↓

Related agents