Skip to main content

Manual Install

If you'd rather see exactly what runs and don't want to use the one-liner script, you can run the install script manually from a clone of the repository.

# Clone the repo
git clone https://github.com/JuliusBrussee/caveman.git
cd caveman

# Preview every command the installer would run
node cli/install.js --dry-run --all

# Inspect the agent matrix
node cli/install.js --list

# Install for everything detected
node cli/install.js --all

Useful Flags

FlagWhat
--allPlugin + hooks + statusline + per-repo rule files in $PWD. (MCP shrink is opt-in — see --with-mcp-shrink below.)
--minimalPlugin / extension only. No hooks, no MCP shrink, no per-repo rules.
--only <id>One agent only. Repeatable: --only claude --only cursor.
--dry-runPrint every command. Write nothing.
--with-initDrop always-on rule files into the current repo (.cursor/, .windsurf/, .clinerules/, .github/copilot-instructions.md, .opencode/AGENTS.md, AGENTS.md) and, if OpenClaw is on the box, append the bootstrap block to ~/.openclaw/workspace/SOUL.md.
--with-mcp-shrink="<upstream cmd>"Register caveman-shrink MCP proxy wrapping the given upstream MCP server. Off by default. A value is required — caveman-shrink is a proxy and exits immediately without one. Example: --with-mcp-shrink="npx @modelcontextprotocol/server-filesystem /tmp". The value is split on whitespace; for paths-with-spaces, install via node cli/install.js from a clone or edit ~/.claude.json after a stub install.
--no-mcp-shrinkSkip MCP-shrink registration. (Default.)
--with-hooks / --no-hooksForce-on or force-off the Claude Code hook installer. (Default: on.)
--skip-skillsDon't run the npx-skills auto-detect fallback when nothing else matched.
--config-dir <path>Claude Code config dir for hook files + settings.json. Does NOT scope claude plugin install, gemini extensions install, opencode (XDG_CONFIG_HOME), or openclaw (OPENCLAW_WORKSPACE) — those use their own paths. Default: $CLAUDE_CONFIG_DIR or ~/.claude. ~ is expanded.
--non-interactiveNever prompt; use defaults. (Auto when stdin is not a TTY.)
--no-colorDisable ANSI colors.
--listPrint full agent matrix and exit.
--forceRe-run even if already installed.
--uninstallRemove everything. See below.

Always-on Rules

For agents without a hook system (Cursor, Windsurf, Cline, Copilot, and friends), the always-on path is a static rule file. There are two ways to get these:

1. Automatically via the CLI

# Drop rule files into the current repo
node cli/install.js --with-init

2. Manual Download

# Pull the rule body straight in
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/src/rules/caveman-activate.md \
> .cursor/rules/caveman.mdc # or .windsurf/rules/caveman.md, .clinerules/caveman.md, .github/copilot-instructions.md

--with-init writes the rule into every supported per-agent location it can detect (.cursor/rules/, .windsurf/rules/, .clinerules/, .github/copilot-instructions.md, .opencode/AGENTS.md, AGENTS.md). It also installs the OpenClaw workspace bootstrap (skill folder + SOUL.md marker block) when ~/.openclaw/workspace/ exists.