Issue 02 | Practical Installation of Five Major Platforms β€” Claude Code / Antigravity / Gemini CLI / Codex / OpenCode

⏱ Est. reading time: 20 min Updated on 5/7/2026

🎯 Learning Objectives

After completing this issue, you will master:

  1. Installing Caveman on the five major platforms: Claude Code, Antigravity, Gemini CLI, Codex, and OpenCode
  2. Understanding the installation differences and auto-activation principles of each platform
  3. Verifying Caveman's functionality after installation
  4. Learning how to install on more extended platforms like Cursor, Windsurf, etc.

πŸ“– Prerequisites

Before starting the installation, ensure your environment meets the following conditions:

Prerequisite Minimum Version Check Command
Node.js v18+ node --version
npm v9+ npm --version
Git v2.30+ git --version
Claude Code Latest Version claude --version
Gemini CLI Latest Version gemini --version

πŸ“– Core Content: Installation on Five Major Platforms

2.1 Claude Code Installation (Plugin Method β€” Recommended)

Claude Code natively supports a Plugin system, which is the most recommended way to install Caveman:

# One line to do it: add from marketplace + install plugin
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman

After installation, the Plugin system will automatically complete the following configurations for you:

graph TD
    A["claude plugin install"] --> B["Register SessionStart Hook
caveman-activate.js"] A --> C["Register UserPromptSubmit Hook
caveman-mode-tracker.js"] A --> D["Register Statusline Script
caveman-statusline.sh"] A --> E["Install 5 Skills
caveman / commit / review / compress / help"] B --> F["βœ… Auto-activate on each startup"] C --> F D --> G["βœ… Status bar shows current mode"] E --> H["βœ… Slash commands available"]

Verify successful installation:

# Start Claude Code
claude

# In the session, type
> /caveman

# You should see output similar to:
# πŸͺ¨ CAVEMAN MODE: FULL
# Caveman active. Technical substance preserved. Fluff eliminated.

If you see the [CAVEMAN] badge in your status bar, the installation is successful.

Standalone Installation (without Plugin System)

If you prefer not to use the Plugin system, you can install Hooks directly via scripts:

# macOS / Linux / WSL
bash <(curl -s https://raw.githubusercontent.com/JuliusBrussee/caveman/main/hooks/install.sh)

# Windows (PowerShell)
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/hooks/install.ps1 | iex

Or install by cloning the repository locally:

git clone https://github.com/JuliusBrussee/caveman.git
cd caveman
bash hooks/install.sh

Uninstallation is also simple:

bash hooks/uninstall.sh

2.2 Antigravity Installation

Antigravity (Google DeepMind's Agentic Coding assistant) supports integrating Caveman via GEMINI.md rule files and the Skills system.

Method One: Install via npx skills

npx skills add JuliusBrussee/caveman

This will install Caveman's Skill files in your project directory.

Method Two: Manually configure rule files

In your project's root directory GEMINI.md, add the following snippet to make Caveman always active in Antigravity sessions:

## Caveman Mode

Terse like caveman. Technical substance exact. Only fluff die.
Drop: articles, filler (just/really/basically), pleasantries, hedging.
Fragments OK. Short synonyms. Code unchanged.
Pattern: [thing] [action] [reason]. [next step].
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift.
Code/commits/PRs: normal.
Off: "stop caveman" / "normal mode".

Method Three: Project-level .agent/skills installation

# Create skills directory in project root
mkdir -p .agent/skills/caveman

# Download Caveman skill file
curl -o .agent/skills/caveman/SKILL.md \
  https://raw.githubusercontent.com/JuliusBrussee/caveman/main/skills/caveman/SKILL.md

Verification:

# In an Antigravity session, type
> Please answer in caveman mode: When does React useEffect's cleanup function execute?

# Expected Caveman-style answer:
# cleanup run: before next effect + unmount. Return fn from useEffect = cleanup.

⚠️ Note: Antigravity lacks Claude Code's SessionStart Hook mechanism, so Caveman will not auto-activate. You need to make it always-on via the GEMINI.md rule file, or manually say "caveman mode" in each session.


2.3 Gemini CLI Installation

Gemini CLI has a native Extensions system, install in one line:

# Install
gemini extensions install https://github.com/JuliusBrussee/caveman

# Update
gemini extensions update caveman

# Uninstall
gemini extensions uninstall caveman

Gemini CLI auto-activates Caveman via the GEMINI.md context file. Installation also includes custom Gemini commands:

# Switch intensity level
/caveman          # Switch to full mode
/caveman lite     # Switch to lite mode
/caveman ultra    # Switch to ultra mode
/caveman wenyan   # Switch to Wenyan mode

# Auxiliary commands
/caveman-commit   # Generate concise commit message
/caveman-review   # One-line code review

Verification:

gemini

# In the session
> /caveman
# Should see Caveman activation confirmation

> What is TypeScript's discriminated union?
# Expected Caveman-style answer:
# Tagged union. Common prop (kind/type) + switch narrow type. 
# Each branch: TS knows exact shape. Pattern: type Result = 
# {ok: true, data: T} | {ok: false, error: E}

2.4 Codex (OpenAI) Installation

OpenAI's Codex programming agent supports integrating Caveman via the Plugin marketplace and .codex/hooks.json.

Method One: Install via Plugin marketplace

# macOS / Linux:
# 1. Clone the caveman repository
git clone https://github.com/JuliusBrussee/caveman.git

# 2. Enter the repository directory, start Codex
cd caveman
codex

# 3. In Codex: /plugins β†’ Search "Caveman" β†’ Install

Method Two: Install via npx skills

npx skills add JuliusBrussee/caveman -a codex

Configure SessionStart auto-activation:

The Caveman repository comes with .codex/hooks.json and .codex/config.toml, which can auto-activate within Codex. If you want to enable always-on in other projects as well, you need to copy these two files:

// .codex/hooks.json
{
  "hooks": [
    {
      "event": "SessionStart",
      "command": "echo 'Terse like caveman. Technical substance exact. Only fluff die. Drop: articles, filler, pleasantries. Fragments OK. Code unchanged. Pattern: [thing] [action] [reason]. [next step]. ACTIVE EVERY RESPONSE.'"
    }
  ]
}
# .codex/config.toml
[features]
codex_hooks = true

⚠️ Codex Special Syntax: Codex uses $caveman to trigger (with a $ prefix), not /caveman. / is reserved for built-in commands in Codex.

⚠️ Windows Note: Codex hooks are currently disabled on Windows; you need to manually use $caveman to start.

Verification:

codex

# In the session, type
> $caveman

# Should see Caveman activation confirmation
> Explain what a Kubernetes Pod is
# Expected Caveman answer:
# Pod = smallest deployable unit in K8s. Wraps 1+ containers,
# shared network + storage. Ephemeral β€” dies, gets replaced.

2.5 OpenCode Installation

OpenCode is an open-source terminal AI coding tool that integrates Caveman via AGENTS.md rule files.

Method One: Install via npx skills

npx skills add JuliusBrussee/caveman
# Skill files will be installed in the project directory

Method Two: Manually configure AGENTS.md rule file (Recommended)

Create or edit .config/opencode/AGENTS.md in the project root:

## Caveman Mode (Always-On)

Terse like caveman. Technical substance exact. Only fluff die.
Drop: articles, filler (just/really/basically), pleasantries, hedging.
Fragments OK. Short synonyms. Code unchanged.
Pattern: [thing] [action] [reason]. [next step].
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift.
Code/commits/PRs: normal.
Off: "stop caveman" / "normal mode".

Verification:

opencode

# In the session, type
> caveman mode

# Should see the response style become concise
> Explain Go's goroutine
# Expected Caveman answer:
# Lightweight thread managed by Go runtime. `go func()` spawns.
# Cheap β€” thousands OK. Communicate via channels, not shared mem.

πŸ’‘ Note: OpenCode does not have a slash command system; always use natural language to trigger Caveman (e.g., "caveman mode" / "talk like caveman"). Always-On must be achieved through the AGENTS.md rule file.


πŸ“Š Overall Comparison Table of Five Platform Installations

graph TB
    subgraph CC["Claude Code"]
        CC1["Plugin Installation
claude plugin install"] --> CC2["βœ… SessionStart Hook Auto-activation"] CC2 --> CC3["βœ… Status Bar Badge"] CC3 --> CC4["βœ… /caveman Slash Command"] end subgraph AG["Antigravity"] AG1["npx skills add
or GEMINI.md Rules"] --> AG2["⚠️ Requires GEMINI.md always-on"] AG2 --> AG3["❌ No Status Bar Badge"] AG3 --> AG4["βœ… Natural Language Trigger"] end subgraph GC["Gemini CLI"] GC1["gemini extensions install"] --> GC2["βœ… GEMINI.md Auto-activation"] GC2 --> GC3["❌ No Status Bar Badge"] GC3 --> GC4["βœ… /caveman Slash Command"] end subgraph CX["Codex"] CX1["Plugin Marketplace
or npx skills"] --> CX2["⚠️ Requires hooks.json configuration"] CX2 --> CX3["❌ No Status Bar Badge"] CX3 --> CX4["βœ… $caveman Command"] end subgraph OC["OpenCode"] OC1["AGENTS.md Rules
Manual Configuration"] --> OC2["⚠️ Requires AGENTS.md always-on"] OC2 --> OC3["❌ No Status Bar Badge"] OC3 --> OC4["βœ… Natural Language Trigger"] end
Dimension Claude Code Antigravity Gemini CLI Codex OpenCode
Installation Command claude plugin install caveman@caveman npx skills add or GEMINI.md gemini extensions install <url> Plugin Marketplace or npx skills -a codex npx skills add or AGENTS.md
Installation Method Plugin System (Native) Skills + GEMINI.md Rules Extensions System (Native) Plugin + hooks.json AGENTS.md Rule File
Auto-activation βœ… SessionStart Hook ⚠️ Requires GEMINI.md Rules βœ… GEMINI.md Context ⚠️ Requires hooks.json ⚠️ Requires AGENTS.md
Status Bar Badge βœ… [CAVEMAN:MODE] ❌ No ❌ No ❌ No ❌ No
Trigger Command /caveman Natural language trigger /caveman $caveman Natural language trigger
Mode Switching /caveman ultra "switch to ultra" /caveman ultra $caveman ultra "switch to ultra"
Deactivation "stop caveman" "stop caveman" "stop caveman" "stop caveman" "stop caveman"
Uninstallation claude plugin uninstall Delete rule file gemini extensions uninstall Delete Plugin Delete AGENTS.md rule
Hook Support βœ… Full (Session/Prompt/Tool) ❌ No Hook System ⚠️ Context injection only ⚠️ SessionStart only ❌ No Hook System
Customization Level ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐

πŸ“– Quick Reference for More Agent Extensions Installation

In addition to the five major platforms, Caveman also supports 40+ Agents via npx skills:

# Cursor
npx skills add JuliusBrussee/caveman -a cursor
# β†’ Installs to .cursor/rules/caveman.mdc

# Windsurf
npx skills add JuliusBrussee/caveman -a windsurf
# β†’ Installs to .windsurf/rules/caveman.md

# Cline
npx skills add JuliusBrussee/caveman -a cline
# β†’ Installs to .clinerules/caveman.md

# GitHub Copilot
npx skills add JuliusBrussee/caveman -a github-copilot
# β†’ Installs to .github/copilot-instructions.md + AGENTS.md

# AMP / Augment / Goose / Kiro / Roo, etc.
npx skills add JuliusBrussee/caveman -a <agent-name>

# Uninstall
npx skills remove caveman

⚠️ Important Note: npx skills add only installs Skill files; it does not install Hooks or rule files. Therefore, Caveman will not auto-activate. You need to manually activate it by saying /caveman or "caveman mode" each time, or paste the always-on snippet into the corresponding rule file.

⚠️ Windows Note: npx skills uses symlinks by default. If symlinking fails, add the --copy parameter: npx skills add JuliusBrussee/caveman --copy


πŸ“ Key Takeaways from This Issue

  1. Claude Code installation is the most complete: Plugin system + Hook auto-activation + status bar badge, done with a single command
  2. Antigravity requires manual configuration of the GEMINI.md rule file for always-on, with no native Hook support
  3. Gemini CLI has native Extensions support, auto-activating via GEMINI.md context
  4. Codex is configured via the Plugin marketplace + .codex/hooks.json, triggered using $caveman (note the $ prefix)
  5. OpenCode is configured via the .config/opencode/AGENTS.md rule file, triggered using natural language
  6. All platforms support deactivating with "stop caveman" and re-enabling with "caveman mode"

πŸ”— References