Sandbox
@skill-mill/agent-skill-harbor

GitHub-native skill catalog for Claude Code teams

Agent Skill Harbor helps teams collect, publish, and audit AI agent skills across repositories. It runs as a serverless web app with a collector runtime, then commits the catalog data back to Git so the skill library stays in version control.

40 stars2 forksSvelteUpdated 5mo ago
Who it's for

Builders who want a private, shared skill catalog for Claude Code and other agents.

What it delivers

You can keep team skills organized, reviewed, and traceable without managing a separate database.

What it does

Skill cataloging

Collects and publishes agent skills from multiple repositories into one catalog.

Governance labels

Lets you mark skills as recommended, discouraged, or prohibited.

Provenance tracking

Tracks copied or installed skills back to their source.

Skill scanning

Includes `builtin.audit-skill-scanner` to inspect collected skills for safety issues.

Slack summaries

Includes `builtin.notify-slack` to send post-collection updates.

GitHub-native storage

Stores collected data in `data/` and commits it back through GitHub Actions.

How to get it

  1. 1Daily project operations are exposed through the generated root scripts
    pnpm collect
    pnpm post-collect
    pnpm dev
    pnpm build
    pnpm preview
  2. 2Optional runtime files are scaffolded with harbor setup
    harbor setup example-user-defined-plugin
    harbor setup builtin.audit-promptfoo-security
    harbor setup builtin.audit-skill-scanner

README

en | ja

Agent Skill Harbor

Agent Skill Harbor is a skill management platform for teams and organizations.

It helps teams collect, share, audit, and publish AI agent skills across repositories, with provenance tracking, governance support, and safety checks built in.

It is designed to be serverless, DB-less, and Git- and GitHub-native, because skills are mostly text artifacts that already fit naturally in Git.

Screenshots

Card ViewList View
Card ViewList View

Stats View

Stats View

Graph View

Graph View

Features

  • Skill cataloging: collect and publish AI agent skills across repositories
  • Governance: mark skills as recommended, discouraged, or prohibited
  • Provenance: track copied or installed skills back to their origin
  • Skill analysis: builtin.audit-skill-scanner analyzes collected skills and audits safety
  • Slack notification: builtin.notify-slack sends post-collection summaries

Technical Highlights

  • Serverless: the catalog UI is a prerendered static web app
  • DB-less & Git-native: collected data is stored in data/ as YAML/JSON and committed back to Git
  • GitHub-native: data is updated with GitHub Actions and hosted on GitHub Pages

Demo site:

Quick Start

npx agent-skill-harbor init my-skill-harbor
cd my-skill-harbor

pnpm install
pnpm install --dir collector

# edit .env and set GH_ORG

gh auth login && GH_TOKEN=$(gh auth token) pnpm collect
# Or edit .env and set GH_TOKEN, then run:
# pnpm collect
pnpm dev

pnpm install installs the root package (agent-skill-harbor) for CLI + web.
pnpm install --dir collector installs the collector runtime used by pnpm collect and pnpm post-collect.

CLI Commands

When installed, the main CLI is available as harbor or agent-skill-harbor.

CommandDescription
harbor init [dir]Scaffold a new project
harbor setup <plugin-id>Scaffold optional plugin runtime files

Daily project operations are exposed through the generated root scripts:

pnpm collect
pnpm post-collect
pnpm dev
pnpm build
pnpm preview

Organization Setup

  1. Create a new project with npx agent-skill-harbor init.
  2. Push it to a private repository in your organization.
  3. Configure GH_TOKEN as a GitHub Actions secret.
  4. Enable GitHub Pages or Cloudflare Pages.
  5. Run the generated CollectSkills workflow once.

The generated CollectSkills workflow is a thin caller pinned to Harbor's reusable workflow at wf-v0.

Inside the reusable workflow:

  • collect installs only collector/ core dependencies and runs collection
  • post_collect restores the collected artifact, installs collector/ core dependencies again, then installs only enabled optional plugin manifests
  • the final data/ directory is committed back to the repository

This keeps GitHub collection and optional post-collect dependencies structurally separate.

See Organization Setup for details.

Project Structure

my-skill-harbor/
├── .github/workflows/
│
├── config/
│   ├── harbor.yaml         # General application settings
│   └── governance.yaml     # Additional governance settings
│
├── collector/              # Batch processing for skill collection
│   ├── package.json
│   └── plugins/
│       └── <plugin-id>/    # Per-plugin manifests and code
│
├── data/
│   ├── assets/
│   ├── collects.yaml       # History of skill collection runs
│   ├── plugins/            # Outputs produced by each plugin
│   ├── skills.yaml         # Index of collected skills
│   └── skills/             # Cached files for collected skills
│
├── .env
│
├── guide/
│
└── package.json            # Manifest for the web UI

Notes:

  • root package.json depends only on agent-skill-harbor
  • collector/package.json is a Harbor-managed runtime manifest for agent-skill-harbor-collector
  • optional plugin manifests and example user-defined plugins live under collector/plugins/<plugin-id>/

Post-Collect Plugins

Built-in plugins are enabled from config/harbor.yaml.

Examples:

  • builtin.detect-drift
  • builtin.notify-slack
  • builtin.audit-promptfoo-security
  • builtin.audit-skill-scanner

Optional runtime files are scaffolded with harbor setup:

harbor setup example-user-defined-plugin
harbor setup builtin.audit-promptfoo-security
harbor setup builtin.audit-skill-scanner

Generated files go under collector/plugins/<plugin-id>/.

See Post-Collect Plugins.

Documentation

FAQ

Is it okay to store this much data in Git?

Yes. Harbor mainly stores text data such as YAML, JSON, Markdown, and cached skill files. It does not assume large multimedia assets like images or videos, and the total volume is usually limited enough that Git's compression works well.

GitHub's official documentation says repositories should ideally stay under 1 GB, and keeping them under 5 GB is strongly recommended. In Harbor's case, reaching that scale is highly unlikely unless you intentionally store large non-text assets or collect an unusually large amount of unrelated data.

See GitHub Docs: About large files on GitHub

You say this is for teams and organizations. Can I use it personally?

Yes, absolutely. You can use Harbor to collect, manage, and catalog skills across your own repositories.

The main caveat is hosting. For personal use, GitHub Pages cannot be private, so you would likely want to host the generated site somewhere else you control securely. If there is enough demand, the documentation and workflows can be expanded to support that path more explicitly.

Or you may simply decide to publish your own skill catalog openly and not worry about that. That is entirely up to you.

Can I add custom properties to the YAML frontmatter in SKILL.md?

Yes. The Agent Skills specification is shared across agents, but there is no restriction on YAML frontmatter keys that are not defined by the standard. In practice, agents often carry their own custom properties, and unknown properties are generally ignored.

Also, the _from property used by Harbor typically consumes only around 10 to 20 tokens. Even if a project loads dozens of skills, the impact is usually negligible.

License

MIT

Files in the repo

Repository payload29 top-level entries
  • .claude
  • .github
  • .storybook
  • bin
  • collector
  • docs
  • scripts
  • shared
  • src
  • static
  • templates
  • .gitignore
  • .prettierignore
  • .prettierrc
  • CHANGELOG_ja.md
  • CHANGELOG.md
  • components.json
  • eslint.config.js
  • LICENSE
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README_ja.md
  • README.md
  • svelte.config.js
  • tsconfig.cli.json
  • tsconfig.json
  • tsup.config.ts
  • vite.config.ts

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k