mrkeyoor.com_
Sat 17 Oct 13:33 UTC
LLM Toolsevaluationupdated 04 Oct 2026

letta-code review

Letta Code is a coding-agent harness whose agents keep memory, identity, and conversation state across sessions. You can use it in a terminal, desktop app, browser, or messaging channel, with either Letta Cloud or a local backend.

+61stars / 7d
Verdict

Our Letta Code run installed 600 packages in 43 seconds and built in 20 seconds, but commit 44b154e offered no test target, so adopters get a working build without a local test verdict. Use it if persistent memory and the same agent across terminal, browser, and chat are central to the job. Wait if unattended scheduling is central, because issue 4911 documents lost local cron and Wake deliveries under a two-process setup.

We ran it

Lab card: what happened when we ran letta-codeScreenshot of letta-code (www.letta.com/agent)
Install✓ · 43s600 packages · 539 MB
Build✓ · 20s
Testsn/ano test script
Repo2380 files~561,968 lines of source · 53 MB · 17 CI workflows

Answers from our run

Does letta-code build from source?

Dependencies installed in 43 seconds (600 packages), and the build succeeded in 20 seconds. We cloned commit 44b154e into a clean Debian container with 3 CPUs and no project-specific setup.

Does letta-code have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use letta-code?

Teams that require a repository test command before adoption: commit 44b154e had no test script or target for our sandbox to run.

What are the alternatives to letta-code?

Claude Code, Codex, OpenClaw. Our Letta Code run installed 600 packages in 43 seconds and built in 20 seconds, but commit 44b154e offered no test target, so adopters get a working build without a local test verdict.

Setup3/543-second install; model and channel setup follow
Docs4/5Clear backend, channel, memory, and platform caveats
Community5/53,508 stars and active work through October 2026
Maturity3/5Fast releases, but no test target in our measured commit

Discussed on

  1. hnLetta Code: a memory-first coding agent6 points

Who it’s for

Developers who want one coding agent to remember prior work across sessions and machines.
Teams prepared to review an agent that can rewrite its own memory, skills, prompts, and mods.
Operators who want an agent available through a CLI, browser, Slack, Telegram, or Discord.
Bun and Node users comfortable choosing and paying for an external language model.

Who it’s NOT for

Teams that require a repository test command before adoption: commit 44b154e had no test script or target for our sandbox to run.
Windows users expecting scheduled self-reflection to behave like macOS or Linux: the README says automatic client-side dreaming is disabled by default on native Windows.
Operators who need unattended schedules to be boring today: open issue 4911 reports crons and Wakes recorded as queued without running when the wrong local process holds the scheduler lease.
Anyone depending on AgentFile portability: the README says .af import and export, plus the related CLI flags, have been removed.
Developers seeking a model-included offline assistant: local mode still needs a supported model provider and its credentials.

Setup reality

Our sandbox installed commit 44b154e in 43 seconds, pulling 600 packages and using 539 MB on disk. The build passed in 20 seconds. There was no test script or target, so we skipped tests rather than inventing a substitute.

The published CLI installs through npm, but the source declares Bun 1.3.2 or newer and Node 22.19.0 or newer. Letta Cloud needs a sign-in. Local mode avoids that account, though useful turns still require credentials for a supported model provider.

Cloud is the default on first launch. Remote computers, hosted state, and managed secrets require signing in, while Slack, Telegram, Discord, schedules, hooks, and remote machines each add configuration. Native Windows also disables automatic client-side dreaming unless you opt in with an environment variable.

Persistent memory is the reason to choose it

Letta Code treats memory as editable agent state rather than a transcript you reopen. An agent can rewrite memory blocks, learn skills, revise prompts, and alter the harness through mods. MemFS tracks that context with Git, and you can point it at your own GitHub repository. The practical appeal is continuity: the agent you used yesterday can resume with its identity and working knowledge instead of rebuilding context from a folder and a chat log.

That power changes the review burden. A tool that may update its own instructions needs tighter inspection than a stateless command runner. Letta includes permission modes, hooks, /doctor, and a Memory Palace view, but those controls do not decide which learned behavior your team should accept. Treat memory changes like code changes: inspect the diff, keep the repository recoverable, and decide which actions still require a person.

One agent can appear in five places

The same agent can run through the CLI, desktop app, browser, Slack, Telegram, or Discord. Letta Cloud stores memory, identity, and conversations, then lets a laptop, cloud VM, managed sandbox, or remote computer pick the work up. That is more than a cosmetic front end. It makes a long-running agent reachable where a team already talks and allows a headless message to target a named computer.

