118 lines
2.1 KiB
Markdown
118 lines
2.1 KiB
Markdown
# myclaude
|
|
|
|
CLI tool to manage Claude Code skills across projects.
|
|
|
|
Instead of copy-pasting skills from one project to another, `myclaude` syncs them from a central git repository.
|
|
|
|
## Requirements
|
|
|
|
- Python 3.12+
|
|
- Git with SSH key configured for your Gitea instance
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
pip install gitpython typer
|
|
pip install -e .
|
|
myclaude --install-completion # optional: enable shell autocompletion
|
|
```
|
|
|
|
## Central repository structure
|
|
|
|
Your Gitea repository must follow this layout:
|
|
|
|
```
|
|
your-repo/
|
|
├── CLAUDE.md
|
|
└── skills/
|
|
├── skill_name_1/
|
|
│ └── SKILL.md
|
|
└── skill_name_2/
|
|
└── SKILL.md
|
|
```
|
|
|
|
## Commands
|
|
|
|
### `myclaude init <project_dir>`
|
|
|
|
Copies `CLAUDE.md` and skills from the central repo into the target project.
|
|
|
|
```bash
|
|
# First use: provide the repo URL (saved to ~/.myclaude/config.json)
|
|
myclaude init . --repo git@gitea.example.com:user/claude-skills.git
|
|
|
|
# Subsequent uses
|
|
myclaude init .
|
|
|
|
# Install specific skills only
|
|
myclaude init . --skill skill_name_1 skill_name_2
|
|
|
|
# Overwrite existing .claude/skills/
|
|
myclaude init . --force
|
|
|
|
# Keep the temporary clone for inspection (debug)
|
|
myclaude init . --keep-tmp
|
|
```
|
|
|
|
The project will receive:
|
|
- `./CLAUDE.md`
|
|
- `./.claude/skills/<skill_name>/SKILL.md`
|
|
|
|
### `myclaude push`
|
|
|
|
Pushes local skills back to the central repository.
|
|
|
|
```bash
|
|
# Push all local skills
|
|
myclaude push
|
|
|
|
# Push specific skills only
|
|
myclaude push --skill skill_name_1 skill_name_2
|
|
|
|
# Also push CLAUDE.md
|
|
myclaude push --claude-md
|
|
```
|
|
|
|
### `myclaude status`
|
|
|
|
Compares local skills with the central repository.
|
|
|
|
```bash
|
|
myclaude status
|
|
```
|
|
|
|
Example output:
|
|
|
|
```
|
|
Installed:
|
|
[ok] skill_name_1
|
|
Local only (not pushed):
|
|
[+] skill_name_2
|
|
Remote only (not installed):
|
|
[-] skill_name_3
|
|
```
|
|
|
|
### `myclaude list`
|
|
|
|
Lists all skills available in the central repository.
|
|
|
|
```bash
|
|
myclaude list
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The repo URL is stored in `~/.myclaude/config.json` after the first `init --repo` call.
|
|
|
|
```json
|
|
{
|
|
"repo_url": "git@gitea.example.com:user/claude-skills.git"
|
|
}
|
|
```
|
|
|
|
## Running tests
|
|
|
|
```bash
|
|
pytest
|
|
```
|