Skip to main content

Manage and sync AI agent skills across Claude Code, Cursor, Windsurf, and Codex

Project description

one-skills-manager

   ___               ___ _   _ _ _        __  __
  / _ \ _ _  ___ ___/ __| |_(_) | |______|  \/  |__ _ _ _  __ _ __ _ ___ _ _
 | (_) | ' \/ -_)___\__ \ / / | | (_-<___| |\/| / _` | ' \/ _` / _` / -_) '_|
  \___/|_||_\___|   |___/_\_\_|_|_/__/   |_|  |_\__,_|_||_\__,_\__, \___|_|
                                                               |___/

Manage and sync AI agent skills, rules, and MCP servers across Claude Code, Cursor, Windsurf, and Codex from a single central store.

Features:

  • 📦 Skills - Install once, symlink everywhere
  • 📝 Rules - Manage custom rules/memories across agents
  • 🔌 MCP Servers - Configure Model Context Protocol servers
  • 👤 Profiles - Different configurations for work, personal, etc.
  • 📥 Import - Import existing configs from any agent
  • 🔄 Sync Tracking - Know when each agent was last synced

Installation

pip install one-skills-manager

Or with uv:

uv tool install one-skills-manager

Quick Start

# Import your existing Cursor configuration
one-skills import cursor --dry-run # inspect what would be imported
one-skills import cursor

# Create a profile
one-skills profile create work

# Add agents to your profile
one-skills profile add-agent cursor --profile work
one-skills profile add-agent windsurf --profile work

# Activate the profile
one-skills profile activate work

# Sync everything to your active profile's agents
one-skills sync

Core Concepts

Profiles

Profiles let you maintain different configurations for different contexts (work, personal, etc.). Each profile can:

  • Enable specific agents
  • Configure which MCP servers are available
  • Override MCP server transports per agent
  • Exclude specific MCP servers per agent

Central Storage

Everything is stored once in ~/.one-skills/:

  • Skills: ~/.one-skills/skills/<skill-name>/
  • Rules: ~/.one-skills/rules/<rule-name>
  • MCP Servers: ~/.one-skills/mcp.json
  • Profiles: ~/.one-skills/profiles.json

When you sync, symlinks are created from each agent's directory to the central store.

Usage

Import Existing Configuration

Import from an existing agent installation:

# Preview what would be imported
one-skills import cursor --dry-run

# Import skills, rules, and MCP servers
one-skills import cursor
one-skills import windsurf
one-skills import codex
one-skills import claude-code

Profile Management

# Create a new profile
one-skills profile create personal

# List all profiles
one-skills profile list

# Show profile details
one-skills profile show personal

# Activate a profile
one-skills profile activate personal

# Add an agent to a profile
one-skills profile add-agent cursor --profile personal

# Remove an agent from a profile
one-skills profile remove-agent cursor --profile personal

# Delete a profile
one-skills profile delete personal

Skills

# Install from GitHub
one-skills skill install https://github.com/owner/repo/tree/main/skill-name

# Install from local path
one-skills skill install ~/my-skills/skill-name

# List all skills
one-skills list

# Assign to agents
one-skills skill assign skill-name cursor,windsurf

# Unassign from agents
one-skills skill unassign skill-name cursor

# Remove a skill
one-skills skill remove skill-name

Rules

# Register an existing rule file
one-skills rule register my-rule.md cursor,windsurf

# Copy a rule from another location
one-skills rule copy ~/rules/my-rule.md my-rule.md cursor

# List all rules
one-skills rule list

# Assign to agents
one-skills rule assign my-rule.md cursor

# Unassign from agents
one-skills rule unassign my-rule.md cursor

# Remove a rule
one-skills rule remove my-rule.md

MCP Servers

# Add an MCP server with stdio transport
one-skills mcp add-server my-server stdio \
  --command npx \
  --args "-y" "my-mcp-server"

# Add an MCP server with SSE transport
one-skills mcp add-server my-server sse \
  --url https://example.com/mcp

# List all MCP servers
one-skills mcp list

# Add server to a profile
one-skills profile add-server my-server default --profile personal

# Override transport for a specific agent
one-skills profile set-override cursor my-server docker --profile personal

# Exclude a server from an agent
one-skills profile exclude-server cursor my-server --profile personal

