Agent skill

Creating Letta Code Channels

by letta-ai in letta-ai/skills

Builds and debugs Letta Code channels, including first-party channel adapters and dynamic user channel plugins under ~/.letta/channels.

MITAuto-check passedWriting & Content

Install Creating Letta Code Channels

skills CLI
$ npx skills add letta-ai/skills --skill creating-letta-code-channels -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install letta-ai/skills creating-letta-code-channels --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/letta-ai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/letta/creating-letta-code-channels .claude/skills/creating-letta-code-channels && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
creating-letta-code-channels
GitHub stars
149
Token cost
~1.1k tokens
SKILL.md length
428 words
Files
5 (incl. scripts, references)
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

Builds and debugs Letta Code channels, including first-party channel adapters and dynamic user channel plugins under ~/.letta/channels.

  • Works in 7 steps: Work in ~/letta/letta-code or a worktree. → Read src/channels/README.md on branches… → For a user plugin, create → …
  • Adding Telegram
  • SKILL.md covers First choice, Core workflow, References and Scaffold helper, plus 1 more section
  • Runs TypeScript scripts from its folder; calls bun and npx

What it does

Creating Letta Code Channels is an agent skill from letta-ai/skills. 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.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `references/first-party-channels.md`, `references/testing.md` and `references/user-plugins.md`).

It sits in Writing & Content. It works with Letta, Discord, Slack and Telegram. The repository describes itself as: A shared repository for skills. Intended to be used with Letta Code, Claude Code, Codex CLI, and other agents that support skills. The licence is MIT.

When your agent uses it

  • Adding Telegram
  • Custom channel support
  • Testing channel routing
  • Runtime dependencies

Example prompts

  • “Use the creating-letta-code-channels skill to build and debugs Letta Code channels, including first-party channel adapters and dynamic user channel…”
  • “/creating-letta-code-channels”

Requirements

  • Node.js

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  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
  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
  7. Run targeted tests, then bun run typecheck, bun run lint, bun run build.

What it can do on your machine

Read from SKILL.md and the folder at commit 6785511. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • bun
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Creating Letta Code Channels loads about 1.1k tokens when it runs, and up to ~3.5k if it reads all its reference files. Until then it costs about 88 tokens; SKILL.md has 428 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from letta-ai/skills at commit 6785511, republished under its MIT licence (© letta-ai). 428 words, ~1,050 tokens.

Download SKILL.mdSave it as .claude/skills/creating-letta-code-channels/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
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.

Show full SKILL.md (186 more words)Show less

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; 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.

© letta-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in letta/creating-letta-code-channels of letta-ai/skills.

  • SKILL.md
  • references/first-party-channels.md
  • references/testing.md
  • references/user-plugins.md
  • scripts/scaffold-user-channel-plugin.ts

Open the folder on GitHubat commit 6785511

Compare with similar skills

Creating Letta Code Channels next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Creating Letta Code Channels compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Creating Letta Code Channels this skillletta-ai/skills149—~1.1kAutomated safety check: PassMIT
Lettabotletta-ai/lettabot327—~3.4kAutomated safety check: PassApache-2.0
Traul Message Searchdandaka/traul112—~3.9kAutomated safety check: NotesAGPL-3.0
Add Channel Connect Buttonnovuhq/novu40k—~1.6kAutomated safety check: PassCustom licence
RepurposeAgriciDaniel/claude-repurpose157—~5.1kAutomated safety check: PassMIT
Channel Debug Corevercel-labs/vercel-openclaw-archived117—~2kAutomated safety check: NotesMIT

