Add Letta agent#650
Open
codeluggage wants to merge 2 commits into
Open
Conversation
Adds agent-shell-letta.el with a Letta Code agent configuration driven through the letta-code-acp adapter (wraps 'letta -p' over ACP). Letta agents are stateful with long-term memory, so alongside the standard start command this adds two Letta-specific entry points: agent-shell-letta-start-main-chat attaches to the agent's persistent main conversation, and agent-shell-letta-start-conversation spawns an isolated one.
Per CONTRIBUTING guidance on limiting defcustom: agent id, model, and permission mode are plain environment passthroughs, so they are documented as LETTA_* variables for agent-shell-letta-environment instead of dedicated defcustoms. Conversation selection becomes an internal defvar bound by the start commands.
Open
9 tasks
xenodium
reviewed
Jun 13, 2026
xenodium
left a comment
Owner
There was a problem hiding this comment.
Thanks for the PR!
If I'm understanding correctly, we still need some of the PRs to land before agent-shell can use this, right? If so, let's wait until those land before we merge this one.
Also, can we please update the README to include similar information as other agents?
| :client-maker (lambda (buffer) | ||
| (agent-shell-letta-make-client :buffer buffer)) | ||
| :install-instructions | ||
| "Install the adapter with 'npm install -g letta-code-acp', or |
Owner
There was a problem hiding this comment.
Like other agents, could we please link to its installation page so we always point to fresh instructions?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #649
I've been using this for a while now and it works fairly well, though there are more and more features added that I haven't been able to keep up with.
Main concept here is that there's a permanent ongoing conversation, and stand-alone conversations. Memory is available in all of them, but the flow of conversation is more streamlined in the main chat.
I'm working on schedules next, which can open up some nice use cases as memory comes along with it.
Requires a few different pieces to work:
I don't mind maintaining
agent-shell-letta.elin the other repo but it would rock to have it included in agent-shell!The pitch, overall, would be completely offline, local memory. Can be done in a simple way with letta as a service in the cloud but they're making everything quite easy to use locally too. I have been using their service but I'm working on more fully fleshed out local version and there's some recent gaps that have been covered when it comes to scheduling things.
As far as documentation goes, it's a bit in flux right now. I suppose this PR serves as ok documentation right now and when the letta-ai/letta-code#2631 PR lands the documentation gets cleaner. Also cleaner on docs if
agent-shell-letta.elgets to hang out here with the big boys.Checklist
M-x checkdocandM-x byte-compile-file.