Skip to main content

SKILLPORTER

ONE SKILL. EVERY AGENT.

Install, manage, validate, security-scan, and synchronize AI-agent skills across the entire agent ecosystem.

Python 3.9+ Harnesses: 19 Verified Tests: 115 Passing Zero Dependencies License: MIT

Skillporter Terminal Demonstration

Every AI coding and autonomous agent harness reads skills from a different directory:

Harness Project Path Personal / Global Path Support
Claude Code .claude/skills/ ~/.claude/skills/ NATIVE
OpenAI Codex .agents/skills/ ~/.agents/skills/ NATIVE
Cursor .agents/skills/, .cursor/skills/ (+2 compat) ~/.agents/skills/, ~/.cursor/skills/ NATIVE
GitHub Copilot .github/skills/, .agents/skills/ (+1 compat) ~/.copilot/skills/, ~/.agents/skills/ NATIVE
Gemini CLI .agents/skills/, .gemini/skills/ ~/.agents/skills/, ~/.gemini/skills/ NATIVE
Google Antigravity .agents/skills/ (+1 compat) ~/.gemini/config/skills/ NATIVE
Windsurf .windsurf/skills/ ~/.codeium/windsurf/skills/ NATIVE
Cline .cline/skills/, .clinerules/skills/ (+2 compat) ~/.cline/skills/ NATIVE
Roo Code .roo/skills/, .agents/skills/ ~/.roo/skills/, ~/.agents/skills/ NATIVE
OpenCode .opencode/skills/, .agents/skills/ (+1 compat) ~/.config/opencode/skills/ (+2 compat) NATIVE
Zed .agents/skills/ ~/.agents/skills/ NATIVE
Replit Agent .agents/skills/, .claude/skills/ ~/.config/agents/skills/ NATIVE
JetBrains Junie .junie/skills/, .agents/skills/ ~/.junie/skills/, ~/.agents/skills/ NATIVE
Hermes Agent .hermes/skills/ $HERMES_HOME/skills/<category>/<name> NATIVE
OpenClaw .openclaw/skills/, skills/, .agents/skills/ ~/.openclaw/skills/, ~/.agents/skills/ NATIVE
OpenHands .agents/skills/, .openhands/skills/ ~/.agents/skills/, ~/.openhands/skills/ NATIVE
Goose .agents/skills/, .goose/skills/ ~/.agents/skills/, ~/.config/goose/skills/ NATIVE
Continue .continue/skills/ (.continue/rules/ adapted) ~/.continue/skills/ COMPATIBLE
Aider / AiderDesk .aider-desk/skills/ (CONVENTIONS.md adapted) ~/.aider-desk/skills/ ADAPTED

A skill authored for Claude Code in .claude/skills/ is silently invisible to OpenAI Codex, Gemini CLI, Zed, and Windsurf. Hand-rolled symlinks break in Docker build contexts, git worktree, and Windows checkouts — while manual copies silently drift out of sync.

Skillporter solves the entire lifecycle: one command resolves skills from GitHub or local paths, runs a static security and supply-chain scan, deduplicates shared destinations (.agents/skills), tracks ownership and SHA-256 content hashes, detects content drift across copies, and supports deterministic lockfiles (skillporter.lock) and transactional rollback.


One-Command Installation & Zero-Install Execution

# 1. Run immediately via uvx from PyPI (zero install)
uvx skillporter diagnose .

# 2. Install globally via uv tool or pipx from PyPI
uv tool install skillporter
pipx install skillporter

# 3. Run via npx from npm (or directly from GitHub)
npx @shanmukhdheekonda/skillporter diagnose .
npx github:Shanmukh-l33t/skillporter diagnose .

# 4. Install globally via curl (Linux/macOS — bypasses PEP 668 externally-managed-environment)
curl -fsSL https://raw.githubusercontent.com/Shanmukh-l33t/skillporter/main/install.sh | sh

Native Agent Integration (MCP Server)

