Quickstart
$ pip install -U xskill
$ xskill connect https://hub.xskill.wiki --token dd7f641c16ced6d1db43e754055fd2c8 --name YOUR_NAME
$ pip install -U xskill # Python 3.9+
$ xskill serve # writes ~/.xskill/config.yaml, then exits
skill_dir: ~/.xskill/skill
llm:
base_url: https://api.deepseek.com
model: deepseek-v4-flash
api_key: YOUR_KEY
embedding:
# LLM and embedding can share one DeepSeek endpoint; swap as needed.
base_url: https://api.deepseek.com
model: deepseek-embedding
api_key: YOUR_KEY
dim: 0
$ xskill serve # start daemon & watcher
# optional: add an older trajectory archive
$ xskill registry add /path/to/trajectories
$ xskill serve --server # on server: prints join token
$ xskill connect <host:port> --token <token> --name <user-id>
xskill generate
When to use it
How
$ xskill generate ""
$ xskill generate --name alice,bob ""
xskill upload
When to use it
How
$ xskill upload ./my-skill
# teammates can then:
$ xskill search ζθ½ε
$ xskill download <skill-id>
Notes
xskill import
When to use it
How
$ xskill import ./my-skill
$ xskill import ./skills-folder
Notes
xskill search
When to use it
How
$ xskill search QUERY [--download] [--team | --local]
$ xskill search docker
$ xskill search "docker compose" --team
$ xskill search docker --download
$ xskill search git --local
QUERY β
--download β
--team β
--local β
Notes
Hand-edit, then it uploads
When to use it
How
$ xskill status
# then edit ~/.xskill/skill/<name>/SKILL.md and save
Notes
Concepts
Five terms cover the whole system:
| Term | Meaning |
| Trajectory | |
| Atom | |
| Skill | |
| Canary | |
| UX score | |
Skill lifecycle
- 1
- 2
- 3
- 4
- 5
- 6
Architecture
Supported agents
Trajectory ingest and Skill install are implemented per ecosystem:
| Agent | Status | Trajectory ingest | Skill install |
| Claude Code | verified | ~/.claude/projects/ | ~/.claude/skills/<name>/ |
| Codex CLI | verified | ~/.codex/sessions/ | ~/.agents/skills/<name>/ |
| OpenCode | verified | ~/.local/share/opencode/opencode.db | ~/.agents/skills/<name>/ |
| OpenClaw | implemented | ~/.openclaw/agents/ | ~/.agents/skills/<name>/ |
| Cursor | implemented | ~/.cursor/projects/*/agent-transcripts/ | ~/.cursor/skills/<name>/ |
| Trae | implemented | IDE state.vscdb / CLI trajectory_*.json | ~/.trae-cn/skills/, ~/.trae/skills/ |
| Any other agent | manual | xskill.adapters.submit_trajectory | copy / symlink SKILL.md |
Team mode
$ xskill serve --server # prints a join token
$ xskill connect <host:port> --token *** --name <user-id>
$ xskill search docker compose # compact metadata + skill ID
$ xskill search docker --download # installs into the 10-slot LRU
$ xskill download <skill-id> --agent claude-code --agent codex -y
$ xskill upload ./my-skill # whole team can search it right away
Persistent client
$ xskill status
$ xskill stop
$ xskill start
CLI reference
xskill serve [--host 0.0.0.0] [--port 8000] [--server]
xskill registry <add|remove|list> [path] [--label LABEL]
xskill connect [host:port] [--token TOKEN] [--name NAME] [--label LABEL] [--use-proxy] [--foreground]
xskill generate [--name NAME] PROMPT
xskill upload [--json] path
xskill import [--json] path
xskill search QUERY [--download] [--team | --local]
xskill download [--agent AGENT] [-y] skill_id
Configuration
llm:
base_url: https://api.deepseek.com
model: deepseek-v4-flash
api_key: YOUR_KEY
rate_limit:
rpm: 60 # match your provider plan
tpm: 100000 # optional
burst: 10 # optional; default = ceil(rate/6)