# How to Install JuliusBrussee/caveman: One-Liner, Dry-Run, and Manual Methods

> Easily install JuliusBrussee/caveman using one-liners, dry-run previews, or manual setup. Get your AI agents up and running quickly and securely.

- Repository: [Julius Brussee/caveman](https://github.com/JuliusBrussee/caveman)
- Tags: how-to-guide
- Published: 2026-07-04

---

**Install JuliusBrussee/caveman by running `curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash` to auto-detect your AI agents, or use `node bin/install.js --dry-run` to preview changes before applying them.**

JuliusBrussee/caveman is a Node.js skill that makes AI coding agents respond in token-efficient “caveman-speak.” This guide explains how to install JuliusBrussee/caveman using automated one-liners, targeted per-agent setups, or manual methods from the source repository.

## Quick Install with the One-Liner Command

The fastest way to install JuliusBrussee/caveman is the official one-liner script that auto-detects supported agents like Claude Code, Gemini CLI, opencode, and Cursor.

For macOS, Linux, WSL, or Git Bash:

```bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash

```

For Windows PowerShell 5.1+:

```powershell
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex

```

This executes [`bin/install.js`](https://github.com/JuliusBrussee/caveman/blob/main/bin/install.js) to detect agents, install plugins, copy hook scripts like [`caveman-activate.js`](https://github.com/JuliusBrussee/caveman/blob/main/caveman-activate.js), and patch configuration files such as [`settings.json`](https://github.com/JuliusBrussee/caveman/blob/main/settings.json) or [`opencode.json`](https://github.com/JuliusBrussee/caveman/blob/main/opencode.json). The process completes in approximately 30 seconds and is **idempotent**—re-running safely skips existing installations unless you use `--force`.

## Preview Changes Before Installing

Use the `--dry-run` flag to audit every file write and command before execution.

```bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh \
  | bash -s -- --dry-run

```

Output shows `would run:` prefixed lines for each action, including which binaries would be called and which JSON patches would apply, without modifying your system.

## Per-Agent Installation

Target specific agents using the `--only` flag to avoid modifying configurations for tools you do not use.

Install only for opencode:

```bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh \
  | bash -s -- --only opencode

```

Install only for Cursor:

```bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh \
  | bash -s -- --only cursor

```

View all supported agent IDs:

```bash
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh \
  | bash -s -- --list

```

Supported agents include Claude Code, Gemini CLI, opencode, OpenClaw, and 30+ others. According to the [`INSTALL.md`](https://github.com/JuliusBrussee/caveman/blob/main/INSTALL.md) matrix, some agents auto-activate while others require manual `/caveman` commands each session.

## Manual Installation from Source

Review code before execution by cloning the repository and running the Node.js installer directly.

```bash
git clone https://github.com/JuliusBrussee/caveman.git
cd caveman
node bin/install.js --dry-run --all
node bin/install.js --all

```

The `installOpencode` function in [`bin/install.js`](https://github.com/JuliusBrussee/caveman/blob/main/bin/install.js) (line 52) performs these actions:

- Creates `~/.config/opencode/plugins/caveman/` and copies [`plugin.js`](https://github.com/JuliusBrussee/caveman/blob/main/plugin.js) and [`package.json`](https://github.com/JuliusBrussee/caveman/blob/main/package.json)
- Copies command files ([`caveman.md`](https://github.com/JuliusBrussee/caveman/blob/main/caveman.md), [`caveman-commit.md`](https://github.com/JuliusBrussee/caveman/blob/main/caveman-commit.md)) to `~/.config/opencode/commands/`
- Copies sub-agent files ([`cavecrew-builder.md`](https://github.com/JuliusBrussee/caveman/blob/main/cavecrew-builder.md)) to `~/.config/opencode/agents/`
- Installs skill directories to `~/.config/opencode/skills/`
- Appends a fenced rule block to `~/.config/opencode/AGENTS.md`
- Patches `~/.config/opencode/opencode.json` with the plugin entry

All modified files are backed up with `*.bak` extensions before writing.

## Verify Your Installation

Confirm successful installation by listing detected agents and testing the toggle command.

List installed agents:

```bash
node bin/install.js --list

```

Test in Claude Code or compatible agents:

```bash
/caveman
What is a closure in JavaScript?

```

Verify the active flag file for Claude Code:

```bash
cat "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/.caveman-active"

```

This should output `full` or your selected mode. If missing, the SessionStart hook failed; re-run with `--force` or check `~/.claude/hooks/` for [`caveman-activate.js`](https://github.com/JuliusBrussee/caveman/blob/main/caveman-activate.js).

## Uninstall JuliusBrussee/caveman

Remove all Caveman components from every detected agent:

```bash
npx -y github:JuliusBrussee/caveman -- --uninstall

```

This deletes hook entries from [`settings.json`](https://github.com/JuliusBrussee/caveman/blob/main/settings.json), the opencode plugin folder, [`AGENTS.md`](https://github.com/JuliusBrussee/caveman/blob/main/AGENTS.md) blocks, Gemini extensions, Claude Code plugins, and the `.caveman-active` flag. Skills installed via `npx skills add` require manual removal using `npx skills remove caveman`.

## Summary

- **One-liner install**: Use `curl -fsSL ... | bash` for automatic detection and setup of all AI agents in 30 seconds.
- **Dry-run safety**: Append `--dry-run` to preview every file modification and command before execution.
- **Targeted installs**: Use `--only <agent>` to limit installation to specific tools like opencode or Cursor.
- **Manual control**: Clone the repository and run `node bin/install.js` with `--all` or `--dry-run` to audit the `installOpencode` logic and backup behavior.
- **Idempotent design**: Re-running the installer is safe; original configs are backed up as `*.bak` files.

## Frequently Asked Questions

### Is JuliusBrussee/caveman safe to install?

Yes. The installer in [`bin/install.js`](https://github.com/JuliusBrussee/caveman/blob/main/bin/install.js) creates `*.bak` backups of all modified configuration files before writing changes. It performs zero telemetry after installation—all network activity occurs only during the initial fetch of hook files, as documented in [`SECURITY.md`](https://github.com/JuliusBrussee/caveman/blob/main/SECURITY.md).

### Can I install JuliusBrussee/caveman without using curl?

Yes. Clone the repository manually, then run `node bin/install.js --all` after reviewing the code. This method bypasses the [`install.sh`](https://github.com/JuliusBrussee/caveman/blob/main/install.sh) shim and gives you direct control over the [`bin/install.js`](https://github.com/JuliusBrussee/caveman/blob/main/bin/install.js) execution without network pipes.

### Which AI agents support JuliusBrussee/caveman?

The installer auto-detects Claude Code, Gemini CLI, opencode, Cursor, OpenClaw, and over 30 other agents. Run `node bin/install.js --list` to see the full detection matrix, or check [`INSTALL.md`](https://github.com/JuliusBrussee/caveman/blob/main/INSTALL.md) for per-agent compatibility details and auto-activation status.

### How do I force reinstall JuliusBrussee/caveman if something breaks?

Add the `--force` flag to overwrite existing installations: `curl -fsSL ... | bash -s -- --force`. This rewrites hook scripts and config patches even if the installer detects existing Caveman files, useful when the `.caveman-active` flag is missing or hooks fail to fire.