creating-letta-code-channels
Enables building and debugging Letta Code channels for platforms like Telegram, WhatsApp, Slack, and Discord.
Identity proven by GitHub's verified organisation badge (letta-ai)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- MIT (permissive)
- Pin
- 6785511pinned Oct 9, 2026
- Context cost
- about 950 tokenswhen the skill loads
- GitHub stars
- 148on letta-ai/skills
- Scripts
- 1 script
What it does
“Builds and debugs Letta Code channels, including first-party channel adapters and dynamic user channel plugins under ~/.letta/channels. Use when adding Telegram, WhatsApp, Bluesky, Slack, Discord, or custom channel support; testing channel routing, pairing, MessageChannel, runtime dependencies, or channel plugin manifests.”
Generated summary from the skill's own text
Enables building and debugging Letta Code channels for platforms like Telegram, WhatsApp, Slack, and Discord. The skill guides creation of user plugins or first-party adapters, implementation of inbound and outbound message routing, and testing of channel pairing and message delivery modes.
When to use it
- Adding Telegram, WhatsApp, Slack, Discord, or custom channel support to Letta
- Testing channel routing, message pairing, and account configuration
- Building headless channel plugins for community or experimental use
- Debugging inbound adapter behavior or outbound message delivery
When not to
- Working with existing stable channel implementations without changes
- Projects not using Letta Code or channels
- When first-party channels already provide needed functionality
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add letta-ai/skills --skill creating-letta-code-channelsInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install letta-ai/skills creating-letta-code-channels@6785511e7d3913d9ec598435a77ae637cd45fc89Installs the commit we checked (6785511).
Copy by hand
Download the folder at 6785511 and put it in .claude/skills/creating-letta-code-channels for Claude Code and in .agents/skills/creating-letta-code-channels for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "creating-letta-code-channels" by Letta. Source, pinned to commit 6785511e7d3913d9ec598435a77ae637cd45fc89: https://github.com/letta-ai/skills/tree/6785511e7d3913d9ec598435a77ae637cd45fc89/letta/creating-letta-code-channels 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/creating-letta-code-channels/ for Claude Code and .agents/skills/creating-letta-code-channels/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/letta/creating-letta-code-channels
SKILL.md at the pin
--- name: creating-letta-code-channels description: Builds and debugs Letta Code channels, including first-party channel adapters and dynamic user channel plugins under ~/.letta/channels. Use when adding Telegram, WhatsApp, Bluesky, Slack, Discord, or custom channel support; testing channel routing, pairing, MessageChannel, runtime dependencies, or channel plugin manifests. license: MIT --- # Creating Letta Code channels Use this when adding or debugging Letta Code channel support. ## First choice - **User plugin** (`~/.letta/channels/<id>/`) for headless experiments, community plugins, and fast workflow tests. - **First-party channel** (`src/channels/<id>/`) when the channel needs bespoke Desktop UI, custom account snapshots, Slack/Discord-style auto-routing, rich protocol fields, or migration/compatibility shims. User plugins cannot shadow first-party ids: `telegram`, `slack`, and `discord` are ignored under `~/.letta/channels/`. Use ids like `telegram-test`, `whatsapp-community`, or `custom-chat`. ## Core workflow 1. Work in `~/letta/letta-code` or a worktree. 2. Read `src/channels/README.md` on branches with dynamic plugins. 3. For a user plugin, create: - `~/.letta/channels/<id>/channel.json` - `~/.letta/channels/<id>/plugin.mjs` - `~/.letta/channels/<id>/accounts.json` 4. Implement `messageActions` for both reply modes: explicit tool replies and automatic relay text use the common outbound adapter path. 5. Start with `dmPolicy: "pairing"` for testing, or `allowlist`/`open` for known headless deployments. 6. Test all four legs: - plugin discovery/import - inbound `adapter.onMessage(msg)` to route/pairing - routed channel notification reaches the agent - outbound behavior matches the account's captured reply mode: explicit `MessageChannel` delivery in tool mode, or automatic finalized-text delivery in relay mode 7. Run targeted tests, then `bun run typecheck`, `bun run lint`, `bun run build`. ## References Read only what is needed: - `references/user-plugins.md` — dynamic plugin manifest/account/runtime/headless flow and gotchas. - `references/first-party-channels.md` — first-party channel file cascade and safety checks. - `references/testing.md` — smoke-test checklist and commands. ## Scaffold helper Use the bundled scaffold for a minimal user plugin skeleton. Replace `<path-to-this-skill>` with this skill directory path: ```bash npx tsx <path-to-this-skill>/scripts/scaffold-user-channel-plugin.ts \ my-channel "My Channel" \ --runtime-package some-sdk@1.0.0 \ --runtime-module some-sdk ``` It creates `channel.json`, `plugin.mjs`, and `accounts.example.json`. Replace the TODO inbound/outbound implementation with the real SDK calls. ## Hard lessons - Accounts default to tool mode when `reply_mode` is unset or invalid. Add `"reply_mode": "relay"` to an existing saved account, preserving its actual ID, root fields, and credentials. - Relay requires a build containing [PR 4043](https://github.com/letta-ai/letta-code/pull/4043); v0.34.1 predates it. The on-device gateway implements delivery; remote hosts must supply transport and captured per-input policy. This is a host distinction, not an agent-state restriction. Mode changes affect new inputs, not active or queued ones. - A single-destination relay input sends finalized text without `MessageChannel`; unfinished error/cancel text, reasoning, and subagent output are excluded. Multi-destination inputs require explicit replies, never broadcasts. Queued inputs stay separate. Use tool mode for reactions, files, and proactive sends. - For public channels, suppress tool approval/control prompts unless there is verified operator routing. Posting approval prompts publicly leaks tool input and invites forged `approve` replies. - User plugin runtime resolution must not count parent/dev `node_modules`. Runtime modules should resolve from explicit runtime dirs only. - Headless pairing is CLI-first: `letta channels pair --channel <id> --code <code> --agent <agent-id> --conversation <conversation-id>`. - Running listeners reload `pairing.yaml` and `routing.yaml` on the next inbound miss; restart only when adapter/account config itself changed.
From letta-ai/skills at 6785511, shown as plain text under its license: MIT (permissive). The license text is in letta/creating-letta-code-channels/SKILL.md.
View SKILL.md on GitHub at 6785511Files
- SKILL.md4.2 KB · 1a2c36442bf5
- references/
- first-party-channels.md3.4 KB · a632d04a7809
- testing.md2.4 KB · e532e0b90937
- user-plugins.md4.1 KB · 3997f59cc310
- scripts/
- scaffold-user-channel-plugin.ts5.4 KB · 2c28d43a94c0
5 files, 20 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 6785511More from Letta
acquiring-skills
Enables the agent to discover and install skills from multiple registries including Hermes Skills Hub, ClawHub, GitHub, and community repositories.
Agents not labelled yet · about 3.1K tokens · pinned 6 days ago
browser-use
Control a real browser using Chrome DevTools Protocol over WebSocket to navigate pages, interact with UI, fill forms, scrape sites, and capture screenshots or…
Claude Code, Codex, Cursor +4 · about 3.2K tokens · pinned 6 days ago
Context Doctor
Context Doctor investigates and repairs an agent's context including memory, system prompt, and skills by analyzing observed behavior as evidence.
Claude Code, Codex, Cursor +3 · about 1K tokens · pinned 6 days ago
creating-mods
This skill creates and edits mod files that extend local Letta instances with tools, slash commands, event handlers, custom model providers, permissions, and…
Claude Code, Codex, Cursor +4 · about 2.4K tokens · pinned 6 days ago
creating-skills
This skill guides developers in creating modular packages that extend Letta Code agent capabilities with specialized knowledge, workflows, tool integrations…
Contains scripts
Claude Code, Codex, Cursor +3 · about 4.5K tokens · pinned 6 days ago
curating-memory-palace
This skill lets the agent maintain a Memory Palace, a structured dashboard view that shows the user what the agent is working on, what it could do next, and…
Agents not labelled yet · about 3.1K tokens · pinned 6 days ago
Related in AI and agents
authoring-scouts
This skill helps engineers write, edit, and adapt PostHog Signals scouts, scheduled agents that scan projects and report findings to an inbox.
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 10.6K tokens · pinned 6 days ago
build-agents
This skill provides default guidance for building AI agents using eve, Vercel's filesystem-first framework for durable agents.
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 750 tokens · pinned 6 days ago
chat-sdk
The Chat SDK skill helps agents build multi-platform chatbots that work across Slack, Teams, Discord, Telegram, GitHub, Linear, and other services using a…
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 1.7K tokens · pinned 6 days ago
authoring-scouts
This skill teaches how to author, edit, and adapt PostHog Signals scouts: scheduled agents that scan projects and emit findings to an inbox.
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 10.6K tokens · pinned 6 days ago
vectara-agent-orchestration
This skill enables building multi-step, deterministic agent workflows using state machines with structural tool gating and platform-enforced phase transitions.
by VectaraOfficial publisher
Claude Code, Codex, Cursor +3 · about 8.6K tokens · pinned 6 days ago
agent-builder
Agent Builder orchestrates the creation, modification, testing, and publishing of n8n Agents.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.3K tokens · pinned 6 days ago
Open roles at Letta
4 open roles on the jobs board
- Research Engineer / Scientist, Post-Training
San Francisco, California, United States (On-site)
- Research Engineer / Scientist, Self-Improvement
San Francisco, California, United States (On-site)
- Software Engineer, Agent Harness
San Francisco, California, United States (On-site)
- Research Engineer / Scientist, Memory
San Francisco, California, United States (On-site)