Letta Cowork is a fork of Claude-Cowork that replaces the Claude SDK with the @letta-ai/letta-code-sdk. It provides a native desktop GUI for interacting with Letta Code agents.
Screen.Recording.2026-02-02.at.6.01.40.PM.mov
The Letta Code SDK is the SDK interface to Letta Code. Build agents with persistent memory that learn over time.
import { createSession, resumeSession } from '@letta-ai/letta-code-sdk';
// First session - agent learns something
const session1 = createSession();
await session1.send('Remember: the secret word is "banana"');
for await (const msg of session1.stream()) { /* ... */ }
const agentId = session1.agentId;
session1.close();
// Later... agent still remembers
await using session2 = resumeSession(agentId);
await session2.send('What is the secret word?');
for await (const msg of session2.stream()) {
if (msg.type === 'assistant') console.log(msg.content); // "banana"
}Key concepts:
- Agent (
agentId): Persistent entity with memory that survives across sessions - Conversation (
conversationId): A message thread within an agent - Session (
sessionId): A single execution/connection
Agents remember across conversations (via memory blocks), but each conversation has its own message history. This means you can run multiple concurrent conversations with the same agent - each conversation has its own message history while sharing the agent's persistent memory.
- Bun or Node.js 22+
- Letta API key from app.letta.com/settings
- letta-code-sdk cloned locally at
../letta-code-sdk(temporary - will be published to npm)
-
Copy
.env.exampleto.env:cp .env.example .env
-
Get your Letta API key from app.letta.com/settings
-
Edit
.envand add your API key:LETTA_API_KEY=your-api-key-here LETTA_BASE_URL=https://api.letta.com # This is the default
Note: The app defaults to Letta Cloud (https://api.letta.com). For local development, see .env.example for localhost configuration.
# Clone the repository
git clone https://github.com/letta-ai/letta-cowork.git
cd letta-cowork
# Install dependencies
bun install
# Run in development mode
bun run devLetta Cowork uses @letta-ai/letta-code-sdk to run agents.
- The app spawns the Letta Code CLI as a subprocess via the SDK
- Communication happens via stdin/stdout JSON streaming
- Each task creates a new conversation on the LRU agent (via
createSession()) - Agent memory persists across conversations via memory blocks
# Start development server (hot reload)
bun run dev
# Type checking
bun run build