Added README.md
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user