Skip to main content

CLI for managing agent skills across IDE integrations

Project description

OASR

Open Agent Skill Registry — Register, sync, and reuse AI agent skills across IDEs with a single source of truth.


For a non-exhaustive list of highlighted features, see FEATURES.md.

The Problem

You've built useful skills for your AI coding assistant. They work great in Cursor. Now you want them in Windsurf. And Claude. And Copilot.

Each tool expects skills in different locations with different formats:

  • Cursor: .cursor/commands/
  • Windsurf: .windsurf/workflows/
  • Claude: .claude/commands/
  • Copilot: .github/prompts/

So you copy your skills everywhere. Then you improve one. Now the copies are stale. You forget which version is current. Some break silently. This is skill drift.

The Solution

ASR keeps your skills in a registry, syncs local and remote sources, and generates thin adapters for each IDE. It also lets you execute skills safely with policy profiles.

Key capabilities:

  • Register skills once (local folders or GitHub/GitLab URLs)
  • Sync and track drift across sources
  • Generate IDE adapters and run skills via oasr exec
┌─────────────────────────────────────────────────────────┐
│           Your Skills (canonical source)                │
│           ~/skills/git-commit/SKILL.md                  │
│           ~/skills/code-review/SKILL.md                 │
└───────────────────────┬─────────────────────────────────┘
                        │
                        ▼
                   oasr adapter
                        │
        ┌───────────────┼──────────────┐...───────────────┐
        ▼               ▼              ▼                  ▼
   .cursor/        .windsurf/       .claude/           <vendor>/
   commands/       workflows/       commands/           skills/

No copying. No drift. One source of truth.


Quick Example

oasr registry list screenshot List all registered skills with metadata

# Register local skills
oasr registry add ~/skills/git-commit
oasr registry add ~/skills/code-review

# List registered skills
oasr registry list

# Register remote skills from GitHub/GitLab
oasr registry add https://github.com/user/skills-repo/tree/main/my-skill
oasr registry add https://gitlab.com/org/project/tree/main/cool-skill

# Generate adapters for a project
oasr adapter --output-dir ~/projects/my-app

# Result:
# ~/projects/my-app/.cursor/commands/git-commit.md
# ~/projects/my-app/.windsurf/workflows/git-commit.md
# ~/projects/my-app/.claude/commands/git-commit.md

Remote Skills

oasr registry add remote screenshot Register skills directly from GitHub or GitLab

ASR supports registering skills directly from GitHub and GitLab repositories:

# Add a skill from GitHub
oasr registry add https://github.com/user/repo/tree/main/skills/my-skill

# Add a skill from GitLab
oasr registry add https://gitlab.com/org/project/tree/dev/cool-skill

# Sync remote skills (check for updates)
oasr registry sync

# Use remote skills
oasr clone my-skill -d ./output

Authentication (optional, for private repos and higher rate limits):

export GITHUB_TOKEN=ghp_your_token_here
export GITLAB_TOKEN=glpat_your_token_here

Remote skills are fetched on-demand during adapter and clone operations. The registry stores the URL, and oasr registry sync checks if the remote source has changed.


Shell Completions

OASR supports intelligent tab completion for Bash, Zsh, Fish, and PowerShell:

# Install for your current shell
oasr completion install

# Install for a specific shell (shortcut)
oasr completion zsh --install

# Now try it:
oasr <TAB>          # Complete commands
oasr info <TAB>     # Complete skill names
oasr exec --<TAB>   # Complete flags

Completions are dynamic — skill names, agents, and profiles are fetched live from your registry.

See oasr completion --help for details.


JSON Output

Use --json for legacy JSON output. Use --json v2 for the structured envelope with version, success, command, and error fields.


Accessibility

  • Disable ANSI colors: NO_COLOR=1 oasr ... or OASR_NO_COLOR=1 oasr ...
  • Use ASCII symbols: OASR_NO_UNICODE=1 oasr ...

Documentation


Supported oasr adapter IDEs

IDE Adapter Output
Cursor cursor .cursor/commands/*.md
Windsurf windsurf .windsurf/workflows/*.md
Codex codex .codex/skills/*.md
GitHub Copilot copilot .github/prompts/*.prompt.md
Claude Code claude .claude/commands/*.md

License

See LICENSE.

Screenshots

Command Examples

Command Screenshot
oasr registry list registry-list
oasr registry add (local) registry-add
oasr registry add (remote) registry-add-remote
oasr registry sync registry-sync
oasr registry prune registry-prune
oasr registry (validate) registry
oasr find find
oasr adapter adapter
oasr clone clone-help
oasr diff diff
oasr sync sync
oasr exec exec
oasr profile profile
oasr completion completion
oasr config config
oasr validate validate

See docs/.images/ for all screenshots.

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

oasr-1.1.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

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

oasr-1.1.1-py3-none-any.whl (114.1 kB view details)

Uploaded Python 3

File details

Details for the file oasr-1.1.1.tar.gz.

File metadata

  • Download URL: oasr-1.1.1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oasr-1.1.1.tar.gz
Algorithm Hash digest
SHA256 d09f4e8df8030863eba1ded804b4f097ad2adbd1881b4809cc5c23b8479002dc
MD5 ba2a51deb779d871eb224c962a39b187
BLAKE2b-256 c8d330713165221ca6c1658b68007d1babff1236b5d9e98afffc4cfc926e0968

See more details on using hashes here.

Provenance

The following attestation bundles were made for oasr-1.1.1.tar.gz:

Publisher: publish.yml on JordanGunn/oasr

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

File details

Details for the file oasr-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: oasr-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 114.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oasr-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5fa34017c5675eeb0c331264b1fc05636e4f7e9ea194c189d1b0c9fe2c79744d
MD5 98743b4147610b975ef4e7ca117d3a19
BLAKE2b-256 34ed1cdca6cbd8cc1d24a2eef302da1cebaf2f50bf5303c7fc423cea0b329a51

See more details on using hashes here.

Provenance

The following attestation bundles were made for oasr-1.1.1-py3-none-any.whl:

Publisher: publish.yml on JordanGunn/oasr

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