Similar skills

  • Lettabot

    letta-ai/lettabot

    Set up and run LettaBot - a multi-channel AI assistant for Telegram, Slack, Discord, WhatsApp, and Signal.

    327 GitHub stars~3.4k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check passed
  • Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.

    112 GitHub stars~3.9k tokensUpdated 5 mo ago
    Productivity & AutomationAuto-check: notes
  • Build a new channel Connect button (e.g. An agent skill from novuhq/novu.

    40k GitHub stars~1.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • Repurpose

    AgriciDaniel/claude-repurpose

    Content Repurposing Engine. An agent skill from AgriciDaniel/claude-repurpose.

    157 GitHub stars~5.1k tokensUpdated 6 mo ago
    Writing & ContentAuto-check passed
  • Channel Debug Core

    vercel-labs/vercel-openclaw-archived

    Official

    Channel webhook triage for vercel-openclaw Slack/Telegram/Discord/WhatsApp issues: prove deployment state, collect admin readiness endpoints, build evidence-first handoff before fixes.

    117 GitHub stars~2k tokensUpdated 4 mo ago
    Backend & APIsAuto-check: notes
  • Frontmcp Channels

    agentfront/frontmcp

    A skill your agent uses when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges.

    146 GitHub stars~3.7k tokensUpdated today
    Backend & APIsAuto-check passed

More from letta-ai/skills

All 22 skills in this repo
  • Visual Identity

    letta-ai/skills

    Build and maintain a persistent visual identity for your agent using Flux Kontext Pro.

    149 GitHub stars~2.6k tokensUpdated 8 days ago
    Auto-check passed
  • AI News

    letta-ai/skills

    Fetch and summarize recent AI news from curated RSS feeds (Hugging Face, VentureBeat, The Verge, OpenAI, Anthropic, DeepMind, etc.) and YouTube channels (Yannic Kilcher, Two Minute Papers, AI…

    149 GitHub stars~582 tokensUpdated 8 days ago
    Auto-check passed
  • Letta Configuration

    letta-ai/skills

    Configure LLM models and providers for Letta agents and servers.

    149 GitHub stars~1.3k tokensUpdated 8 days ago
    Auto-check: notes
  • Migrates deprecated Letta Filesystem folders/files to MemFS using markdown document corpora, chunking, local lexical search, and QMD semantic search via the memfs-search skill.

    149 GitHub stars~1.3k tokensUpdated 8 days ago
    Auto-check passed
  • Memfs Search

    letta-ai/skills

    Semantic search over agent memory files. An agent skill from letta-ai/skills.

    149 GitHub stars~901 tokensUpdated 8 days ago
    Auto-check passed
  • Navigates archived ChatGPT or Claude-style conversation exports and a MemFS reference archive on demand.

    149 GitHub stars~1.3k tokensUpdated 8 days ago
    Auto-check passed

Questions about Creating Letta Code Channels

What does Creating Letta Code Channels do?

Builds and debugs Letta Code channels, including first-party channel adapters and dynamic user channel plugins under ~/.letta/channels. Creating Letta Code Channels is an agent skill from letta-ai/skills.letta/channels.

When should I use Creating Letta Code Channels?

Creating Letta Code Channels fits situations like: adding Telegram; custom channel support; testing channel routing; runtime dependencies.

How do I install Creating Letta Code Channels in Claude Code?

Run `npx skills add letta-ai/skills --skill creating-letta-code-channels -a claude-code`. Or copy the skill folder (letta/creating-letta-code-channels in letta-ai/skills) into .claude/skills/creating-letta-code-channels in your project. Claude Code loads it when a task matches its description.

How do I install Creating Letta Code Channels in Codex?

Run `npx skills add letta-ai/skills --skill creating-letta-code-channels -a codex`. Or copy the skill folder (letta/creating-letta-code-channels in letta-ai/skills) into .agents/skills/creating-letta-code-channels in your project. Codex loads it when a task matches its description.

Can I use Creating Letta Code Channels in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letta-ai/skills --skill creating-letta-code-channels -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/creating-letta-code-channels, .gemini/skills/creating-letta-code-channels, .github/skills/creating-letta-code-channels and .opencode/skills/creating-letta-code-channels in your project.

What does Creating Letta Code Channels need to run?

Going by SKILL.md and its folder, Creating Letta Code Channels needs TypeScript for the scripts in its folder and the command-line tools its instructions call (bun and npx). Our summary lists: Node.js.

Does Creating Letta Code Channels access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Creating Letta Code Channels safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Creating Letta Code Channels use?

Creating Letta Code Channels is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Creating Letta Code Channels use?

About 1.1k tokens (SKILL.md is roughly 4.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.5k tokens, read only when the agent opens those files.

What are the alternatives to Creating Letta Code Channels?

Skills that share tags, products or a category with Creating Letta Code Channels: Lettabot (letta-ai/lettabot, 327 stars), Traul Message Search (dandaka/traul, 112 stars), Add Channel Connect Button (novuhq/novu, 40k stars) and Repurpose (AgriciDaniel/claude-repurpose, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Creating Letta Code Channels?

letta-ai (a GitHub organization) maintains it in letta-ai/skills, which has 149 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 1, 2026.

Source: letta-ai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.