Skillporter

io.github.Shanmukh-l33t由 GitHub 帳號 Shanmukh-l33t 發布v3.0.1更新於 Nov 14, 2026

Read-only MCP server that audits agent skills in one workspace: drift, duplicates, harness support.

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助手在單一工作區內稽核、掃描、安裝並同步 19 種編碼代理框架的 AI 代理技能。

可以做什麼
  • 診斷與偵測:檢查技能可達性、失效的符號連結、SHA-256 內容漂移與規格符合度,並列出已安裝的代理框架。
  • 掃描與檢視:對技能目錄執行靜態安全與供應鏈檢查,並檢視本機或遠端技能套件的結構與中繼資料。
  • 框架對照:回傳 19 種支援代理框架的相容性矩陣。
  • 安裝與管理技能:從目錄、壓縮檔或儲存庫加入技能,安裝本機技能,在框架間同步並移除(寫入類工具,需明確開啟)。
適用情境
當你為多個編碼代理維護 SKILL.md 技能套件,希望由助手檢查漂移、重複或失效連結,在安裝前審查技能,或從同一工作區把某個技能部署到所有框架時使用。
執行需求
以本機 stdio 程序方式從 npm 套件執行,需要 Node.js。它作用於一個工作區目錄,並拒絕工作區根目錄以外的路徑。寫入類工具預設關閉,需透過 SKILLPORTER_MCP_ALLOW_WRITES=1 環境變數或 --allow-writes 參數開啟。未宣告需要帳號或 API 金鑰。
安裝前請注意
寫入類工具會在代理框架目錄中安裝、同步與刪除技能檔案,請審慎開啟。靜態掃描只能找出已知的危險模式,掃描通過不代表技能在執行時安全,新型提示注入或動態取得的酬載仍可能操控代理。技能會載入代理的系統內容,且可能執行隨附腳本,安裝前請審查來源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Skillporter,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README


[Skillporter]

ONE SKILL. EVERY AGENT.

The package manager, dependency resolver, and supply-chain security layer for AI agent skills.

[PyPI v3.0.1] [npm v3.0.1] [CI status] [19 harnesses supported] [Zero runtime dependencies] [MIT License]

Website · Documentation · Install · 19 Harnesses · Security · MCP Server · FAQ · Blog


Skillporter

Skillporter, is the package manager for AI agent skills. It is a zero runtime dependency CLI and MCP server that installs, pins, audits, synchronizes and rolls back SKILL.md packages across 19 AI coding and autonomous agent harnesses, including Claude Code, OpenAI Codex, Cursor, Windsurf, GitHub Copilot, Gemini CLI, Hermes Agent, OpenHands and Goose.

bash
uvx skillporter diagnose .                        # run the CLI without installing it (uv)pipx install skillporter                          # install the CLI globally (PEP 668 safe)npx @shanmukhdheekonda/skillporter diagnose .     # run the CLI without installing it (npm)

[Skillporter 3.0 CLI and multi-harness bridge fan-out]


Why skills need a package manager

Every AI agent harness reads skills from a different directory (.claude/skills/, .agents/skills/, .github/skills/, .windsurf/skills/, $HERMES_HOME/skills/, ~/.openclaw/skills/), and each one resolves them differently.

  • A skill placed in .claude/skills/ is invisible to OpenAI Codex, Gemini CLI, Zed, and Windsurf.
  • Hand-rolled symlinks break inside Docker builds, CI checkouts, git worktree, and Windows checkouts.
  • Manual copies across directories silently drift out of sync across teammates, while naive removals from shared .agents/skills/ directories break other agents.
  • An upstream skill can change under you between two sync runs, and an agent loads whatever it finds into its system context.

Skillporter treats skills the way a package manager treats dependencies: one manifest, one lockfile, one resolution step, and one install path that every harness can read.

What Skillporter does

CapabilityHow it works
Universal source resolutionFetches from GitHub shorthand (owner/repo), Git URLs, local paths, or archives without executing bundled scripts.
Shared-path deduplicationWrites .agents/skills/<skill> once across 8 primary harnesses and preserves it during single-harness remove.
Static supply-chain assessmentInspects Python ASTs, JS/TS, Markdown instructions, and bounded Base64/Hex/PowerShell payloads before any file is written.
Deterministic lockfilesPins resolved_commit, tree_hash, per-file SHA-256 file_hashes, and pin_state in skillporter.lock.
Crash-safe transactionsStages multi-harness installs behind a write-ahead journal.json and snapshots replaced copies into .skillporter/backups/.
Hardened MCP serverExposes read-only workspace inspection over JSON-RPC 2.0 stdio (--allow-writes required for mutations).

