diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index f500347..fe59b53 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,11 +1,8 @@ name: Build on: - push: - branches: [main] - tags: ["*"] - pull_request: - branches: [main] + release: + types: [published] jobs: build: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ef3f66d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Contributing + +## Setup + +```bash +git clone https://onixbyte.dev/onixbyte/claude-code-skill-manager.git +cd claude-code-skill-manager +cargo build +``` + +## Before submitting + +- Run `cargo fmt` to format your code +- Run `cargo clippy` and fix any warnings +- Ensure `cargo build` succeeds + +## Pull requests + +- Keep changes focused and atomic +- Write clear commit messages following the [conventional commits](https://www.conventionalcommits.org/) format +- Open PRs against the `main` branch + +## Issues + +Bug reports and feature requests are welcome. Please include steps to reproduce when reporting bugs. + +## Licence + +By contributing, you agree that your contributions will be licensed under the [MIT Licence](LICENCE). diff --git a/LICENCE b/LICENCE new file mode 100644 index 0000000..b1bacd2 --- /dev/null +++ b/LICENCE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 OnixByte + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..45bf97d --- /dev/null +++ b/README.md @@ -0,0 +1,103 @@ +# Claude Code Skill Manager (CCSM) + +A CLI tool for discovering, installing, and managing [Claude Code](https://claude.ai/code) skills from Git-based marketplace repositories. + +## Installation + +### From source + +```bash +git clone https://onixbyte.dev/onixbyte/claude-code-skill-manager.git +cd claude-code-skill-manager +cargo install --path . +``` + +### Pre-built binaries + +Download the latest binary for your platform from the [Releases](https://onixbyte.dev/onixbyte/claude-code-skill-manager/releases) page. + +## Quick start + +```bash +# Register a skill marketplace +ccsm marketplace add https://github.com/example/skills + +# Browse available skills +ccsm search + +# Install a skill +ccsm install my-skill + +# List installed skills +ccsm list + +# See details about a skill +ccsm info my-skill + +# Update installed skills +ccsm update + +# Remove a skill +ccsm remove my-skill +``` + +## Commands + +### Marketplace management + +| Command | Description | +|---|---| +| `ccsm marketplace add ` | Register a Git repository as a skill marketplace | +| `ccsm marketplace remove ` | Unregister a marketplace | +| `ccsm marketplace list` | List registered marketplaces | +| `ccsm marketplace update [name]` | Refresh marketplace manifests | + +### Skill management + +| Command | Description | +|---|---| +| `ccsm search [query]` | Search available skills across all marketplaces | +| `ccsm install ` | Install a skill (supports `--copy` and `--link` modes) | +| `ccsm list` | Show installed skills | +| `ccsm info ` | Show details about an installed skill | +| `ccsm update [name]` | Update installed skills to latest | +| `ccsm remove ` | Uninstall a skill | + +## How it works + +Skills are directories placed under `~/.claude/skills/` that Claude Code reads at startup. CCSM manages these directories by pulling skill definitions from marketplace repositories that expose a `skills.json` manifest: + +```json +{ + "name": "My Marketplace", + "skills": [ + { + "name": "example-skill", + "description": "An example Claude Code skill", + "repository": "https://github.com/user/skill-repo", + "branch": "main" + } + ] +} +``` + +## Deploy modes + +- **Copy** (default): Skill files are physically copied to `~/.claude/skills//`. +- **Link**: A symlink is created from `~/.claude/skills//` to the local store, useful for development. + +## Building + +```bash +cargo build --release +``` + +Cross-compilation targets: Linux (amd64), macOS (amd64), and Windows (amd64) via `cargo-zigbuild`. + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md). + +## Licence + +[MIT](LICENCE)