Skills
Tapes can extract reusable patterns from derived session transcripts with an LLM, store them under ~/.tapes/skills/, and sync them into agent skill directories.
A generated transcript follows the main conversation spine: turn-level prompts and responses from traces/spans, excluding harness shadow calls such as permission checks, title generation, and injected context.
All three commands live in the client,
tapesctl. generate reads
session data from the read API; list and sync touch no server at all.
Generate
Section titled “Generate”A name in kebab-case is required:
tapesctl skill generate <session-id> --name debug-react-hooksUse multiple session IDs, or find matching sessions through span search:
tapesctl skill generate <session-a> <session-b> --name retry-patternstapesctl skill generate --search "gum glow charm" \ --search-top 3 --name charm-cli-patternsSessions named positionally take priority over --search.
Other useful controls are:
tapesctl skill generate <session-id> --name morning-work \ --since 2026-02-17 --until 2026-02-17T17:00:00Z \ --type workflow --previewSkill types are workflow, domain-knowledge, and prompt-template.
Two servers are involved and they are not the same one. --tapes-url addresses
the read API that supplies the transcript. --provider, --model, and
--api-key address the LLM that does the extraction:
| Provider | Default model | Key read from | Key required |
|---|---|---|---|
openai (default) |
gpt-4o-mini |
OPENAI_API_KEY |
yes |
anthropic |
claude-haiku-4-5-20251001 |
ANTHROPIC_API_KEY |
yes |
ollama |
llama3.2 |
either, if set | no |
Prefer the environment variable over --api-key: a key passed on the command
line is visible in the process list and in shell history for as long as the
command runs.
tapesctl skill listtapesctl skill list --type workflowInstalling a skill into an agent’s skills directory is a local file copy with no server involved.
By default, sync writes to the global, agent-neutral ~/.agents/skills/:
tapesctl skill sync debug-react-hooksChoose project-local or Claude Code paths explicitly:
tapesctl skill sync debug-react-hooks --local # .agents/skills/tapesctl skill sync debug-react-hooks --claude # ~/.claude/skills/tapesctl skill sync debug-react-hooks --claude --local # .claude/skills/tapesctl skill sync debug-react-hooks --dry-runGenerated skills are files you can inspect and version like other agent instructions. Preview generation and use --dry-run before syncing when the source session contains project-specific assumptions.