Issue 02 | Practical Installation of Five Major Platforms β Claude Code / Antigravity / Gemini CLI / Codex / OpenCode
π― Learning Objectives
After completing this issue, you will master:
- Installing Caveman on the five major platforms: Claude Code, Antigravity, Gemini CLI, Codex, and OpenCode
- Understanding the installation differences and auto-activation principles of each platform
- Verifying Caveman's functionality after installation
- 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
$cavemanto 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
$cavemanto 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.mdrule 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 addonly 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/cavemanor "caveman mode" each time, or paste the always-on snippet into the corresponding rule file.
β οΈ Windows Note:
npx skillsuses symlinks by default. If symlinking fails, add the--copyparameter:npx skills add JuliusBrussee/caveman --copy
π Key Takeaways from This Issue
- Claude Code installation is the most complete: Plugin system + Hook auto-activation + status bar badge, done with a single command
- Antigravity requires manual configuration of the GEMINI.md rule file for always-on, with no native Hook support
- Gemini CLI has native Extensions support, auto-activating via GEMINI.md context
- Codex is configured via the Plugin marketplace +
.codex/hooks.json, triggered using$caveman(note the$prefix) - OpenCode is configured via the
.config/opencode/AGENTS.mdrule file, triggered using natural language - All platforms support deactivating with
"stop caveman"and re-enabling with"caveman mode"