/letta-guide
Answer questions about Letta itself from the official documentation. Use whenever the user asks how Letta works, what Letta (or you) can do, or how to set up or configure providers, models, channels, skills, memory, schedules, permissions, self-hosting, pricing, or billing — any
$ npx -y skills add letta-ai/letta-code --skill letta-guide --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/letta-guide
Context preview
The summary Claude sees to decide when to auto-load this skill.
Answer questions about Letta itself from the official documentation. Use whenever the user asks how Letta works, what Letta (or you) can do, or how to set up or configure providers, models, channels, skills, memory, schedules, permissions, self-hosting, pricing, or billing — any
SKILL.md
letta-guide.SKILL.mdname: letta-guide
description: Answer questions about Letta itself from the official documentation. Use whenever the user asks how Letta works, what Letta (or you) can do, or how to set up or configure providers, models, channels, skills, memory, schedules, permissions, self-hosting, pricing, or billing — any "how do I…" or "can Letta…" question about the Letta product. Fetch the docs before answering; never answer Letta product questions from memory alone.
Letta Guide
You are running inside Letta, but your training data about Letta's commands, flags, settings, UI, pricing, and providers is out of date. Users lose trust fastest when an agent confidently invents product details. This skill defines how to answer questions about Letta correctly.
Source route (in order)
1. **Self-inspection first for questions about THIS agent.** "What model are you using?", "what tools do you have?", "what's in your memory?" are questions about the running session, not the docs. Load the `self-configuration` skill for model or settings questions and use its backend-aware active configuration report. Use the system prompt, agent info, tool schemas, and MemFS for the other live facts. Do not infer active state from recent/default preference lists, and do not fetch docs for these. 2. **Fetch the docs index directly.** For product questions, run:
node <SKILL_DIR>/scripts/fetch-letta-docs.mjs
The helper retrieves `https://docs.letta.com/llms.txt` from the docs host, verifies its ETag against the body, and prints the paths to a current local copy and heading outline. Read the outline, then read the relevant index lines to pick the best page URL. 3. **Fetch the specific page directly.** Pass the exact canonical URL from the index back to the same helper, for example:
node <SKILL_DIR>/scripts/fetch-letta-docs.mjs \
--docs-url "https://docs.letta.com/configuration/models/index.md"Read the returned docs path before running the helper for another URL. The helper uses native HTTPS with a curl fallback; do not use `fetch_webpage` for the normal docs route because its upstream content cache may be stale. Cite the public doc URL so the user can go deeper. 4. **If direct retrieval fails**, use `fetch_webpage` only as a fallback with a fresh query parameter on the same official docs URL. Disclose that the fallback may be stale. If that also fails, say the docs are unreachable, give your best answer, and clearly mark it as possibly out of date with a link to https://docs.letta.com. Never silently fall back to memory.
Hard rules
- **Never invent CLI commands, flags, slash commands, settings keys, config
file shapes, or UI paths.** If something is not in the fetched docs and you cannot verify it locally (`letta --help`, `/help`, reading the actual config file), say you are not sure or that it does not exist — do not guess a plausible-sounding name.
- **Distinguish surfaces.** The CLI, the desktop app, the web app
(chat.letta.com), and the API/SDK have different affordances. Answer for the surface the user is actually on; say when a feature lives on a different surface.
- **Always fetch, never recall**, for anything volatile: pricing, rate
limits, data policies, the provider/model catalog, channel setup steps, and integration instructions.
- **If the feature genuinely doesn't exist**, say so and point the user to
https://github.com/letta-ai/letta-code/issues to request it.
Support escalation
When the docs don't resolve the user's problem — setup issues you can't debug, account/billing questions, suspected bugs, or anything needing a human — point them to the right channel:
- **Discord** (https://discord.gg/letta): the primary support community,
very active — best for setup help, troubleshooting, and quick questions. It's also where users can chat with **Ezra**, Letta's support agent.
- **GitHub issues** (https://github.com/letta-ai/letta-code/issues): bug
reports and feature requests.
If the user reports errors, timeouts, or things suddenly not working, check **https://status.letta.com** for an active incident before debugging — and have the user check it too.
Offer these proactively when you've hit the end of what the docs cover, rather than leaving the user stuck.
Caching
The helper owns the cache. It uses the first writable temporary directory from `TMPDIR`, `TEMP`, `TMP`, `/private/tmp`, or `/tmp`, and accepts `--cache-dir` when an explicit location is needed. Every invocation checks the live ETag and reuses the local document only when its body hash still matches. Do not create or manage a second cache yourself.
Read more
name: letta-guide description: Answer questions about Letta itself from the official documentation. Use whenever the user asks how Letta works, what Letta (or you) can do, or how to set up or configure providers, models, channels, skills, memory, schedules, permissions, self-hosting, pricing, or billing — any "how do I…" or "can Letta…" question about the Letta product. Fetch the docs before answering; never answer Letta product questions from memory alone.
Letta Guide
You are running inside Letta, but your training data about Letta's commands, flags, settings, UI, pricing, and providers is out of date. Users lose trust fastest when an agent confidently invents product details. This skill defines how to answer questions about Letta correctly.
Source route (in order)
1. **Self-inspection first for questions about THIS agent.** "What model are you using?", "what tools do you have?", "what's in your memory?" are questions about the running session, not the docs. Load the `self-configuration` skill for model or settings questions and use its backend-aware active configuration report. Use the system prompt, agent info, tool schemas, and MemFS for the other live facts. Do not infer active state from recent/default preference lists, and do not fetch docs for these. 2. **Fetch the docs index directly.** For product questions, run:
node <SKILL_DIR>/scripts/fetch-letta-docs.mjs
The helper retrieves `https://docs.letta.com/llms.txt` from the docs host, verifies its ETag against the body, and prints the paths to a current local copy and heading outline. Read the outline, then read the relevant index lines to pick the best page URL. 3. **Fetch the specific page directly.** Pass the exact canonical URL from the index back to the same helper, for example:
node <SKILL_DIR>/scripts/fetch-letta-docs.mjs \
--docs-url "https://docs.letta.com/configuration/models/index.md"Read the returned docs path before running the helper for another URL. The helper uses native HTTPS with a curl fallback; do not use `fetch_webpage` for the normal docs route because its upstream content cache may be stale. Cite the public doc URL so the user can go deeper. 4. **If direct retrieval fails**, use `fetch_webpage` only as a fallback with a fresh query parameter on the same official docs URL. Disclose that the fallback may be stale. If that also fails, say the docs are unreachable, give your best answer, and clearly mark it as possibly out of date with a link to https://docs.letta.com. Never silently fall back to memory.
Hard rules
- **Never invent CLI commands, flags, slash commands, settings keys, config
file shapes, or UI paths.** If something is not in the fetched docs and you cannot verify it locally (`letta --help`, `/help`, reading the actual config file), say you are not sure or that it does not exist — do not guess a plausible-sounding name.
- **Distinguish surfaces.** The CLI, the desktop app, the web app
(chat.letta.com), and the API/SDK have different affordances. Answer for the surface the user is actually on; say when a feature lives on a different surface.
- **Always fetch, never recall**, for anything volatile: pricing, rate
limits, data policies, the provider/model catalog, channel setup steps, and integration instructions.
- **If the feature genuinely doesn't exist**, say so and point the user to
https://github.com/letta-ai/letta-code/issues to request it.
Support escalation
When the docs don't resolve the user's problem — setup issues you can't debug, account/billing questions, suspected bugs, or anything needing a human — point them to the right channel:
- **Discord** (https://discord.gg/letta): the primary support community,
very active — best for setup help, troubleshooting, and quick questions. It's also where users can chat with **Ezra**, Letta's support agent.
- **GitHub issues** (https://github.com/letta-ai/letta-code/issues): bug
reports and feature requests.
If the user reports errors, timeouts, or things suddenly not working, check **https://status.letta.com** for an active incident before debugging — and have the user check it too.
Offer these proactively when you've hit the end of what the docs cover, rather than leaving the user stuck.
Caching
The helper owns the cache. It uses the first writable temporary directory from `TMPDIR`, `TEMP`, `TMP`, `/private/tmp`, or `/tmp`, and accepts `--cache-dir` when an explicit location is needed. Every invocation checks the live ETag and reuses the local document only when its body hash still matches. Do not create or manage a second cache yourself.
Letta Code is a stateful agent harness for creating agents that are more like people than tools. Letta Code agents have memory, identity, and a sense of experience over time.
Repo: letta-ai/letta-code
Other skills on letta-code.
- /acquiring-skills
Discover and install skills from Hermes, ClawHub, GitHub, and other registries. Load this skill whenever a user asks for a capability you don't already have — image generation, social media, email, calendar, finance, DevOps, search, browser automation, etc.
Open skill - /context-doctor
Identify and repair degradation in system prompt, external memory, and skills preventing you from following instructions or remembering information as well as you should.
Open skill - /converting-mcps-to-skills
Connect to MCP (Model Context Protocol) servers and create skills for repeated use. Load when a user wants to use an MCP server, connect to external tools via MCP, or when they mention MCP, model context protocol, or specific MCP servers.
Open skill - /creating-mods
Creates and edits trusted local Letta Code mods, including tools, slash commands, local-only model providers, lifecycle/turn events, scoped conversation helpers, panels, and capability-gated behavior. Use when asked to make a mod, add an agent-callable tool, add a slash command,
Open skill - /creating-skills
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Letta Code's capabilities with specialized knowledge, workflows, or tool integrations.
Open skill - /customizing-commands
Creates, edits, and enables Letta Code mod-provided slash commands. Use when the user asks to add a custom /command, slash command, command shortcut, scoped conversation-backed command, or command-driven panel behavior.
Open skill

