{"id":37695714,"url":"https://github.com/runkids/skillshare","last_synced_at":"2026-03-06T17:07:20.220Z","repository":{"id":332558521,"uuid":"1134144797","full_name":"runkids/skillshare","owner":"runkids","description":"📚 Sync skills across all AI CLI tools with one command and simplify team sharing. Supporting Claude Code, OpenClaw, OpenCode \u0026 more","archived":false,"fork":false,"pushed_at":"2026-03-01T19:30:26.000Z","size":74762,"stargazers_count":673,"open_issues_count":4,"forks_count":41,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-01T19:49:14.111Z","etag":null,"topics":["ai","antigravity","claude-code","cli","codex","copilot","cross-machine-sync","cursor","developer-tools","gemini","go","openclaw","opencode","skills","skills-audit","skills-management","skills-manager","skills-ui","skillshare","team-management"],"latest_commit_sha":null,"homepage":"https://skillshare.runkids.cc","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/runkids.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["runkids"]}},"created_at":"2026-01-14T10:07:46.000Z","updated_at":"2026-03-01T18:52:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"7bd9798b-9276-41fa-abd0-e5f6116401db","html_url":"https://github.com/runkids/skillshare","commit_stats":null,"previous_names":["runkids/skillshare"],"tags_count":100,"template":false,"template_full_name":null,"purl":"pkg:github/runkids/skillshare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runkids%2Fskillshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runkids%2Fskillshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runkids%2Fskillshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runkids%2Fskillshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/runkids","download_url":"https://codeload.github.com/runkids/skillshare/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runkids%2Fskillshare/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30186781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","antigravity","claude-code","cli","codex","copilot","cross-machine-sync","cursor","developer-tools","gemini","go","openclaw","opencode","skills","skills-audit","skills-management","skills-manager","skills-ui","skillshare","team-management"],"created_at":"2026-01-16T12:48:34.245Z","updated_at":"2026-03-06T17:07:17.893Z","avatar_url":"https://github.com/runkids.png","language":"Go","readme":"\u003cp align=\"center\" style=\"margin-bottom: 0;\"\u003e\n  \u003cimg src=\".github/assets/logo.png\" alt=\"skillshare\" width=\"280\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\" style=\"margin-top: 0.5rem; margin-bottom: 0.5rem;\"\u003eskillshare\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://skillshare.runkids.cc\"\u003e\u003cimg src=\"https://img.shields.io/badge/Website-skillshare.runkids.cc-blue?logo=docusaurus\" alt=\"Website\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"go.mod\"\u003e\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/runkids/skillshare\" alt=\"Go Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/runkids/skillshare/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/runkids/skillshare\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-blue\" alt=\"Platform\"\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/runkids/skillshare\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/runkids/skillshare\" alt=\"Go Report Card\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://deepwiki.com/runkids/skillshare\"\u003e\u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/runkids/skillshare/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/runkids/skillshare?style=social\" alt=\"Star on GitHub\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eOne source of truth for AI CLI skills. Sync everywhere with one command — from personal to organization-wide.\u003c/strong\u003e\u003cbr\u003e\n  Claude Code, OpenClaw, OpenCode \u0026 45+ more.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\".github/assets/demo.gif\" alt=\"skillshare demo\" width=\"960\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://skillshare.runkids.cc\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"#installation\"\u003eInstall\u003c/a\u003e •\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"#cli-and-ui-preview\"\u003eScreenshots\u003c/a\u003e •\n  \u003ca href=\"#common-workflows\"\u003eCommands\u003c/a\u003e •\n  \u003ca href=\"#web-dashboard\"\u003eWeb UI\u003c/a\u003e •\n  \u003ca href=\"#project-skills-per-repo\"\u003eProject Skills\u003c/a\u003e •\n  \u003ca href=\"#organization-skills-tracked-repo\"\u003eOrganization Skills\u003c/a\u003e •\n  \u003ca href=\"#skill-hub\"\u003eHub\u003c/a\u003e •\n  \u003ca href=\"https://skillshare.runkids.cc/docs\"\u003eDocs\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e [!NOTE]\n\u003e **Recent Updates**\n\u003e | Version | Highlights |\n\u003e |---------|------------|\n\u003e | [0.12.0](https://github.com/runkids/skillshare/releases/tag/v0.12.0) | Skill Hub — generate indexes, search private catalogs with `--hub` |\n\u003e | [0.11.0](https://github.com/runkids/skillshare/releases/tag/v0.11.0) | Security Audit, Operation Log, Trash, Update Preview — full audit trail + safety net |\n\u003e | [0.10.0](https://github.com/runkids/skillshare/releases/tag/v0.10.0) | Web Dashboard — visual skill management via `skillshare ui` |\n\n## Why skillshare\n\nStop managing skills tool-by-tool.\n`skillshare` gives you one shared skill source and pushes it everywhere your AI agents work.\n\n- **One command, everywhere**: Sync to Claude Code, Codex, Cursor, OpenCode, and more with `skillshare sync`.\n- **Safe by default**: Non-destructive merge mode keeps CLI-local skills intact while sharing team skills.\n- **True bidirectional flow**: Pull skills back from targets with `collect` so improvements never get trapped in one tool.\n- **Cross-machine ready**: Git-native `push`/`pull` keeps all your devices aligned.\n- **Team + project friendly**: Use global skills for personal workflows and `.skillshare/` for repo-scoped collaboration.\n- **Folder-friendly**: Organize skills in folders (e.g. `frontend/react/`) — auto-flattened to flat names on sync.\n- **Privacy-first**: No central registry, no telemetry, no install tracking. Your skill setup stays entirely local.\n- **Built-in security audit**: Scan skills for prompt injection, data exfiltration, and other threats before they reach your AI agent.\n- **Visual control panel**: Open `skillshare ui` for browsing, install, target management, and sync status in one place.\n\n## Comparison\n\nskillshare uses a **declarative** approach: define your targets once in `config.yaml`, then `sync` handles everything — no prompts, no repeated selections.\n\n| | Imperative (install-per-command) | Declarative (skillshare) |\n|---|---|---|\n| **Config** | No config; prompts every run | `config.yaml` — set once |\n| **Agent selection** | Interactive prompt each time | Defined in config |\n| **Install method** | Choose per operation | `sync_mode` in config |\n| **Source of truth** | Skills copied independently | Single source → symlinks |\n| **Remove one agent's skill** | May break other agents' symlinks | Only that target's symlink removed |\n| **New machine setup** | Re-run every install manually | `git clone` config + `sync` |\n| **Project-scoped skills** | Global lock file only | `init -p` for per-repo skills |\n| **Cross-machine sync** | Manual | Built-in `push` / `pull` |\n| **Bidirectional** | Install only | `collect` pulls changes back |\n| **Security audit** | None | Built-in `audit` + auto-scan on install |\n| **Web dashboard** | None | `skillshare ui` |\n| **Runtime dependency** | Node.js + npm | None (single Go binary) |\n\n\u003e [!TIP]\n\u003e Coming from another tool? See the [Migration Guide](https://skillshare.runkids.cc/docs/guides/migration) and [detailed comparison](https://skillshare.runkids.cc/docs/guides/comparison).\n\n## How It Works\n- macOS / Linux: `~/.config/skillshare/skills/`\n- Windows: `%USERPROFILE%\\.config\\skillshare\\skills\\`\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                       Source Directory                      │\n│                 ~/.config/skillshare/skills/                │\n└─────────────────────────────────────────────────────────────┘\n                              │ sync\n              ┌───────────────┼───────────────┐\n              ▼               ▼               ▼\n       ┌───────────┐   ┌───────────┐   ┌───────────┐\n       │  Claude   │   │  OpenCode │   │ OpenClaw  │   ...\n       └───────────┘   └───────────┘   └───────────┘\n```\n\n| Platform | Source Path | Link Type |\n|----------|-------------|-----------|\n| macOS/Linux | `~/.config/skillshare/skills/` | Symlinks |\n| Windows | `%USERPROFILE%\\.config\\skillshare\\skills\\` | NTFS Junctions (no admin required) |\n\n\u003e [!TIP]\n\u003e Skills can be organized in folders (e.g. `frontend/react/react-best-practices/`) — they're auto-flattened on sync. See the [Organizing Guide](https://skillshare.runkids.cc/docs/guides/organizing-skills) and [runkids/my-skills](https://github.com/runkids/my-skills) for a real-world example.\n\n\n## CLI and UI Preview\n\n### CLI\n\n| Sync | Install + Audit |\n|---|---|\n| \u003cimg src=\".github/assets/sync-collision-demo.png\" alt=\"CLI sync output\" width=\"480\" height=\"280\" style=\"object-fit: cover;\"\u003e | \u003cimg src=\".github/assets/install-with-audio-demo.png\" alt=\"CLI install with security audit\" width=\"480\" height=\"280\" style=\"object-fit: cover;\"\u003e |\n\n### UI\n\n| Dashboard | Security Audit |\n|---|---|\n| \u003cimg src=\".github/assets/ui/web-dashboard-demo.png\" alt=\"Web dashboard overview\" width=\"480\" height=\"280\" style=\"object-fit: cover;\"\u003e | \u003cimg src=\".github/assets/ui/web-audit-demo.png\" alt=\"Web UI security audit\" width=\"480\" height=\"280\" style=\"object-fit: cover;\"\u003e |\n\n## Installation\n\n### macOS / Linux\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/runkids/skillshare/main/install.sh | sh\n```\n\n### Windows PowerShell\n\n```powershell\nirm https://raw.githubusercontent.com/runkids/skillshare/main/install.ps1 | iex\n```\n\n### Homebrew\n\n```bash\nbrew install runkids/tap/skillshare\n```\n\n### Shorthand (Optional)\n\nAdd an alias to your shell config (`~/.zshrc` or `~/.bashrc`):\n\n```bash\nalias ss='skillshare'\n```\n\n### Uninstall\n\n```bash\n# macOS/Linux\nbrew uninstall skillshare               # Homebrew\nsudo rm /usr/local/bin/skillshare       # Manual install\nrm -rf ~/.config/skillshare             # Config \u0026 data (optional)\n\n# Windows (PowerShell)\nRemove-Item \"$env:LOCALAPPDATA\\Programs\\skillshare\" -Recurse -Force\nRemove-Item \"$env:USERPROFILE\\.config\\skillshare\" -Recurse -Force  # optional\n```\n\n---\n\n## Quick Start\n\n```bash\nskillshare init --dry-run  # Preview setup\nskillshare init            # Create config, source, and detected targets\nskillshare sync            # Sync skills to all targets\n```\n\n## Common Workflows\n\n### Daily Commands\n\n| Command | What it does |\n|---------|---------------|\n| `skillshare list` | List skills in source |\n| `skillshare status` | Show sync status for all targets |\n| `skillshare sync` | Sync source skills to all targets |\n| `skillshare diff` | Preview differences before syncing |\n| `skillshare doctor` | Diagnose config/environment issues |\n| `skillshare new \u003cname\u003e` | Create a new skill template |\n| `skillshare install \u003csource\u003e` | Install skill from local path or git source |\n| `skillshare collect [target]` | Import skills from target(s) back to source |\n| `skillshare update \u003cname\u003e` | Update one installed skill/repo |\n| `skillshare update --all` | Update all tracked repos |\n| `skillshare uninstall \u003cname\u003e` | Remove skill from source |\n| `skillshare audit [name]` | Scan skills for security threats |\n| `skillshare log` | View operations and audit logs for debugging and compliance |\n| `skillshare search \u003cquery\u003e` | Search installable skills on GitHub |\n| `skillshare search --hub [url]` | Search a hub index (default: skillshare-hub) |\n| `skillshare hub index` | Generate a hub index from installed skills |\n\n`skillshare search` requires GitHub auth (`gh auth login`) or `GITHUB_TOKEN`. The `--hub` flag searches a JSON index instead — without a URL it defaults to the community [skillshare-hub](https://github.com/runkids/skillshare-hub).\n\n### Target Management\n\n```bash\nskillshare target list\nskillshare target add my-tool ~/.my-tool/skills\nskillshare target remove my-tool\n```\n\n### Backup and Restore\n\n```bash\nskillshare backup\nskillshare backup --list\nskillshare restore \u003ctarget\u003e\n```\n\n### Cross-machine Git Sync\n\n```bash\nskillshare push\nskillshare pull\n```\n\n### Project Skills (Per Repo)\n\n```bash\nskillshare init -p\nskillshare new my-skill -p\nskillshare install anthropics/skills/skills/pdf -p\nskillshare install github.com/team/skills --track -p\nskillshare sync\n```\n\nProject mode keeps skills in `.skillshare/skills/` so they can be committed and shared with the repo. The `config.yaml` acts as a **portable skill manifest** — anyone who clones the repo (team members, open source contributors, community users) can reproduce the exact same AI skill setup:\n\n```bash\ngit clone github.com/your/project \u0026\u0026 cd project\nskillshare install -p    # Installs all skills listed in config (tracked repos included)\nskillshare sync\n```\n\n### Organization Skills (Tracked Repo)\n\n```bash\nskillshare install github.com/team/skills --track\nskillshare update _team-skills\nskillshare sync\n```\n\n## Skill Hub\n\nBuild a searchable skill catalog for your team or community — no GitHub API required.\n\n```bash\nskillshare hub index                                   # Generate index from installed skills\nskillshare search --hub                                # Browse community skillshare-hub\nskillshare search react --hub                          # Search \"react\" in skillshare-hub\nskillshare search --hub ./skillshare-hub.json react    # Search custom local index\nskillshare search --hub https://example.com/hub.json   # Search custom remote index\n```\n\nThe generated `skillshare-hub.json` follows a versioned schema (`schemaVersion: 1`) with support for tags and multi-skill repos. Host it on any static server, internal CDN, or commit it alongside your skills repo.\n\nThe community hub lives at [runkids/skillshare-hub](https://github.com/runkids/skillshare-hub) — open a PR to submit your skills. CI automatically runs `skillshare audit` on every submission to ensure quality and security.\n\n\u003e [!TIP]\n\u003e See the [Hub Index Guide](https://skillshare.runkids.cc/docs/guides/hub-index) for schema details and hosting options.\n\n## Web Dashboard\n\n```bash\nskillshare ui            # Global mode\nskillshare ui -p         # Project mode (manages .skillshare/)\n```\n\n- Opens `http://127.0.0.1:19420`\n- Requires `skillshare init` (or `init -p` for project mode) first\n- Auto-detects project mode when `.skillshare/config.yaml` exists\n- Runs from the same CLI binary (no extra frontend setup)\n\nFor containers/remote hosts:\n\n```bash\nskillshare ui --host 0.0.0.0 --no-open\n```\n\nThen access: `http://localhost:19420`\n\n## Security Audit\n\nScan installed skills for prompt injection, data exfiltration, credential theft, and other threats before they reach your AI agent.\n\n```bash\nskillshare audit            # Scan all skills\nskillshare audit \u003cname\u003e     # Scan a specific skill\n```\n\nSkills are also scanned automatically during `skillshare install`.\n\n- `skillshare install` runs an audit by default.\n- Block threshold is configurable with `audit.block_threshold` (`CRITICAL` default; also supports `HIGH`, `MEDIUM`, `LOW`, `INFO`).\n- `audit.block_threshold` only controls blocking level; it does **not** disable scanning.\n- There is no config flag to permanently skip audit. To bypass a single install, use `--skip-audit`.\n- Use `--force` to override blocked installs while still running audit (findings remain visible).\n- Use `--skip-audit` to bypass scanning for a single install command.\n- If both are set, `--skip-audit` takes precedence in practice (audit is not executed).\n\n\u003e [!TIP]\n\u003e See the [audit command reference](https://skillshare.runkids.cc/docs/commands/audit) for the full list of detection patterns.\n\n## Docker\n\nUse Docker for reproducible testing, interactive playgrounds, and production deployment.\n\n### Test pipeline\n\n```bash\nmake test-docker               # offline sandbox (build + unit + integration)\nmake test-docker-online        # optional network-dependent tests\n```\n\n### Interactive playground\n\n```bash\nmake sandbox-up                # start persistent playground\nmake sandbox-shell             # enter playground shell\nmake sandbox-status            # check container status\nmake sandbox-down              # stop and remove\n```\n\nInside the playground:\n\n```bash\nskillshare --help\nskillshare init --dry-run\nskillshare ui --host 0.0.0.0 --no-open\n\n# Project mode (pre-configured demo project)\ncd ~/demo-project\nskillshare status\nskillshare-ui-p          # project mode dashboard on port 19420\n```\n\n### Dev profile\n\n```bash\n# With Go installed locally (single command):\nmake ui-dev                    # Go API server + Vite HMR together\n\n# Without Go (API in Docker):\nmake dev-docker-up             # Go API server in Docker (:19420)\ncd ui \u0026\u0026 pnpm run dev          # Vite dev server on host (:5173)\nmake dev-docker-down           # stop when done\n```\n\n### Production image\n\n```bash\nmake docker-build              # build production image\nmake docker-build-multiarch    # build for amd64 + arm64\n```\n\n## Development\n\n```bash\ngo build -o bin/skillshare ./cmd/skillshare\ngo test ./...\ngo vet ./...\ngofmt -w ./cmd ./internal ./tests\n```\n\nUsing `make`:\n\n```bash\nmake build\nmake test\nmake lint\nmake fmt\nmake check\n```\n\nUI development helpers:\n\n```bash\nmake ui-install\nmake ui-build\nmake ui-dev\nmake build-all\n```\n\n## Documentation\n\n- Docs home: https://skillshare.runkids.cc/docs/\n- Commands: https://skillshare.runkids.cc/docs/commands\n- Guides: https://skillshare.runkids.cc/docs/guides/\n- Troubleshooting: https://skillshare.runkids.cc/docs/troubleshooting/faq\n\n## Contributing\n\n```bash\ngit clone https://github.com/runkids/skillshare.git\ncd skillshare\ngo build -o bin/skillshare ./cmd/skillshare\ngo test ./...\n```\n\nIssues and PRs are welcome: https://github.com/runkids/skillshare/issues\n\n---\n\nIf you find skillshare useful, consider giving it a ⭐\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=runkids/skillshare\u0026type=date\u0026legend=top-left)](https://www.star-history.com/#runkids/skillshare\u0026type=date\u0026legend=top-left)\n\n---\n\n## License\n\nMIT\n","funding_links":["https://github.com/sponsors/runkids"],"categories":["What is this?","Community Tools","Go","Skills und Indizes"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunkids%2Fskillshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frunkids%2Fskillshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunkids%2Fskillshare/lists"}