Skip to content

Add installer to register tools as Claude Code slash commands#1

Open
bartTC wants to merge 1 commit into
cppalliance:masterfrom
bartTC:claude-installer
Open

Add installer to register tools as Claude Code slash commands#1
bartTC wants to merge 1 commit into
cppalliance:masterfrom
bartTC:claude-installer

Conversation

@bartTC
Copy link
Copy Markdown

@bartTC bartTC commented May 14, 2026

Adds a curl-able installer that registers the markdown tools in this repo as user-level Claude Code slash commands under ~/.claude/commands/. After install, each tool is invoked as /<name> from any Claude Code session.

Three new files:

  • install.sh — downloads the repo tarball, lists what it will install (with descriptions extracted live from each tool's frontmatter or first prose line), prompts for confirmation, then copies into ~/.claude/commands/. Re-running updates everything to the latest version.
  • uninstall.sh — thin wrapper that runs install.sh in UNINSTALL=1 mode. Removes only files this installer placed; anything else under ~/.claude/commands/ is left alone.
  • INSTALL.md — install/uninstall/options docs with sample output.

Why

Until now, using these tools meant copy-pasting markdown prompts into a session or symlinking by hand. A first-class installer makes the toolkit feel like the product it is:

  • One command to install or update. curl … | bash, re-run to refresh.
  • Discoverable. Tools show up in the / menu, namespaced (/voice:voice-of-william-gibson, /tutor:tutor-pydantic-v2-modeling) so they don't crowd the top level.
  • Transparent. The installer prints the full list with descriptions before asking to proceed, and marks each entry + new or ↻ overwrite (update) so it's clear what will change.
  • Reversible. A matching uninstall script removes the same set, surgically, without touching the user's own commands.

Single source of truth: the file list lives in install.sh; uninstall.sh is a 3-line wrapper, so there's no drift risk.

How to use

Install (or update):

curl -fsSL https://raw.githubusercontent.com/cppalliance/tools-public/master/install.sh | bash

Uninstall:

curl -fsSL https://raw.githubusercontent.com/cppalliance/tools-public/master/uninstall.sh | bash

Env knobs (set before the curl pipe):

Env var Effect
INSTALL_YES=1 Skip the [y/N] confirmation
DEST=/path Install elsewhere than ~/.claude/commands
LOCAL_SRC=/path Use a local checkout instead of downloading
UNINSTALL=1 Run install.sh in uninstall mode

Sample output

tools-public — Claude Code slash commands
==========================================

A curated set of prompt-based "tools" from github.com/cppalliance/tools-public.
Each command is a markdown prompt invoked via /<name> inside Claude Code,
covering code review, document tightening, plan refinement, persona voices,
adaptive interviews, tutorials, and more.

Mode:   install
Target: /Users/martin/.claude/commands
Source: downloading cppalliance/tools-public@master...

Will install 37 commands to /Users/martin/.claude/commands

  + /advocatus                        Advocatus Diaboli, examiner, appointed adversary of the cause
  + /code-review                      Language-agnostic code review with adversarial challenge
  + /refine-plan                      Refine any plan through numbering, audit, and compression
  + /tighten                          Compress a document to half its length while preserving voice
  + /voice                            A tool that builds tools.
  + /voice:voice-of-william-gibson    On load: you are William Gibson.
  + /interview                        Generate role-specific adaptive interview protocols.
  + /tutor                            Curriculum architect, scout of the world's best teaching
  ... (29 more)

Legend:  + new   ↻ overwrite (update)

Proceed with install? [y/N] y
Installed 37 commands to /Users/martin/.claude/commands.
Restart Claude Code to pick them up.

On re-run, the + markers become for files already present.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant