home / skills / letta-ai / letta-code / acquiring-skills

acquiring-skills skill

/src/skills/builtin/acquiring-skills

This skill helps you safely discover and install external skills from trusted sources to bootstrap capabilities.

npx playbooks add skill letta-ai/letta-code --skill acquiring-skills

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.9 KB
---
name: acquiring-skills
description: Guide for safely discovering and installing skills from external repositories. Use when a user asks for something where a specialized skill likely exists (browser testing, PDF processing, document generation, etc.) and you want to bootstrap your understanding rather than starting from scratch.
---

# Acquiring New Skills

This skill teaches you how to safely discover and install skills from external sources.

## SAFETY - READ THIS FIRST

Skills can contain:
- **Markdown files** (.md) - Risk: prompt injection, misleading instructions
- **Scripts** (Python, TypeScript, Bash) - Risk: malicious code execution

### Trusted Sources (no user approval needed for download)
- `https://github.com/letta-ai/skills` - Letta's community skills
- `https://github.com/anthropics/skills` - Anthropic's official skills

### Untrusted Sources (ALWAYS verify with user)
For ANY source other than letta-ai or anthropics:
1. Ask the user before downloading
2. Explain where the skill comes from
3. Get explicit approval

### Script Safety
Even for skills from trusted sources, ALWAYS:
1. Read and inspect any scripts before executing them
2. Understand what the script does
3. Be wary of network calls, file operations, or system commands

## When to Use This Skill

**DO use** when:
- User asks for something where a skill likely exists (e.g., "help me test this webapp", "generate a PDF report")
- You think "there's probably a skill that would bootstrap my understanding"
- User explicitly asks about available skills or extending capabilities

**DON'T use** for:
- General coding tasks you can already handle
- Simple bug fixes or feature implementations
- Tasks where you have sufficient knowledge

## Ask Before Searching (Interactive Mode)

If you recognize a task that might have an associated skill, **ask the user first**:

> "This sounds like something where a community skill might help (e.g., webapp testing with Playwright). Would you like me to look for available skills in the Letta or Anthropic repositories? This might take a minute, or I can start coding right away if you prefer."

The user may prefer to start immediately rather than wait for skill discovery.

Only proceed with skill acquisition if the user agrees.

## Skill Repositories

| Repository | Description |
|------------|-------------|
| https://github.com/letta-ai/skills | Community skills for Letta agents |
| https://github.com/anthropics/skills | Anthropic's official Agent Skills |

Browse these repositories to discover available skills. Check the README for skill listings.

## Installation Locations

| Location | Path | When to Use |
|----------|------|-------------|
| **Agent-scoped** | `~/.letta/agents/<agent-id>/skills/<skill>/` | Skills for a single agent (default for agent-specific capabilities) |
| **Global** | `~/.letta/skills/<skill>/` | General-purpose skills useful across projects |
| **Project** | `.skills/<skill>/` | Project-specific skills |

**Rule**: Default to **agent-scoped** for changes that should apply only to the current agent. Use **project** for repo-specific skills. Use **global** only if all agents should inherit the skill.

## How to Download Skills

Skills are directories containing SKILL.md and optionally scripts/, references/, examples/.

### Method: Clone to /tmp, then copy

```bash
# 1. Clone the repo (shallow)
git clone --depth 1 https://github.com/anthropics/skills /tmp/skills-temp

# 2. Copy the skill to your skills directory
# For agent-scoped (recommended default):
cp -r /tmp/skills-temp/skills/webapp-testing ~/.letta/agents/<agent-id>/skills/
# For global:
# cp -r /tmp/skills-temp/skills/webapp-testing ~/.letta/skills/
# For project:
# cp -r /tmp/skills-temp/skills/webapp-testing .skills/

# 3. Cleanup
rm -rf /tmp/skills-temp
```

### Alternative: rsync (preserves permissions)

```bash
git clone --depth 1 https://github.com/anthropics/skills /tmp/skills-temp
rsync -av /tmp/skills-temp/skills/webapp-testing/ ~/.letta/agents/<agent-id>/skills/webapp-testing/
rm -rf /tmp/skills-temp
```

## Registering New Skills

After downloading a skill, it will be automatically discovered on the next message. Skills are discovered from `~/.letta/skills/`, `.skills/`, and agent-scoped `~/.letta/agents/<agent-id>/skills/` directories.

## Complete Example

User asks: "Can you help me test my React app's UI?"

1. **Recognize opportunity**: Browser/webapp testing - likely has a skill
2. **Ask user**: "Would you like me to look for webapp testing skills, or start coding right away?"
3. **If user agrees, find skill**: Check anthropics/skills for webapp-testing
4. **Download** (trusted source):
   ```bash
   git clone --depth 1 https://github.com/anthropics/skills /tmp/skills-temp
   cp -r /tmp/skills-temp/skills/webapp-testing ~/.letta/agents/<agent-id>/skills/
   rm -rf /tmp/skills-temp
   ```
5. **Inspect scripts**: Read any .py or .ts files before using them
6. **Invoke**: `Skill(skill: "webapp-testing")`
7. **Use**: Follow the skill's instructions for the user's task

Overview

This skill guides safe discovery and installation of external skills to extend agent capabilities. It helps decide when a community skill is appropriate, how to obtain it from trusted sources, and how to install and inspect it before use. Follow it to bootstrap solutions like browser testing, PDF generation, or document pipelines instead of building from scratch.

How this skill works

When a task looks like one a specialized skill can solve, ask the user for permission to search community skill repositories. If approved, clone the remote skill tree to a temporary directory, copy the chosen skill into the appropriate local location (agent, project, or global), and remove temporary files. Always read and inspect any scripts before executing them and run only after user approval and clear understanding.

When to use it

  • User asks for a capability likely covered by a community skill (web testing, PDF generation, document workflows).
  • You want to bootstrap development with an existing, tested implementation rather than coding from scratch.
  • User requests available community skills or asks to extend the agent with new capabilities.
  • You need a quick way to add common tooling (Playwright tests, formatters, converters) to an agent or project.

Best practices

  • Always ask the user for permission before searching or downloading skills from untrusted sources.
  • Limit downloads to trusted repositories (e.g., official community skill collections) when possible.
  • Inspect all scripts and network/file operations in the skill before executing anything.
  • Install skills agent-scoped by default; use project-scoped for repo-specific needs and global only when all agents should inherit.
  • Clone shallow to a temp directory, copy only the needed skill, then delete the temp clone.

Example use cases

  • User asks: 'Help me test my React app's UI' — ask to search for a webapp-testing skill and install it agent-scoped.
  • User needs automated PDF report generation — find a PDF generation skill, inspect scripts, then integrate into the project directory.
  • Add a project-specific skill for data conversion by copying it into the .skills/ folder and running tests locally.
  • Quickly bootstrap Playwright-based browser tests by installing a community testing skill and reviewing example scripts.

FAQ

Which sources are safe to download without asking the user?

Use the officially maintained community skill collections designated as trusted. For any other source, always get explicit user approval before downloading.

Where should I install a skill?

Default to agent-scoped for agent-specific capabilities, use project-scoped for repo-specific needs, and reserve global only when the skill should apply to all agents.