Raw capture โ raw/sx.md
url: https://github.com/sleuth-io/sx date_fetched: 2026-07-05 backfilled: true
โญ Star this repo ยท ๐ Website ยท ๐ Changelog ยท ๐ License
AI assets โ skills, MCPs, agents, rules, commands, hooks โ usually live inside a single Git repo. The moment you want them in another repo you copy-paste, and they drift out of sync with no source of truth. sx manages complex sharing and distribution of AI assets for real-world teams:
sx stats; audit access with- sx auditInstall via Homebrew (macOS/Linux):
brew tap sleuth-io/tap
brew install sx
Or via shell script:
curl -fsSL https://raw.githubusercontent.com/sleuth-io/sx/main/install.sh | bashThen initialize in your vault or project:
sx initFrom here the workflow is three steps โ manage your assets, distribute them, and govern what ships.
Add assets to your vault (sx auto-detects the type):
sx add /path/to/my-skill
sx add ~/.claude/skills/my-skill # an existing Claude Code skill
sx add code-review@claude-plugins-official # a plugin from a registry
Your AI assets stay exactly as they are โ sx just wraps them with metadata for versioning and stores them in its vault format.
Multiple vaults? Use profiles to switch between them:
sx profile add work # Add a new profile
sx profile use work # Switch to it
sx profile list # See all profiles
See what's actually used โ track adoption and token usage across your team:
sx stats # adoption dashboard
sx stats --since 7d --json # machine-readable
# Install everything scoped to you, into the current project
sx install
Install targets โ pick who sees which asset:
sx install my-skill --org # everyone in the vault
sx install my-skill --repo github.com/acme/infra # only inside that repo
sx install my-skill --path github.com/acme/infra#docs/ # one path in a repo
sx install my-skill --team platform # every member of a team
sx install my-skill --user alice@acme.com # a single user
sx install my-skill --bot python-backend # a bot identity (CI runner, agent)
See docs/scoping.md for the full overview and links to a per-scope doc for each install target.
Use your vault from claude.ai or chatgpt.com โ expose it as an MCP endpoint via the skills.new relay:
sx cloud connect # opens skills.new, paste back the attach line
sx cloud serve # keep this running โ Ctrl+C exits
sx cloud status # prints the MCP URL to paste into claude.ai / chatgpt.com
The relay forwards requests over a WebSocket โ vault content stays local. See docs/cloud-relay.md.
Audit โ every team and install mutation is recorded:
sx audit # recent team/install mutations
sx audit --actor alice@acme.com --since 30d --event install.set
Migrate a whole vault (assets + versions, teams, bots, scopes, audit, usage):
sx vault copy --from skills-new --to git-vault # preview (read-only)
sx vault copy --from skills-new --to git-vault --yes
See docs/copy.md for directionality and what's lossy. A gated change-request flow (RBAC) is on the roadmap.
An AI agent is only as good as what it knows and what it's allowed to do. sx lets you describe that once โ define a Bot and attach the agent's prompt plus the skills, rules, commands, hooks, and MCP servers it depends on โ and install it unchanged across any client, coding or not.
sxwrites each one's native format on installChoose the right distribution model for your team:
Perfect for easily sharing personal tools across multiple personal projects
sx init --type path --path my/vault/pathShare assets through a shared git vault
sx init --type git --repo git@github.com:yourteam/skills.gitCentralized management with a UI for discovery, creation, sharing, and usage analytics
sx init --type sleuthsx follows the manifest-and-lock pattern used by npm, cargo, and uv:
sx.toml)- org,- repo,- path,- team,- bot,- user), and team definitions (members, admins, repositories). Committed to git / path vaults. See docs/manifest-spec.md.sx installreads the manifest, resolves team and user scopes against the caller's git identity, and writes the result to the user's cache directory (- ~/<cache>/sx/lockfiles/). When the resolved lock changes, the previous file is rotated with a timestamp so old installs stay reproducible..sx/audit/YYYY-MM.jsonl; usage events append to- .sx/usage/YYYY-MM.jsonl. Query them with- sx audit/- sx stats.High level: manage assets in one vault, distribute them globally, per repo, per path, per team, per bot, or per user โ auto-installing on new Claude Code sessions so everyone stays in sync โ and govern every change through the audit and usage streams.
Everything the CLI does to a vault is also a package. Publish skills and
agents, manage bots and teams, and browse or download assets from your own
program against Skills.new, Git, or local Path vaults through one Client:
import "github.com/sleuth-io/sx/pkg/sxvault"
ctx := context.Background()
client, err := sxvault.OpenSkillsNew("https://app.skills.new", token)
if err != nil {
log.Fatal(err)
}
if err := client.PutSkillZip(ctx, sxvault.SkillZipSpec{
Name: "lint-helper", Version: "1.0.0", ZipData: zip,
}); err != nil {
log.Fatal(err)
}
See docs/library.md for the full API guide.
| Client | Status | Notes |
|---|---|---|
| Claude Code | โ Supported | Full support for all asset types |
| Cline | โ Supported | Skills, rules, workflows as commands, MCP servers, hooks |
| Codex | โ Supported | Skills, commands, agents, MCP servers |
| Cursor | โ Supported | Skills, rules, commands, MCP servers, hooks |
| GitHub Copilot | โ Supported | Skills, rules, commands, agents, MCP servers, local hooks |
| Gemini (CLI/VS Code) | โ Supported | Skills, rules, commands, MCP servers, hooks |
| Gemini (JetBrains) | โ Supported | Rules, MCP servers only (no commands/hooks) |
| Gemini (Android Studio) | โ Supported | Rules, MCP-remote only (HTTP, no stdio) |
| Kiro | โ Supported | Skills, rules, commands, MCP servers |
| Openclaw | โ Supported | Skills, rules, commands |
| OpenCode | โ Supported | Skills, commands, agents, rules, MCP servers |
| claude.ai (web) | โ Supported | Via the skills.new cloud relay |
| chatgpt.com (web) | โ Supported | Via the skills.new cloud relay |
See LICENSE file for details.
sx vault copycross-vault migration (assets, teams, bots, scopes, audit, usage)sx auditfilters, storage formatsx statsdashboard, JSON output, event formatpkg/sxvaultpublic APIGo 1.25 or later is required. Install using gvm:
# Install gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# Install Go (use go1.4 as bootstrap if needed)
gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.25
gvm use go1.25 --default
make init # First time setup (install tools, download deps)
make build # Build binary
make install # Install to GOPATH/bin
make test # Run tests with race detection
make format # Format code with gofmt
make lint # Run golangci-lint
make prepush # Run before pushing (format, lint, test, build)
Tag and push to trigger automated release via GoReleaser:
git tag v0.1.0
git push origin v0.1.0