Memory and identity are the product
Letta Code treats a coding agent as something that persists rather than a fresh chat attached to a repository. Agents keep memory blocks, conversation history, skills, and an identity across sessions. They can rewrite that context as they learn. The result can feel more continuous than a stateless terminal agent because preferences, project facts, and past decisions do not need to be pasted into every conversation.
Persistence also creates a new failure mode: an incorrect conclusion can become durable context. /doctor audits memory quality, /palace shows memory, and /sleeptime schedules dreaming. MemFS tracks context changes with Git and can sync them to a custom repository. Use that history as an audit trail. Review memory diffs with the same care as code changes, especially after a failed task or a conversation containing sensitive material.
One agent can act through several machines and channels
A Letta agent is reachable from the local CLI, desktop apps for 3 operating-system families, a browser including mobile, Slack, Telegram, Discord, and custom channels. Agents stored in Letta Cloud can route work to a laptop, remote VM, managed sandbox, GitHub Actions, or another named environment. This is useful for an always-available assistant, but each new interface changes who can send instructions and where tools execute.
Remote and multi-environment work requires signing in with Letta. Managed secrets do too. The secrets feature makes values available as environment variables while hiding them from normal context, which reduces accidental prompt exposure but still grants the process usable credentials. Channel tokens, environment access, model keys, and repository permissions should be separated. A Telegram message should not automatically inherit the same command authority as a terminal session on a work laptop.
What happened when we ran it
Our Bun sandbox installed 593 packages in 82 seconds and used 463 MB on disk. The build then succeeded in 19 seconds. The checkout itself contained 2,032 files, about 487,849 source lines, and occupied 49.8 MB. Our scan found 15 CI workflow files, no Dockerfile, and no tests directory. That is a substantial TypeScript application rather than a small wrapper around a chat-completions call.
There was no tests script or target, so our harness skipped tests. We did not create a cloud agent, connect a model, exercise a channel, rewrite memory, run a hook, or trigger a schedule. A passing 19-second build establishes that commit 1f4d3e3 compiled in our 3-CPU, 8 GB Debian container. It does not establish that the stateful behavior or permission boundaries worked correctly, and we will not borrow counts from repository issue text as a substitute.
Self-configuration needs an external review loop
The README suggests asking the agent to configure its own skills, behavior, hooks, and permissions. Letta Code can learn skills, modify memory and prompts, create harness mods, call subagents, and schedule future work. That is a powerful research surface. It is also circular: the system whose behavior is being changed may be the one proposing and judging the change. Keep a human-visible diff, an explicit approval step, and a rollback path outside the agent's editable memory.
Issue 4029 questions whether the reflection policy has enough restraint when newer text appears to conflict with stored facts. The report is specific to a tested prompt and does not prove every memory update is unsafe. It identifies the right adoption test: give the agent corrections, speculation, and temporary exceptions, then inspect what it makes permanent. Long-term memory is useful only when it forgets noise and preserves verified facts.
Skills and subagents expand both reach and risk
Skills may be global, project-scoped, or stored inside one agent's memory. Letta can install them from GitHub and named skill hubs. Built-in subagents cover general work, forks, recall, and history analysis; agents can also call other agents or themselves. These features help a long job draw on past conversations without loading everything into one prompt. They also make instruction provenance harder to follow.
Release v0.31.0, published August 26, 2026, added scheduled staleness checking for skills and pause or resume commands for cron work, among many fixes. Issue 4065 says the new tracker began with 21 built-in skills pending audit. That is an honest maintenance signal. External skills still require manual inspection, and a paused schedule should remain the default until its commands, target environment, delivery channel, and failure behavior have been observed.
Platform and provider details can break individual capabilities
Issue 3937 reports that a pnpm installation on macOS arm64 omitted native sharp packages, causing image handling to fail. Issue 4009 reports that PowerShell changed an intended blocking hook exit code, so the hook was treated as an error instead of preventing the action. Both are narrow platform reports, but they affect safety or core input handling. Test the actual package manager and shell used by every connected environment.
Provider integration can drift too. Issue 4050 reports models from an enabled provider mod disappearing after an upgrade, while issue 4063 reports a remote app server ignoring a reasoning-effort selection for one ChatGPT OAuth model. The August 26 release activity and same-day repository push show rapid maintenance. Pinning the package gives operators time to confirm model lists, image support, hooks, and remote routing before accepting the next change.
Persistent agents need a narrower first job
GitHub showed 3,124 stars and 258 combined open issues and pull requests when fetched. Version 0.31.0 and the latest push both landed on August 26, 2026. The issue queue includes detailed human-verification disclosures, automated drift trackers, and active fixes. That looks like a busy project still defining how its many surfaces fit together.
Start with one repository, one environment, one model credential, and no active schedules. Let the agent build useful memory for a week, then review its MemFS history and ask whether the retained context saves more time than it costs to audit. Add a channel or remote machine only after that answer is yes. Without that discipline, persistence turns ordinary agent mistakes into recurring ones.