# Remove a server
one-skills mcp remove-server my-server

Sync

Sync skills, rules, and MCP servers to agents in your active profile:

# Sync everything
one-skills sync

# Dry-run to preview changes
one-skills sync --dry-run

# Sync only to a specific agent
one-skills sync --agent cursor

# Sync only skills
one-skills sync --skills-only

# Sync only rules
one-skills sync --rules-only

# Sync only MCP servers
one-skills sync --mcp-only

Other Commands

# List supported agents
one-skills agents

# Show version
one-skills --version

Supported Agents

ID Name Skills Rules MCP Config
claude-code Claude Code ~/.claude/skills ~/.claude/rules ~/.claude.json
cursor Cursor ~/.cursor/skills Cloud-based ~/.cursor/mcp.json
windsurf Windsurf ~/.codeium/windsurf/skills ~/.codeium/windsurf/memories ~/.codeium/windsurf/mcp_config.json
codex Codex ~/.agents/skills ~/.codex/rules ~/.codex/config.toml

MCP Server Transports

MCP servers can use different transport mechanisms:

  • stdio: Local process (command + args + env)
  • sse: Server-Sent Events (url + headers)
  • http: HTTP (url + headers)

You can define multiple transports for the same server and override which transport each agent uses via profiles.

Example Workflow

# 1. Import your existing Cursor setup
one-skills import cursor

# 2. Create work and personal profiles
one-skills profile create work
one-skills profile create personal

# 3. Configure work profile
one-skills profile activate work
one-skills profile add-agent cursor --profile work
one-skills profile add-agent windsurf --profile work

# Add work-specific MCP servers to profile
one-skills profile add-server github-mcp-server default --profile work
one-skills profile add-server jira-server default --profile work

# 4. Configure personal profile
one-skills profile activate personal
one-skills profile add-agent claude-code --profile personal
one-skills profile add-agent codex --profile personal

# Exclude work servers from personal profile
one-skills profile exclude-server claude-code jira-server --profile personal

# 5. Sync to active profile
one-skills sync

# 6. Switch contexts
one-skills profile activate work
one-skills sync

How It Works

  1. Central Storage: Skills, rules, and MCP configs are stored once in ~/.one-skills/
  2. Profiles: Define which agents and MCP servers are active for different contexts
  3. Symlinks: Skills and rules are symlinked from central storage to each agent's directory
  4. MCP Rendering: MCP configs are rendered per-agent based on profile settings
  5. Sync Tracking: Each agent tracks when it was last synced (visible in profile show)

Configuration Files

All configuration is stored in ~/.one-skills/:

  • config.json - Skills and rules registry
  • mcp.json - MCP servers and transports
  • profiles.json - Profile configurations
  • skills/ - Skill directories
  • rules/ - Rule files

Paths are stored using ~/ for portability across machines.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

one_skills_manager-1.8.1.tar.gz (81.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

one_skills_manager-1.8.1-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

Details for the file one_skills_manager-1.8.1.tar.gz.

File metadata

  • Download URL: one_skills_manager-1.8.1.tar.gz
  • Upload date:
  • Size: 81.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for one_skills_manager-1.8.1.tar.gz
Algorithm Hash digest
SHA256 e0f8cb8fbd5e43fa3bf930e0ed2949280b74a67f89b561376f38b5ae40e53841
MD5 a4ab141645bf3a44738c5729a0dff9f2
BLAKE2b-256 edf850224bad3213347629e3543cc5531ceb16a6d46aca91a17582e5bd4bc86b

See more details on using hashes here.

Provenance

The following attestation bundles were made for one_skills_manager-1.8.1.tar.gz:

Publisher: publish.yaml on timmyb824/one-skills-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file one_skills_manager-1.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for one_skills_manager-1.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5d1b9c6e8b3d736f013dd86b40db5f14a48d94cbb5ab3f591c35c57e173f3e73
MD5 3584fa2eaa524a7b99a488fdfd09c51f
BLAKE2b-256 22f48dca4350377862946cdf5e73e0fb180dedf4c58b7e34e7f00ad41f111f9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for one_skills_manager-1.8.1-py3-none-any.whl:

Publisher: publish.yaml on timmyb824/one-skills-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page