Register Skillporter directly inside Claude Code, Codex, Cursor, Windsurf, or Hermes so your agent can diagnose, scan, and synchronize skills on command:

claude mcp add skillporter -- uvx skillporter mcp
codex mcp add skillporter -- uvx skillporter mcp

60-Second Quick Start

# 1. Detect which AI agent harnesses are installed or active in your repo
skillporter detect .

# 2. Install a skill from GitHub across all detected harnesses (validates + security-scans first)
skillporter add anthropics/skills --skill pdf --harness all

# 3. Diagnose reachability, broken symlinks, duplicate loading, and SHA-256 content drift
skillporter diagnose .

# 4. Run a static supply-chain security scan on any skill directory
skillporter scan .

# 5. Initialize skillporter.yaml, synchronize teammates, and pin skillporter.lock
skillporter init
skillporter sync
skillporter lock

Real-World Evidence: Why Skillporter Exists

Built after auditing the exact failure modes reported across upstream agent ecosystems:

  • agentskills/agentskills#15 (130+ comments) — "Claude is looking at .claude/skills/ and GitHub Copilot is looking at .github/skills/… create symlinks that match the specific folder of each harness"
  • thn-inc/claude-tweaks#3000 — skill resolution misses .agents/skills when the symlink is absent or inside a git worktree
  • openclaw/openclaw#14593 — symlinked skill installs fail inside Docker build contexts
  • squne121/loop-protocol — replacing broken Codex skill symlinks with a fail-closed .agents/skills bridge

Key Features

1. Universal Source Resolution (skillporter add)

Install skills from:

  • GitHub shorthand: skillporter add owner/repo or skillporter add owner/repo/skills/my-skill@v1.2.0
  • GitHub tree URLs: skillporter add https://github.com/owner/repo/tree/main/skills/my-skill
  • Git URLs & commit SHAs: skillporter add https://example.com/skills.git --ref ceb64c6
  • ZIP & tar.gz archives: skillporter add ./bundle.zip (hardened against Zip-Slip and symlink escapes)
  • Registry slugs: skillporter add registry:anthropics/skills
  • Local directories: skillporter add ./authoring/my-skill --harness claude-code --harness codex

2. SHA-256 Content-Drift & Duplicate Detection (skillporter diagnose)

Competing tools copy files once and report success forever. Skillporter hashes every file inside every installed skill copy (SHA-256).

  • Drift: If you edit .claude/skills/my-skill/SKILL.md and forget to update .agents/skills/my-skill/SKILL.md, skillporter diagnose flags DRIFT with the exact diverging hashes and exits 1.
  • Duplicate loading: If a skill is installed in both .agents/skills and .cursor/skills, diagnose flags DUPLICATE so Cursor does not load the same skill twice.

3. Static Security & Supply-Chain Protection (skillporter scan)

Agent skills contain natural-language instructions and executable scripts. Before installing any skill, Skillporter inspects all Markdown and script files for:

  • Embedded secrets & private keys (sec-private-key, sec-aws-key, sec-github-token, sec-api-key)
  • Prompt injection & covert overrides (sec-prompt-override, sec-hidden-unicode, sec-html-comment-instruction)
  • Dangerous execution patterns (sec-curl-pipe-sh, sec-reverse-shell, sec-credential-harvest, sec-dynamic-eval)
  • Filesystem escapes (sec-symlink-escape, sec-path-traversal, sec-binary-artifact)

Transparency note: Static scanning inspects files for known dangerous patterns and structural escapes; it does not guarantee runtime safety.

4. Manifest (skillporter.yaml), Lockfile (skillporter.lock) & Rollback

Declare your project's skills in skillporter.yaml:

schema_version: 1
project: acme-platform
scope: project
strategy: copy
security_policy: HIGH
harnesses:
  - claude-code
  - codex
  - cursor
  - github-copilot
skills:
  - name: skillporter
    source: Shanmukh-l33t/skillporter/skills/skillporter
    ref: main

