.skills/adding-models/SKILL.md
Guide for adding new LLM models to Letta Code. Use when the user wants to add support for a new model, needs to know valid model handles, or wants to update the model configuration. Covers models.json configuration, CI test matrix, and handle validation.
npx skillsauth add letta-ai/letta-code adding-modelsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill guides you through adding a new LLM model to Letta Code.
Key files:
src/models.json - Model definitions (required).github/workflows/ci.yml - CI test matrix (optional)src/tools/manager.ts - Toolset detection logic (rarely needed)Query the Letta API to see available models:
curl -s https://api.letta.com/v1/models/ | jq '.[] | .handle'
Or filter by provider:
curl -s https://api.letta.com/v1/models/ | jq '.[] | select(.handle | startswith("google_ai/")) | .handle'
Common provider prefixes:
anthropic/ - Claude modelsopenai/ - GPT modelsgoogle_ai/ - Gemini modelsgoogle_vertex/ - Vertex AIopenrouter/ - Various providersAdd an entry to src/models.json:
{
"id": "model-shortname",
"handle": "provider/model-name",
"label": "Human Readable Name",
"description": "Brief description of the model",
"isFeatured": true, // Optional: shows in featured list
"updateArgs": {
"context_window": 180000,
"temperature": 1.0 // Optional: provider-specific settings
}
}
Field reference:
id: Short identifier used with --model flag (e.g., gemini-3-flash)handle: Full provider/model path from the API (e.g., google_ai/gemini-3-flash-preview)label: Display name in model selectordescription: Brief description shown in selectorisFeatured: If true, appears in featured models sectionupdateArgs: Model-specific configuration (context window, temperature, reasoning settings, etc.)Provider prefixes:
anthropic/ - Anthropic (Claude models)openai/ - OpenAI (GPT models)google_ai/ - Google AI (Gemini models)google_vertex/ - Google Vertex AIopenrouter/ - OpenRouter (various providers)Test with headless mode:
bun run src/index.ts --new --model <model-id> -p "hi, what model are you?"
Example:
bun run src/index.ts --new --model gemini-3-flash -p "hi, what model are you?"
To include the model in automated testing, add it to .github/workflows/ci.yml:
# Find the headless job matrix around line 122
model: [gpt-5-minimal, gpt-4.1, sonnet-4.5, gemini-pro, your-new-model, glm-4.6, haiku]
Models are automatically assigned toolsets based on provider:
openai/* → codex toolsetgoogle_ai/* or google_vertex/* → gemini toolsetdefault toolsetThis is handled by isGeminiModel() and isOpenAIModel() in src/tools/manager.ts. You typically don't need to modify this unless adding a new provider.
"Handle not found" error: The model handle is incorrect. Run the validation script to see valid handles.
Model works but wrong toolset: Check src/tools/manager.ts to ensure the provider prefix is recognized.
tools
Schedules reminders and recurring tasks via the letta cron CLI. Use when the user asks to be reminded of something, wants periodic messages, or needs to manage scheduled tasks.
tools
# Skill Execute a skill within the main conversation When users ask you to perform tasks, check if any of the available skills match. Skills provide specialized capabilities and domain knowledge. When users reference a "slash command" or "/<something>" (e.g., "/commit", "/review-pr"), they are referring to a skill. Use this tool to invoke it. How to invoke: - Use this tool with the skill name and optional arguments - Examples: - `skill: "pdf"` - invoke the pdf skill - `skill: "commit", a
documentation
Guide for working in parallel with other agents. Use when another agent is already working in the same directory, or when you need to work on multiple features simultaneously. Covers git worktrees as the recommended approach.
testing
Manage git-backed memory repos. Load this skill when working with git-backed agent memory, setting up remote memory repos, resolving sync conflicts, or managing memory via git workflows.