There is a real configuration bill behind that reach. Cloud is the first-launch default and requires a Letta account. A local backend skips that account, yet the agent still needs an OpenAI, Anthropic, Z.ai, or another supported model connection. Remote computers and managed secrets require sign-in. Each messaging channel brings its own bot credentials and access decisions. The README makes these routes discoverable, though a one-command npm install is only the start.

What happened when we ran it

Our sandbox installed commit 44b154e in 43 seconds. Bun pulled 600 packages, and the installed tree occupied 539 MB. The checkout itself contained 2,380 files, roughly 561,968 lines of source, and used 53 MB. This was a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets.

The build completed successfully in 20 seconds. We found 17 CI workflow files, which shows that the repository has automation around it. We did not find a Dockerfile or a tests directory. More importantly, the measured commit exposed no test script or target, so the test step was skipped. That result says nothing about whether hidden or upstream checks pass. It says a fresh source user had no declared suite to run.

Those numbers make the source path reasonable for a project of this size, but they also set the floor. The 539 MB dependency tree arrives before model use, cloud state, channel setup, or a remote computer enters the picture. Our run proves that installation and compilation worked at the measured commit. It does not measure agent accuracy, model cost, memory quality, or the safety of learned instructions.

Local mode still depends on a model provider

Running letta --backend local keeps the agent backend on your machine, while /connect configures the model account. The distinction matters because local mode can sound like an included offline model. The README describes provider keys for OpenAI, Anthropic, Z.ai, and others. It does not promise a bundled model. Your data path and bill depend on the provider you select.

Letta Cloud adds useful portability. It also manages older bundled system prompts after resume unless LETTA_CODE_PRESERVE_CLOUD_SYSTEM_PROMPT=1 is set. Custom prompts stay explicit. Teams that audit prompt changes should make that choice deliberately, especially when one identity moves across 2 or more computers. AgentFile is no longer a fallback: .af export and import, /export, /download, --import, and --from-af have been removed.

A scheduler bug can lose promised local work

Open issue 4911, filed against version 0.34.2, describes a concrete failure in a two-process local setup. When an App Server process wins the scheduler lease while another process owns Slack or Telegram channels, due crons and one-shot Wakes can be recorded as fired and queued without adding a turn to the target conversation. The report says one recurring job skipped about 9 hours of runs before anyone noticed.

The issue includes a workaround: start the channel process first and monitor which PID owns the scheduler lease. That is useful, but a promised notification that looks successful and never arrives is a serious boundary for an always-on agent. If schedules matter, test the exact multi-process topology and alert on missing conversation turns. Do not treat a queued run record as proof of delivery.

Native Windows has another documented boundary. Automatic client-side dreaming stays disabled by default even when saved /sleeptime settings enable it. You can opt in with LETTA_ENABLE_WINDOWS_AUTO_REFLECTION=1, while manual /dream and /reflect remain available. macOS, Linux, WSL, and server-side dreaming do not share that default.

October activity is high, and the queue is large

GitHub showed 3,508 stars and 488 combined open issues and pull requests on October 4, 2026. The repository's last push was October 3, and v0.34.2 shipped on October 2. That release fixed memory Git configuration churn, channel behavior, secret handling, and tool internals while adding opt-in automatic reply relay. The dates show active maintenance, while the combined queue warns that activity is not the same as calm.

Choose Letta Code for its specific bet: an agent becomes more useful when its state, skills, and identity can survive a session and travel between interfaces. The 43-second install is the easy part. The lasting work is deciding what the agent may remember, rewrite, schedule, and send on your behalf.

Alternatives

ProjectWhat it isPick it when
Claude Code gh↗Anthropic's terminal coding agent, centered on repository work and Claude models.pick this instead when you want a focused coding CLI and do not need Letta's persistent agent identity or channel layer.
Codex gh↗OpenAI's coding agent for terminal and supervised software work.pick this instead when the job is code execution and review rather than a long-lived agent with editable memory.
OpenClaw gh↗A personal assistant that connects messaging channels, tools, and local devices.pick this instead when chat-channel reach and personal automation matter more than Letta's memory model.

Sources

  1. Letta Code README
  2. Letta Code v0.34.2 release
  3. Cron and Wake scheduler lease issue
  4. Letta Code repository

More llm tools reviews

GLM-5.3-Flash-EXL3-2x-DGX-Sparks-TensorFold · livenerf · scion · opencode2api · IQuest-Q1 · iCode · the whole board →

Related reading