Installation

bash
# Option A: run immediately without a global install, via uvx or npxuvx skillporter diagnose .npx @shanmukhdheekonda/skillporter diagnose .
# Option B: install from PyPI with uv or pipx (PEP 668 safe)uv tool install skillporterpipx install skillporter
# Option C: standalone verified release installer (Linux and macOS)# Verifies SHA256SUMS.txt and the GitHub OIDC provenance attestation# (`gh attestation verify`) or an out-of-band pinned digest# (`SKILLPORTER_SHA256=<64-hex>`). Never falls back to mutable `main`.curl -fsSL https://github.com/Shanmukh-l33t/skillporter/releases/download/v3.0.1/install.sh -o install.shSKILLPORTER_VERSION=v3.0.1 sh install.sh

Python 3.9 or newer is required, and the standalone installer checks for it before unpacking anything. The package ships with no runtime dependencies, so there is nothing else to audit or pin.

Quick start (60 seconds)

bash
# 1. Run the zero residue interactive demo (heals broken symlinks and SHA-256 drift in a temp dir)skillporter demo
# 2. Install a skill across harnesses (validates spec, runs static security scan, deduplicates .agents/skills)skillporter add anthropics/skills --skill pdf --harness all
# 3. Inspect and security scan skills (text, JSON, or SARIF 2.1.0 for GitHub Code Scanning)skillporter scan .skillporter scan . --format sarif > skillporter.sarif
# 4. Initialize manifest, synchronize transitive dependencies, and verify the reproducible lockfile in CIskillporter initskillporter syncskillporter lock --check
# 5. Diagnose reachability, audit provenance and override logs, or roll back to a verified snapshotskillporter diagnose .skillporter audit .skillporter rollback pdf

Supply chain security

Agent skills are untrusted supply chain packages: an agent loads SKILL.md directly into its system context and executes bundled scripts. Skillporter is built around that assumption rather than around convenience.

  • Silent skill drift and unpinned upstream changes: skillporter.lock pins resolved Git commits, SHA-256 tree digests, and per-file hashes, blocking unexpected upstream mutations during sync.
  • Known static supply chain hazards: inspects Python ASTs, JavaScript and TypeScript scripts, Markdown instructions, and bounded Base64, Hex and PowerShell payloads for embedded credentials, prompt injection override patterns, hidden Unicode and comments, shell pipe RCE, unsafe deserialization, symlink escapes, and multi-file staged execution before installation.
  • Unsafe archive and filesystem operations: blocks Zip-Slip and Tar-Slip inputs (../, ..\, drive paths, Windows reserved device names, Unicode NFC/NFD collisions, symlinks, special files, decompression bombs) and stages installs transactionally with crash recovery journals.
  • Unscoped agent filesystem writes: constrains skillporter mcp to the workspace root with default-deny write permissions (SKILLPORTER_MCP_ALLOW_WRITES=1 opt-in) and separates conflict overrides (--force) from security risk overrides (--allow-risky).

Important security note: static scanning (STATIC_SECURITY_ASSESSMENT) inspects files for known dangerous patterns and structural anomalies. A clean static scan is not proof that a skill is safe at runtime. Novel natural-language prompt injections or dynamically fetched payloads can still steer an agent at runtime.

How the scan is graded and where its limits are is documented in SECURITY.md.

Lockfile, sync and rollback

skillporter.lock is the reproducible record of what is installed:

  • Pins resolved_commit, tree_hash, per-file SHA-256 file_hashes, pin_state (PINNED_COMMIT, PINNED_CONTENT or UNPINNED_MUTABLE), dependencies, and adapter version.
  • skillporter sync honors locked Git commit SHAs even when upstream branches move, and rejects unexpected upstream content changes without --force.
  • skillporter lock --check verifies the lockfile in CI and fails on mismatch.
  • skillporter audit reports installed origins, lockfile drift, and .skillporter/audit.jsonl events, so any risk override is visible after the fact.

Rollback is transactional rather than a re-download. Replacements are staged in .skillporter/tmp/txn-* behind a write-ahead journal.json, prior versions are snapshotted into .skillporter/backups/, and skillporter rollback restores a skill together with its dependency graph from SHA-256 verified backups.