Run skillporter sync to reconcile the workspace, skillporter lock to pin exact git commits and SHA-256 tree hashes in skillporter.lock, and skillporter rollback <skill> to restore the previous snapshot from .skillporter/backups/ if an update introduces a regression.


CLI Reference

Command Description
skillporter add <source> Resolve, validate, security-scan, and install skills from GitHub, Git, archive, or local path
skillporter diagnose [path] Check reachability, broken symlinks, SHA-256 content drift, duplicates, and spec compliance
skillporter doctor [path] [--fix] Run full workspace health check and optionally auto-repair missing/drifted installs
skillporter scan [path] Run static supply-chain and prompt-injection security assessment
skillporter validate [path] Validate SKILL.md frontmatter and body against the Agent Skills spec
skillporter inspect <source> Inspect a local or remote skill package (files, scripts, security, adapted previews) before installing
skillporter detect [path] Detect which AI agent harnesses are installed on the machine or active in the project
skillporter matrix Print the 19-harness compatibility and verification matrix (--json supported)
skillporter init [path] Generate skillporter.yaml from discovered skills and active harnesses
skillporter sync [path] Reconcile workspace skills across target harnesses and update skillporter.lock
skillporter lock [path] Write deterministic skillporter.lock with SHA-256 content tree hashes
skillporter list [path] List managed and discovered skills with ownership, hashes, and active harnesses
skillporter update [skill] Update tracked skills from their recorded upstream source
skillporter rollback <skill> Restore a skill to its previous backup snapshot in .skillporter/backups/
skillporter install <path> Low-level local directory installer (--strategy copy|symlink, --adapt, --force)
skillporter remove <skill> Remove a skill from target harnesses (uninstall alias supported)
skillporter search [query] Search the seed and configured skill registry catalog
skillporter info <target> Show detailed metadata for a harness adapter or registry package
skillporter pack [path] Build an immutable .tar.gz release archive and provenance.json checksum manifest
skillporter mcp Start the zero-dependency stdio JSON-RPC 2.0 MCP server

Exit Codes (CI Contract)

  • 0 — Clean / all checks passed
  • 1 — Findings detected (missing reachability, content drift, broken symlink, spec error, or security policy block)
  • 2 — Usage or runtime error (invalid path, unknown harness, unsafe overwrite refusal)

GitHub Action Integration

Validate SKILL.md compliance, scan for security risks, and verify harness reachability automatically on every pull request:

name: Skillporter Check
on: [push, pull_request]
jobs:
  skills:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: Shanmukh-l33t/skillporter@v2
        with:
          command: validate
          path: .
          run-security-scan: "true"

Documentation


License

MIT — see LICENSE.

Metadata

Release files for skillporter 2.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skillporter 2.0.3
File Size Uploaded Provenance Actions
skillporter-2.0.3.tar.gz 96.5 kB Without provenance Details for skillporter-2.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for skillporter 2.0.3
File Interpreter ABI Platform Actions
skillporter-2.0.3-py3-none-any.whl Python 3 none any Details for skillporter-2.0.3-py3-none-any.whl

Total release size: 172.7 kB

Release files / skillporter-2.0.3.tar.gz

Download URL skillporter-2.0.3.tar.gz
Size 96.5 kB
Tags Source
SHA-256 checksum
How to use checksums
67c943ecb2e1ed626c82d78c8505940efdac0be849cd431f775ec443898c2fbf
BLAKE2b-256 checksum
How to use checksums
1d3f949dd341e8c4e9a3fa8e24508c0630dd4d7d964deda1e02f03ee64bf60b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Release files / skillporter-2.0.3-py3-none-any.whl

Download URL skillporter-2.0.3-py3-none-any.whl
Size 76.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c68a6efad12c85f9fc22d6e8c6161daed4d302458f4bb73f566c4675988b3a8
BLAKE2b-256 checksum
How to use checksums
9ade96c458679faef876c26d82bbbbc2635a38d6e975c44da837acc0cc62b263
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Security for skillporter 2.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page