skillnerds/xskill/xskill-helper
Claude Code and agent skill by skillnerds/xskill
- community
Checking that the SKILL.md file is still in the repository.
Use this skill for xskill. Trigger when the user wants to init, connect or join a team server, generate or rewrite a team Skill from trajectories, search download upload or import team Skills, look up this user or a teammate's past chats across Claude Code Codex Cursor OpenCode Trae DeepSeek Harness and ngagent, upgrade the client, or debug a stuck daemon. Team chats: xskill traj search then traj read. This machine only: add --local to read ~/.xskill/*_sessions. Invoke as /xskill-helper.
Install
npx vskill@latest install skillnerds/xskill/xskill-helperSKILL.md
xskill-helper
xskill is a thin client + background daemon that (1) mounts your team's shared Skills into every AI-agent tool you use (Claude Code, Codex, OpenCode, Cursor, Trae, DeepSeek Harness) and (2) collects your agent trajectories and syncs them to a team server; you choose which projects are uploaded (see "Controlling which trajectories are uploaded"). You join a server once, then it keeps skills in sync and auto-updates itself.
xskill init can install this guide into chosen harnesses on this machine. xskill connect also installs it after a team join. Invoke it as /xskill-helper from Claude Code, Codex, Cursor, and the other supported tools.
All state lives under ~/.xskill/:
| File | What | |
|---|---|---|
~/.xskill/local_init.json | local harness scan marker (no team server required) | |
~/.xskill/team_client.json | connection identity (server_url, client_id, join_token, server privacy mode) — survives restarts | |
~/.xskill/privacy.json | local upload rules: mode + per-project allow/deny — never sent to the server | |
~/.xskill/connect_daemon.json | current background daemon (pid / host task) — used by status/stop | |
~/.xskill/logs/xskill.*.log | split logs (one file per component) | |
~/.xskill/skill/ | the local skill repo everything is mounted from |
Getting started
After pip install xskill, local trajectory search does not need a team server. The first xskill traj search checks for a connection. If there is no xskill connect and this machine has not been initialized, it scans detected harnesses, converts their sessions into ~/.xskill/*_sessions, and builds the local index. After that, xskill traj search and xskill traj read work on this computer.
For a guided setup that lists harnesses, turns on trajectory processing, and asks which agents should get this guide:
xskill init -y is the non-interactive form: scan every detected harness and install /xskill-helper into all of them. --no-skill skips the guide. --skills-only only installs the guide. --force rescans even if the local index already exists.
Interactive xskill init then asks whether to join a team server. Enter, skip, or an empty address/token all leave the machine usable locally. Do not treat a skipped connect as failure. If they want to connect later, or run a standalone team server:
Never send the user to a public hub or any address you were not given. If they do not have host, token, or name, show the connect command as the example and ask their server operator. The operator prints the token with xskill serve --server. Do not invent an address or token, and do not paste one from the internet.
After a successful handshake, connect installs this guide and starts the background daemon. Later reconnects can omit the address and token; they reuse ~/.xskill/team_client.json.
In the agent, invoke this guide as /xskill-helper.
Controlling which trajectories are uploaded
Rules live only on this machine. A mode decides what happens to projects without a rule; the server and this machine each have one, and the stricter wins (allowlist is stricter than denylist):
allowlist— nothing is uploaded except projects youallow.denylist— everything is uploaded except projects youdeny(server default).
A server set to allowlist requires it from every client on this version or newer; older clients do not know the field.
A skipped trajectory is never read, never uploaded and never marked as uploaded, so allowing it later uploads it on the next scan. A trajectory whose sidecar records no working directory (Cursor and Trae never do) cannot be matched to a project: it follows the mode default and status lists it separately. Rules never delete what was already uploaded.
Generate or rewrite a Skill
generate does not invent a Skill from scratch. It reads trajectories the team server already allows this client to see, and the instruction only describes what to create or change. The job may wait for a free SkillEdit seat; the CLI streams queue and run logs. When it finishes, the Skill is committed to main and pinned on the initiator's recommendation list.
--name is a comma-separated list of employee ids the agent should read first. Omit it and the agent may search every trajectory the server authorizes. If the CLI says the server is too old, ask the operator to upgrade the team server.
Import an existing Skill
import takes a local Skill folder (or a parent that contains several) into the team's own repo. This is not upload: import becomes a first-party Skill on main, while upload only lands in the user's SkillHub share.
Searching and reading trajectories
This is how the agent looks up past chats. xskill collects sessions from every harness it detected on this machine and converts them to traj_*.md. After xskill connect it also uploads them to the team server. One search covers Claude Code, Codex, Cursor, OpenCode, Trae, DeepSeek Harness, and ngagent. Do not tell the user to open each tool's own history UI.
The default entry is the trajectory, not Atom.
xskill traj search is full-text over traj_*.md, not the first-user-query index. Default listing is one block per hit: traj_id, then the first match with three lines before and after (the hit line is marked *). Same-name prefixes are spread. A page shows at most 30 hits. --page N turns the page. --cards returns index cards (source, line count, user turns, tools, then L 问 / L 答), at most 8 per page; cards are not close reading. Close-read with xskill traj read <traj_id> --offset-start <L from the card>.
No team server (after pip, or after xskill init): search reads ~/.xskill/*_sessions. The first search on this machine runs the same harness scan as xskill init if that has not happened yet.
Team (online, after xskill connect): search reads uploaded traj_*.md this user and teammates can see. --name alice,bob narrows to those employee ids. Reading someone else's file needs the server switch team.server.allow_read_others; otherwise the CLI prints that the server has not opened others' trajectories.
This machine only (offline, or skip the server): add --local. xskill traj search --local and xskill traj read --local <traj_id> use ~/.xskill/*_sessions and do not call the team server. If this machine has not been initialized, the first --local search or read scans harnesses and converts sessions. --local also prints the concrete *_sessions directories. After that, grep those folders with this harness's own search tools (traj_*.md); do not invent a server path.
Putting the word traj after xskill search searches skills, not trajectories. Use xskill traj search.
xskill traj read takes --offset-start and --offset-end (1-based, half-open). Each reply prints the current window and the total window. One call returns at most 200 lines.
Local harness directories (this machine):
| Harness | Bridged markdown | |
|---|---|---|
| Claude Code | ~/.xskill/cc_sessions/traj_*.md | |
| Codex | ~/.xskill/codex_sessions/traj_*.md | |
| Cursor | ~/.xskill/cursor_sessions/traj_*.md | |
| OpenCode | ~/.xskill/opencode_sessions/traj_*.md | |
| ngagent | ~/.xskill/ngagent_sessions/traj_*.md | |
| nga3 | ~/.xskill/nga3_sessions/traj_*.md | |
| Trae | ~/.xskill/trae_sessions/traj_*.md | |
| DeepSeek Harness | ~/.xskill/dsh_sessions/traj_*.md |
--name only applies in team mode. Search does not download files. Paste a traj_id into xskill generate when the instruction should name the evidence. Do not print server paths.
Advanced: atoms
Atom is a split-agent product. Granularity may change across versions. Prefer xskill traj search unless a script already has an atom_id.
Searching & sharing team skills
Already connected clients search SkillHub. Standalone machines search the local library (semantic index, falling back to BM25). search --download is the old rolling-slot path; prefer download <skill-id> to keep a Skill permanently.
Upgrading
The daemon auto-checks PyPI every hour and upgrades itself when a newer version is out; disable with xskill connect --no-auto-update. Behind a corporate proxy, add --use-proxy (default is direct connection, bypassing the SWG proxy). Background hosting differs per platform — Windows uses a Scheduled Task, Linux/WSL uses a systemd user service. See references/platforms.md.
Debugging
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingsrc/xskill/data/skill/xskill-helper/SKILL.md
Popularity
- Repository stars
- 122
- Repository forks
- 23
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/skillnerds/xskill/xskill-helper)