Harness support matrix (19 harnesses)

Skillporter distinguishes support status (NATIVE, COMPATIBLE, ADAPTED) from verification evidence (RUNTIME_VERIFIED, INTEGRATION_TESTED, FIXTURE_TESTED, DOCUMENTATION_VERIFIED). An adapter is never marked RUNTIME_VERIFIED unless it has been tested against a live harness runtime.

HarnessProject PathUser / Global PathSupportVerification Evidence
Hermes Agent.hermes/skills/$HERMES_HOME/skills/<cat>/<name>NATIVERUNTIME_VERIFIED
Claude Code.claude/skills/~/.claude/skills/NATIVEINTEGRATION_TESTED
OpenAI Codex.agents/skills/~/.agents/skills/NATIVEINTEGRATION_TESTED
Cursor.agents/skills/, .cursor/skills/ (+2 compat)~/.agents/skills/, ~/.cursor/skills/NATIVEINTEGRATION_TESTED
GitHub Copilot.github/skills/ (+2 compat)~/.copilot/skills/ (+1 compat)NATIVEFIXTURE_TESTED
Gemini CLI.agents/skills/, .gemini/skills/~/.agents/skills/, ~/.gemini/skills/NATIVEFIXTURE_TESTED
Google Antigravity.agents/skills/ (+1 compat)~/.gemini/config/skills/NATIVEFIXTURE_TESTED
Windsurf.windsurf/skills/~/.codeium/windsurf/skills/NATIVEFIXTURE_TESTED
Cline.cline/skills/ (+3 compat)~/.cline/skills/NATIVEFIXTURE_TESTED
Roo Code.roo/skills/ (+1 compat)~/.roo/skills/ (+1 compat)NATIVEFIXTURE_TESTED
OpenCode.opencode/skills/ (+2 compat)~/.config/opencode/skills/ (+2 compat)NATIVEFIXTURE_TESTED
Zed.agents/skills/~/.agents/skills/NATIVEFIXTURE_TESTED
Replit Agent.agents/skills/ (+1 compat)~/.config/agents/skills/NATIVEFIXTURE_TESTED
JetBrains Junie.junie/skills/ (+1 compat)~/.junie/skills/ (+1 compat)NATIVEFIXTURE_TESTED
OpenClaw.openclaw/skills/ (+2 compat)~/.openclaw/skills/ (+1 compat)NATIVEFIXTURE_TESTED
OpenHands.agents/skills/ (+2 compat)~/.agents/skills/ (+1 compat)NATIVEFIXTURE_TESTED
Goose.agents/skills/ (+1 compat)~/.agents/skills/ (+1 compat)NATIVEFIXTURE_TESTED
Continue.continue/skills/ (.continue/rules/ adapted)~/.continue/skills/COMPATIBLEFIXTURE_TESTED
Aider / AiderDesk.aider-desk/skills/ (CONVENTIONS.md adapted)~/.aider-desk/skills/ADAPTEDFIXTURE_TESTED

Each harness record ships its detection rules, path precedence, and vendor documentation reference. skillporter matrix prints the same matrix from the installed CLI, and skillporter detect reports which harnesses exist on the current machine.

MCP server

skillporter mcp runs a hardened JSON-RPC 2.0 Model Context Protocol server so an agent can query a workspace instead of shelling out. It exposes nine tools (diagnose, detect, scan, inspect, matrix, add, install, sync, remove), is read-only by default, refuses paths outside the workspace root, and requires an explicit opt-in before any write tool becomes available:

bash
skillporter mcp                                   # read-onlyskillporter mcp --allow-writes                    # enable write toolsSKILLPORTER_MCP_ALLOW_WRITES=1 skillporter mcp    # same, via the environment

Client setup for Claude Code and other MCP clients is covered in the MCP guide.

CLI reference

