From f2dbf34263b1446cd576fd54b3259d11a35dcf10 Mon Sep 17 00:00:00 2001 From: Kodjo Sossouvi Date: Mon, 13 Apr 2026 22:07:34 +0200 Subject: [PATCH] Added README.md --- README.md | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..2bfacc8 --- /dev/null +++ b/README.md @@ -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 ` + +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.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 +```