Letta OSS UI — Design skill for Claude Code
An open-source demo UI built on top of the Letta Agent SDK.
How to install Letta OSS UI
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open letta-ai/letta-oss-ui and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Letta OSS UI does
An open-source demo UI built on top of the Letta Agent SDK.
Alternatives in Design
- Od Contribute — Open a first-contribution PR (or bug issue) on nexu-io/open-design — works for non-coders too 91.8k ★
- Export Diagram — Export a diagram-design HTML file to .svg and .png next to the source 27.2k ★
- CloudCLI — 8,400+ Free open-source web/mobile UI for Claude Code, Cursor CLI, and Codex 8.7k ★
README
Demo open-source UI, built using the Letta Agent SDK
[](https://github.com/letta-ai/letta-cowork/releases)
An example desktop application for running Letta agents with a visual interface.
What is the Letta OSS UI?
This repo contains an example desktop application for running Letta agents with a visual interface. The code is a fork of [Claude-Cowork](https://github.com/DevAgentForge/Claude-Cowork) that replaces the Claude SDK with the [`@letta-ai/letta-agent-sdk`](https://www.npmjs.com/package/@letta-ai/letta-agent-sdk). It provides a native desktop GUI for interacting with [Letta](https://docs.letta.com/agent-sdk) agents.
https://github.com/user-attachments/assets/570474a1-641b-404d-a1aa-50c080675773
Why Letta Agent SDK?
The [Letta Agent SDK](https://docs.letta.com/agent-sdk) is the SDK interface to [Letta Code](https://github.com/letta-ai/letta-code). Build agents with persistent memory that learn over time.
import { createAgent, resumeSession } from '@letta-ai/letta-agent-sdk';
// First session - agent learns something
const agentId = await createAgent();
const session1 = resumeSession(agentId);
await session1.send('Remember: the secret word is "banana"');
for await (const msg of session1.stream()) { /* ... */ }
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. Th
Related Skills
OpenAI Agent Runtime
An opinionated Agent Runtime built on top of the OpenAI Agent SDK, inspired by Claude-style agent programming.
Slidepoise
Open-source agentic slide generation framework for free-form design and editable PowerPoint. Built for Codex,
Genui
Agent harness whose only output is generated UI: Opus plans, a warm Haiku pool streams interactive panels. Bui
App Auditor Plugin Claude
Claude plugin for auditing live web apps: capture screenshots, generate demo videos, document components, extr
OpenGenerativeUI
Open-Source Generative UI Framework
Hue
open-source skill that learns any brand and turns it into a complete design system. works on claude code and c
Related Agents
Act 1 Setup
Read-only narrative steward for Act I (slides 1-5) of the Workflow SDK GA deck. Covers the cold open, happy-pa
Beardrive Gtm
Veteran commercial-open-source (COSS) operator who reviews BearDrive's go-to-market — someone who has been bot
OSS
Open-source maintainer of redbar — repository governance, not the prose (that's the scribe's job). Invoke for