Somewhere in your captured sessions, an agent already worked through the problem you are about to explain from scratch. This guide runs the whole skills loop from the terminal: find that session, generate a reusable skill from it, and sync the SKILL.md into your agent’s skills directory. Four commands, no context switch. Prerequisite: authenticated paperctl.
If you prefer the UI for this — or want the full review-and-publish flow — see Publish your first skill.
Find the session where you already solved it
Describe the work; search matches meaning, not keywords:
paperctl search "update every repo in the workspace" -k 3Each hit shows the matched turn with its session id, score, and timestamp. You are looking for a session that solved the problem cleanly and would apply again next time — the top hit is often, but not always, the one. To check a candidate before committing, inspect it with paperctl sessions get <session-id>.
If you already know which session you want, grab its id from paperctl sessions list instead.
Generate a skill from it
paperctl skill generate <session-id> --name 'Sync Workspace Repositories'Generation runs server-side in tapes — the CLI kicks it off and prints the result, usually within seconds:
Generated skill:
Sync Workspace Repositories workflow v0.1.0 0 downloads
Use when needing to ensure all repositories in a...Generation is org-scoped: skills are only ever built from your own organization’s sessions. Pass multiple session ids to extract one skill from several sessions together, or omit --name to let the generator name the skill from the transcript. Full flags are in the command reference.
Check the library
paperctl skill listLists your org’s skills with type, version, and download count — the same library the Skills view shows in paper console, searchable, versioned, and visible to your team. --query <substring> filters when the library gets big.
Sync it into your agent’s skills directory
paperctl skill sync sync-workspace-repositories --claudeSync writes the skill’s rendered SKILL.md to ~/.claude/skills/<slug>/ (with --claude; other agents and per-project installs use different targets — Install a Skill covers them all, including how to update later).
The synced file is a complete skill, not a transcript dump: name, description, tags, type, the source session ids, and the step-by-step procedure. An agent that reads skills from that directory can follow it on its next run.
Review before your team relies on it
The generated draft lifts everything from the session — including local paths, project names, and environment details you may not want to generalize. For a skill you plan to share, open it in paper console to edit the draft, scrub session-specific context, and publish an immutable version. Publish your first skill covers that flow end to end.