/add-custom
Add a custom module repository (company or personal) to claude-code-setup.
$ npx -y skills add b33eep/claude-code-setup --agent claude-codeShips with claude-code-setup. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/add-custom
Context preview
What this command does when you run it.
Add a custom module repository (company or personal) to claude-code-setup.
Command definition
add-custom.mdAdd Custom Modules
Add a custom module repository (company or personal) to claude-code-setup.
Usage
/add-custom <git-url>
Tasks
1. **Validate URL format**
- Accept: `git@...` or `https://...`
- Reject: plain `http://` (insecure)
- If invalid, show error and expected formats
2. **Check if ~/.claude/custom already exists**
- If exists and is a git repo:
- Get current remote: `git -C ~/.claude/custom remote get-url origin`
- If same URL: skip clone, run `git pull` instead
- If different URL: warn and abort
- If exists but NOT a git repo: warn and abort
- If doesn't exist: proceed with clone
3. **Clone repository**
git clone <url> ~/.claude/custom
4. **Read VERSION and update installed.json**
- Read `~/.claude/custom/VERSION` (if exists)
- Update `~/.claude/installed.json`:
# Only if VERSION exists and installed.json exists
if [[ -f ~/.claude/custom/VERSION ]] && [[ -f ~/.claude/installed.json ]]; then
version=$(cat ~/.claude/custom/VERSION 2>/dev/null || echo "0")
jq --arg v "$version" --arg u "<url>" \
'.custom_version = ($v | tonumber) | .custom_url = $u' \
~/.claude/installed.json > tmp && mv tmp ~/.claude/installed.json
fi- If VERSION doesn't exist, skip (legacy custom repo without versioning)
5. **Show available modules**
- Count skills in `~/.claude/custom/skills/`
- Count MCP servers in `~/.claude/custom/mcp/`
- Display: "Found X skills, Y MCP servers"
- Display: "Custom version: vX" (if VERSION exists)
6. **Hint next step**
- "Run /claude-code-setup to select and install modules"
Output
Success (new clone):
Cloned custom modules from <url>
Custom version: v1
Found:
- 3 skills
- 2 MCP servers
Run /claude-code-setup to select and install modules.
Success (existing, pulled):
Custom repo already configured. Pulled latest changes.
Custom version: v2 (was v1)
Found:
- 3 skills
- 2 MCP servers
Run /claude-code-setup to install new modules.
Error (different repo exists):
~/.claude/custom already exists with a different repository:
Current: git@other-company.com:repo.git
Requested: <url>
To switch repositories:
rm -rf ~/.claude/custom
/add-custom <url>
Error (not a git repo):
~/.claude/custom exists but is not a git repository.
To fix:
rm -rf ~/.claude/custom
/add-custom <url>
Error (auth failure):
Clone failed: Permission denied (publickey).
Your SSH key isn't configured for this repo.
Contact your admin or check your SSH setup.
Error (insecure URL):
Insecure URL rejected: http:// is not allowed.
Use HTTPS instead:
https://github.com/company/repo.git
Error (invalid URL):
Invalid Git URL. Expected format:
- git@company.com:team/repo.git
- https://github.com/company/repo.git
Read more
Add Custom Modules
Add a custom module repository (company or personal) to claude-code-setup.
Usage
/add-custom <git-url>
Tasks
1. **Validate URL format**
- Accept: `git@...` or `https://...`
- Reject: plain `http://` (insecure)
- If invalid, show error and expected formats
2. **Check if ~/.claude/custom already exists**
- If exists and is a git repo:
- Get current remote: `git -C ~/.claude/custom remote get-url origin`
- If same URL: skip clone, run `git pull` instead
- If different URL: warn and abort
- If exists but NOT a git repo: warn and abort
- If doesn't exist: proceed with clone
3. **Clone repository**
git clone <url> ~/.claude/custom
4. **Read VERSION and update installed.json**
- Read `~/.claude/custom/VERSION` (if exists)
- Update `~/.claude/installed.json`:
# Only if VERSION exists and installed.json exists
if [[ -f ~/.claude/custom/VERSION ]] && [[ -f ~/.claude/installed.json ]]; then
version=$(cat ~/.claude/custom/VERSION 2>/dev/null || echo "0")
jq --arg v "$version" --arg u "<url>" \
'.custom_version = ($v | tonumber) | .custom_url = $u' \
~/.claude/installed.json > tmp && mv tmp ~/.claude/installed.json
fi- If VERSION doesn't exist, skip (legacy custom repo without versioning)
5. **Show available modules**
- Count skills in `~/.claude/custom/skills/`
- Count MCP servers in `~/.claude/custom/mcp/`
- Display: "Found X skills, Y MCP servers"
- Display: "Custom version: vX" (if VERSION exists)
6. **Hint next step**
- "Run /claude-code-setup to select and install modules"
Output
Success (new clone):
Cloned custom modules from <url> Custom version: v1 Found: - 3 skills - 2 MCP servers Run /claude-code-setup to select and install modules.
Success (existing, pulled):
Custom repo already configured. Pulled latest changes. Custom version: v2 (was v1) Found: - 3 skills - 2 MCP servers Run /claude-code-setup to install new modules.
Error (different repo exists):
~/.claude/custom already exists with a different repository: Current: git@other-company.com:repo.git Requested: <url> To switch repositories: rm -rf ~/.claude/custom /add-custom <url>
Error (not a git repo):
~/.claude/custom exists but is not a git repository. To fix: rm -rf ~/.claude/custom /add-custom <url>
Error (auth failure):
Clone failed: Permission denied (publickey). Your SSH key isn't configured for this repo. Contact your admin or check your SSH setup.
Error (insecure URL):
Insecure URL rejected: http:// is not allowed. Use HTTPS instead: https://github.com/company/repo.git
Error (invalid URL):
Invalid Git URL. Expected format: - git@company.com:team/repo.git - https://github.com/company/repo.git
Persistent memory for Claude Code via Markdown files. ๐ Read the Documentation for detailed guides, tutorials, and reference.
Repo: b33eep/claude-code-setup
Other commands on claude-code-setup.
- /catchup
After `/clear` or new chat, understand recent changes.
Open command - /claude-code-setup
Manage your claude-code-setup installation: check status, upgrade, install, and remove modules.
Open command - /delegate
Spawn a teammate to work on a separate task independently. You continue your own work and get notified when the teammate finishes.
Open command - /design
A structured way to plan complex features before implementing. Works through: Problem โ Options โ Solution โ Stories โ Finalize.
Open command - /do-review
Trigger a code review on your recent changes using the comprehensive-review plugin. This is Step 3 in the Development Flow โ review before committing.
Open command - /init-project
Initialize a new project with CLAUDE.md and folder structure.
Open command

