{"id":47608023,"url":"https://github.com/nebari-dev/skillsctl","last_synced_at":"2026-04-01T19:39:22.957Z","repository":{"id":345708753,"uuid":"1178685073","full_name":"nebari-dev/skillsctl","owner":"nebari-dev","description":"CLI and registry server for discovering, installing, and publishing Claude Code skills","archived":false,"fork":false,"pushed_at":"2026-03-20T14:59:25.000Z","size":2218,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-21T01:40:31.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nebari-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-11T09:08:59.000Z","updated_at":"2026-03-20T14:59:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nebari-dev/skillsctl","commit_stats":null,"previous_names":["nebari-dev/skillsctl"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nebari-dev/skillsctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nebari-dev%2Fskillsctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nebari-dev%2Fskillsctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nebari-dev%2Fskillsctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nebari-dev%2Fskillsctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nebari-dev","download_url":"https://codeload.github.com/nebari-dev/skillsctl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nebari-dev%2Fskillsctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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":[],"created_at":"2026-04-01T19:39:22.183Z","updated_at":"2026-04-01T19:39:22.946Z","avatar_url":"https://github.com/nebari-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# skillsctl\n\nA CLI tool and backend registry for discovering, installing, and publishing [Claude Code](https://claude.ai/code) skills.\n\n**[Documentation](https://skillsctl.dev)** | **[Quick Start](#quick-start)** | **[Install](#install)**\n\n## Install\n\n### Homebrew (macOS/Linux)\n\n    brew tap nebari-dev/tap\n    brew install skillsctl\n\n### Shell script (macOS/Linux)\n\n    curl -sSL https://raw.githubusercontent.com/nebari-dev/skillsctl/main/install.sh | bash\n\n### Go\n\n    go install github.com/nebari-dev/skillsctl/cli@latest\n\n### From source\n\n    git clone https://github.com/nebari-dev/skillsctl.git\n    cd skillsctl \u0026\u0026 make build-cli\n\n## Quick Start\n\nStart the backend locally (no external dependencies):\n\n    DEV_MODE=true go run ./backend/cmd/server\n    # Server starts on :8080, auth disabled (dev mode requires DEV_MODE=true)\n    # Health check: curl localhost:8080/healthz\n\nUse the CLI:\n\n    skillsctl config init                  # first-time setup\n    skillsctl explore                      # browse skills\n    skillsctl explore show \u003cname\u003e          # skill details\n    skillsctl install \u003cname\u003e               # install latest version\n    skillsctl install \u003cname\u003e@1.0.0         # install specific version\n    skillsctl publish --name my-skill \\\n      --version 1.0.0 \\\n      --description \"My skill\" \\\n      --file ./skill.md                   # publish a skill\n    skillsctl auth login                   # authenticate (production servers)\n\n## Architecture\n\n| Component | Technology |\n|-----------|-----------|\n| API | ConnectRPC (gRPC-compatible, serves JSON/HTTP) |\n| Database | SQLite (modernc.org/sqlite, pure Go, WAL mode) |\n| Skill storage | Content stored as BLOB in SQLite |\n| Auth | Generic OIDC token validation (works with Keycloak, Okta, Dex) |\n| CLI auth | RFC 8628 device flow, zero-config (discovers settings from server) |\n\n## Project Structure\n\n    .\n    ├── proto/              # Protobuf service definitions\n    ├── gen/                # Generated code (committed, never hand-edited)\n    ├── backend/            # ConnectRPC server\n    │   ├── cmd/server/     # Entrypoint\n    │   └── internal/       # Server internals (auth, registry, store)\n    ├── cli/                # Cobra CLI\n    │   ├── cmd/            # CLI commands\n    │   └── internal/       # CLI internals (api client, auth, config)\n    ├── skills/             # Dogfood skills shipped with the project\n    ├── examples/           # Deployment examples (ArgoCD, etc.)\n    └── docs/               # Documentation\n\n## Development\n\n### Prerequisites\n\n- Go 1.25+\n- [buf](https://buf.build/docs/installation) (protobuf tooling)\n- [golangci-lint](https://golangci-lint.run/welcome/install/)\n\n### Commands\n\n    make test             # all tests with race detector\n    make test-backend     # backend tests only\n    make test-cli         # CLI tests only\n    make lint             # golangci-lint\n    make proto            # buf lint + generate\n    make build-cli        # builds ./skillsctl\n    make build-backend    # builds ./skillsctl-server\n\n### Proto Changes\n\n1. Edit `.proto` files in `proto/skillsctl/v1/`\n2. Run `make proto` to lint and regenerate\n3. Verify with `git diff --exit-code gen/` (CI checks for drift)\n\n### Database Migrations\n\nMigrations use [goose](https://github.com/pressly/goose) and live in `backend/internal/store/sqlite/migrations/`. The server runs migrations automatically on startup.\n\n## License\n\nSee [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnebari-dev%2Fskillsctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnebari-dev%2Fskillsctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnebari-dev%2Fskillsctl/lists"}