CommandDescription
skillporter add <source>Resolve, validate, security scan, and install skills (--dry-run, --allow-risky, --force, --json)
skillporter install <dir>Security scan and install a local skill directory (--dry-run, --allow-risky, --force, --json)
skillporter remove <skill>Safely remove a skill while preserving shared .agents/skills/ still owned by other harnesses (--dry-run, --json)
skillporter sync [path]Resolve pinned and transitive dependencies, verify lockfile hashes, and synchronize harnesses (--dry-run, --json)
skillporter lock [path] [--check]Write or CI verify (--check) the deterministic skillporter.lock
skillporter scan [path]Run static security and supply chain assessment (--format text|json|sarif, --max-risk-score)
skillporter audit [path]Inspect installed skill origins, security posture, lockfile drift, and .skillporter/audit.jsonl events
skillporter diagnose [path]Check reachability, broken symlinks, SHA-256 content drift, duplicates, and spec compliance
skillporter doctor [path] [--fix]Comprehensive workspace health check and tamper safe repair (--dry-run, --json)
skillporter status [path]Unified workspace manifest, lockfile, per harness installed and locked state, and drift summary
skillporter update [skill]Fetch, security gate, back up, and update tracked skills (--dry-run, --allow-risky, --json)
skillporter rollback <skill>Atomically restore a skill and its dependency graph from SHA-256 verified .skillporter/backups/ (--dry-run, --json)
skillporter validate [path]Validate SKILL.md against the Agent Skills specification (--format text|json|sarif)
skillporter inspect <source>Inspect local or remote package structure, security posture, and adapted rule previews
skillporter graph [path]Render or export (--json) the topological skill dependency graph
skillporter sandbox run <skill>[Experimental] Opt in, non-mutating dry run behavioral trace
skillporter explain <finding>Explain any diagnostic, lockfile, validation, or sec-* finding code with remediation commands
skillporter search / info / pack / publishSearch the catalog, inspect metadata, build a deterministic .tar.gz with provenance.json, or publish
skillporter detect / matrix / demoDetect installed harnesses, print the 19 harness matrix, or run the zero residue demo
skillporter mcpRun the hardened JSON-RPC 2.0 MCP server (read-only by default; --allow-writes opt in)

Exit codes

  • 0: clean, or the operation succeeded
  • 1: policy or diagnostic finding (drift, broken symlink, spec error, security block, lockfile mismatch, cycle or conflict)
  • 2: usage or runtime error (invalid argument, unknown harness, missing path)

Documentation

  • Website: overview, interactive terminal demo, and live 19-harness matrix.
  • Documentation home: the full guide set, from installation through lockfiles, scanning, and CI.
  • Install: installation channels and provenance verification options.
  • FAQ: frequently asked questions.
  • Blog: engineering articles and release write-ups.

The same guides are versioned in the repository under docs/ if you prefer to read them on GitHub.

Contributing

Issues and pull requests are welcome. The short version:

  • Open an issue before starting a large architectural change.
  • New harness adapters must link the vendor documentation that proves the skill discovery path, and must not claim a verification level that has not been tested.
  • The core library stays on the Python standard library, with zero runtime dependencies.

Full setup instructions, the required local quality gates, and the adapter checklist are in CONTRIBUTING.md. To report a vulnerability, follow SECURITY.md instead of opening a public issue.

License

MIT. See LICENSE.

來源:README.md,提交 68adae8

工具

9

skillporter_diagnose

[READ] Diagnose Agent Skill reachability, broken symlinks, SHA-256 content drift, and spec compliance across AI agent harnesses in the workspace.

輸入參數pathscope

skillporter_detect

[READ] Detect which AI coding and autonomous agent harnesses are installed or active.

輸入參數path

skillporter_scan

[READ] Run static security and supply-chain checks on a skill directory (secrets, prompt injection, AST/JS/encoded analysis, symlink escapes).

輸入參數path必填

skillporter_inspect

[READ] Inspect a workspace or remote skill package structure, metadata, and security posture.

輸入參數source必填

skillporter_matrix

[READ] Return the compatibility matrix of all 19 supported AI agent harnesses.

無需輸入參數。

skillporter_add

[WRITE] Install skills from a workspace directory, archive, or repository into target harnesses (requires SKILLPORTER_MCP_ALLOW_WRITES=1).

輸入參數pathforcesource必填strategyharnesses必填accept_risk

skillporter_install

[WRITE] Install a local workspace skill directory into target harnesses (requires SKILLPORTER_MCP_ALLOW_WRITES=1).

輸入參數pathforceskill必填strategyharnesses必填accept_risk

skillporter_sync

[WRITE] Synchronize workspace skills across target harnesses (requires SKILLPORTER_MCP_ALLOW_WRITES=1).

輸入參數pathforcestrategyharnessesaccept_risk

skillporter_remove

[WRITE] Remove an installed skill from target harnesses in the workspace (requires SKILLPORTER_MCP_ALLOW_WRITES=1).

輸入參數pathskill必填harnesses必填

版本歷史

1
  1. v3.0.1最新Nov 14, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分