{"id":34436545,"url":"https://github.com/letta-ai/letta-code","last_synced_at":"2026-05-31T07:01:12.412Z","repository":{"id":320666741,"uuid":"1082960574","full_name":"letta-ai/letta-code","owner":"letta-ai","description":"The memory-first coding agent","archived":false,"fork":false,"pushed_at":"2026-05-29T22:58:25.000Z","size":75732,"stargazers_count":2615,"open_issues_count":172,"forks_count":285,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-05-29T23:13:55.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.letta.com/letta-code","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/letta-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-10-25T04:17:51.000Z","updated_at":"2026-05-29T22:58:27.000Z","dependencies_parsed_at":"2026-02-28T03:01:43.522Z","dependency_job_id":"e0e7dac5-cf4a-4998-8fdd-fd321cb91c53","html_url":"https://github.com/letta-ai/letta-code","commit_stats":null,"previous_names":["letta-ai/letta-code"],"tags_count":211,"template":false,"template_full_name":null,"purl":"pkg:github/letta-ai/letta-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letta-ai%2Fletta-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letta-ai%2Fletta-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letta-ai%2Fletta-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letta-ai%2Fletta-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/letta-ai","download_url":"https://codeload.github.com/letta-ai/letta-code/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letta-ai%2Fletta-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33722156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-22T08:00:35.608Z","updated_at":"2026-05-31T07:01:12.405Z","avatar_url":"https://github.com/letta-ai.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Web Frontend","Repos","🔧 Utilities \u0026 Miscellaneous","💻 Terminal \u0026 CLI Agents","Terminal-native coding agents","4. Agentic AI \u0026 Multi-Agent Systems"],"sub_categories":["JS Libraries \u0026 Utilities","Open Source"],"readme":"# Letta Code\n\n[![npm](https://img.shields.io/npm/v/@letta-ai/letta-code.svg?style=flat-square)](https://www.npmjs.com/package/@letta-ai/letta-code) [![Discord](https://img.shields.io/badge/discord-join-blue?style=flat-square\u0026logo=discord)](https://discord.gg/letta)\n\nLetta Code is a memory-first agent harness, designed for long-lived agents that can learn from experience and maintain a cohesive identity across models (Claude, GPT, Gemini, GLM, Kimi, and more).\n\nYou can interact with Letta Code agents through:\n* A local [**CLI**](https://docs.letta.com/letta-code/cli)\n* The [**desktop app**](https://docs.letta.com/letta-code/desktop-app) for macOS, Windows, and Linux\n* Your browser, including [mobile](https://docs.letta.com/letta-code/remote-mobile), at [chat.letta.com](https://chat.letta.com)\n* Messaging integrations, including [Telegram](https://docs.letta.com/letta-code/channels#telegram-cli), [Slack](https://docs.letta.com/letta-code/channels#slack-cli), [Discord](https://docs.letta.com/letta-code/channels#discord-cli), and [custom channels](https://github.com/letta-ai/letta-code/blob/main/src/channels/README.md)\n\nLetta Code is a frontier coding agent and can also be used as a long-lived personal agent.\n\n![](https://github.com/letta-ai/letta-code/blob/main/assets/letta-code-demo.gif)\n\n## Feature Overview\n\n\u003e [!TIP]\n\u003e Letta Code agents are designed to be self-configuring. If you want to configure something (e.g. skills, behavior, hooks, permissions), try asking your agent to do it for you.\n\n| Feature | Description |\n|---|---|\n| [Self-improvement \u0026 Learning](https://docs.letta.com/letta-code/self-improvement) | Agents programmatically rewrite their context to improve and adapt over time, including system prompt learning (through [memory blocks](https://www.letta.com/blog/memory-blocks)) and [skill learning](https://www.letta.com/blog/skill-learning). Configure periodic dreaming with `/sleeptime`, audit memory quality with `/doctor`, and view memory with `/palace` |\n| [Message search](https://docs.letta.com/letta-code/conversation-search) | Search across all messages and agents with `/search`. Agent can also search their own conversations or the conversations of other agents |\n| [MemFS](https://docs.letta.com/letta-code/memfs) | All context (including memory blocks) is tracked via git. Sync context to a custom GitHub repository by setting `/memory-repository set git@github.com:...` |\n| [Skills](https://docs.letta.com/letta-code/skills) | Loads global skills (`~/.letta`), project-scoped skills (`.agents/skills`), and agent-scoped skills (stored in MemFS). View skills with `/skills` and create with `/skill-creator` |\n| [Subagents \u0026 Multi-agent](https://docs.letta.com/letta-code/subagents) | Call built-in subagents (general-purpose, forked, recall, history-analyzer) async or sync. Agents can call any other agent (including themselves) as subagents |\n| [Messaging Integrations](https://docs.letta.com/letta-code/channels) | Chat with the same agent from Slack, Telegram, your browser (chat.letta.com) including mobile, and through [custom channels](https://github.com/letta-ai/skills/blob/main/letta/creating-letta-code-channels/SKILL.md) |\n| [Hooks](https://docs.letta.com/letta-code/hooks) | Run custom scripts at key points of agent execution to automate workflows |\n| [Permissions](https://docs.letta.com/letta-code/permissions) | Set permission modes and customize what actions are auto-approved or auto-denied |\n| [Crons \u0026 Schedules](https://docs.letta.com/letta-code/scheduling) | Configure heartbeats and crons, and let agents work across time with self-managed schedules |\n| [Remote \u0026 Multi-Env](https://docs.letta.com/letta-code/client-server-architecture) (requires Constellation login) | Agents work across multiple environments. Make any machine available as a remote environment by running `letta server --env-name \"...\"` |\n| [Secrets](https://docs.letta.com/letta-code/secrets) (requires Constellation login) | Make secrets available as environment variables (across machines) while obfuscating their values from context |\n\nSee the full list of slash commands in our [documentation](https://docs.letta.com/letta-code/slash-commands).\n\n## Get started\n\nInstall the package via [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm):\n\n```bash\nnpm install -g @letta-ai/letta-code\n```\n\nNavigate to your project directory and run `letta` (see command-line options [in the docs](https://docs.letta.com/letta-code/commands)).\n\nOn first run, choose how you want to start:\n\n* **Proceed locally** keeps agent state on this device. This is the local-first path and does not require a Constellation login.\n* **Login to Constellation** syncs agent state through Constellation so you can access the same agents from `chat.letta.com`, the desktop app, and other machines — and agents can work across multiple machines.\n\nRun `/connect` to configure your own LLM API keys (OpenAI / ChatGPT, Anthropic, Z.ai coding plan, etc.), and use `/model` to swap models.\n\nYou can also download the [**desktop app**](https://docs.letta.com/letta-code/desktop-app) for macOS, Windows, and Linux. Agents created in the CLI are available via the desktop app, and vice versa.\n\n## Local mode\n\nLocal mode runs an embedded stateful agent server inside Letta Code. Agents, conversations, memory, provider connections, and secrets are stored on your machine.\n\nYou can enter local mode from the first-run setup menu, or explicitly with:\n\n```bash\nletta --backend local\n```\n\nConnect a provider from inside the TUI with `/connect`, or from the shell with `letta --backend local connect`:\n\n```bash\nletta --backend local connect anthropic --api-key \"$ANTHROPIC_API_KEY\"\nletta --backend local connect ollama\nletta --backend local connect lmstudio\nletta --backend local connect llama-cpp\nletta --backend local connect chatgpt\n```\n\nFor slow local inference servers, configure a provider-level timeout when connecting. For example, LM Studio-compatible llama-server backends that need up to 10 minutes for large-context compaction can use:\n\n```bash\nletta --backend local connect lmstudio --base-url http://127.0.0.1:1234/v1 --timeout 600s\n```\n\nTimeouts are stored per local provider in milliseconds; pass `--no-timeout` or `--timeout false` to disable the provider timeout.\n\nThen create a local agent:\n\n```bash\nletta --backend local --new-agent --model anthropic/claude-sonnet-4-6\n```\n\nLocal backend state is stored by default in:\n\n```text\n~/.letta/lc-local-backend\n```\n\nYou can override this location for isolated experiments:\n\n```bash\nexport LETTA_LOCAL_BACKEND_DIR=\"$PWD/.letta-local\"\nletta --backend local --new-agent\n```\n\nLocal agents do not appear in the Constellation, but their memory is still a normal git repository under `~/.letta/lc-local-backend/memfs/\u003cagent-id\u003e/memory`.\n\n## 🌌 Constellation\n\nAgents hosted on Constellation can be accessed from any machine: your laptop, [GitHub Actions](https://github.com/letta-ai/letta-code-action), a sandbox, remote VM, or a Mac Mini. You can also chat with agents through [chat.letta.com](https://chat.letta.com/) or through the desktop app.\n\n```mermaid\ngraph TD\n    Constellation[\"🌌 Constellation\"]\n    Constellation --\u003e A[\"💻 Your Laptop\"]\n    Constellation --\u003e B[\"☁️ Cloud VM\"]\n    Constellation --\u003e C[\"🖥️ Mac Mini\"]\n    Constellation --\u003e D[\"📦 Sandbox\"]\n```\n\n### Remote environments\n\nIf you're interacting with an agent from desktop or chat.letta.com, you can set agents to run on any available environment. Any machine can be made into an available environment by running:\n\n```bash\nletta server\nletta server --env-name \"work-laptop\"\n```\n\nSee our guides for using [Railway](https://docs.letta.com/letta-code/remote#railway), [DigitalOcean](https://docs.letta.com/letta-code/remote#digitalocean), and [Fly.io](https://docs.letta.com/letta-code/remote#flyio) as remote environments.\n\n## Installing external skills\n\nInstall skills into a specific agent's memory with `letta skills install \u003cskill\u003e`: \n\n| Source | Example |\n|---|---|\n| GitHub | `letta skills install https://github.com/owner/repo`\u003cbr\u003e`letta skills install https://github.com/owner/repo/tree/main/path/to/skill`\u003cbr\u003e`letta skills install https://github.com/owner/repo/blob/main/path/to/skill/SKILL.md` |\n| [ClawHub](https://clawhub.ai/) | `openclaw skills install \u003cskill-slug\u003e` → `letta skills install \u003cskill-slug\u003e` |\n| [Hermes Skills Hub](https://hermes-agent.nousresearch.com/docs/skills/) | `hermes skills install \u003cskill-path\u003e` → `letta skills install \u003cskill-path\u003e` |\n\nTo view skills run `letta skills list --agent \u003cagent-id\u003e`, and delete skills with `letta skills delete \u003cskill-name\u003e --agent \u003cagent-id\u003e`.\n\n## Research\n\nLetta Code is developed by the creators of [MemGPT](https://arxiv.org/abs/2310.08560) and [sleep-time compute](https://arxiv.org/abs/2504.13171) (now called \"dreaming\"), and driven by our [research](https://www.letta.com/research) in AI memory and continual learning.\n\n## Other\n\nCommunity maintained packages are available for Arch Linux users on the [AUR](https://aur.archlinux.org/packages/letta-code):\n\n```bash\nyay -S letta-code # release\nyay -S letta-code-git # nightly\n```\n\nNix users can run or install Letta Code through the repository flake:\n```bash\nnix run github:letta-ai/letta-code\nnix profile install github:letta-ai/letta-code\n```\n\nSee [docs/nix.md](docs/nix.md) for Home Manager and NixOS service examples.\n\n---\n\nMade with 💜 in San Francisco\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletta-ai%2Fletta-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fletta-ai%2Fletta-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletta-ai%2Fletta-code/lists"}