Where to Find Caveman Agent Profile Definitions: Location and Usage Guide
Caveman agent profile definitions are stored as declarative JSON files in the agents/profiles/ directory, with each file describing a single AI agent's installation, configuration injection, supported skills, and verification metadata.
The JuliusBrussee/caveman repository uses these profiles as the single source of truth for all built-in agents. The CLI reads them to power commands like caveman install and caveman wrap, making it straightforward to add, customize, or inspect agent configurations without modifying source code.
What Are Caveman Agent Profiles?
An agent profile is a JSON file that declaratively specifies everything Caveman needs to integrate with a coding agent. Rather than hard-coding agent logic, Caveman externalizes this into version-controlled, schema-validated files.
Each profile in agents/profiles/<id>.json contains:
install— How to obtain the agent binaryinjection— Environment variables and configuration to inject at runtimebinary_names— Executable names to probe for and wrap- Skills, command hooks, memory hooks, and attribution headers
- Verification metadata (
last_verified_at,verified_by)
Example Profile Files
| Profile | File Path | Description |
|---|---|---|
| Claude Code | agents/profiles/claude.json |
Anthropic's Claude Code agent |
| Opencode | agents/profiles/opencode.json |
Opencode AI SDK agent |
| Qwen Code | agents/profiles/qwen.json |
Alibaba's Qwen Code agent |
The JSON schema governing all profiles lives at agents/profiles/schema.json.
How the CLI Uses Agent Profiles
The bin/install.js script reads the entire agents/profiles/ directory to construct an internal PROVIDERS matrix. This matrix drives the interactive installer shown when you run caveman install.
When you execute caveman wrap --agent <id>, the CLI:
- Loads the corresponding JSON profile
- Injects the defined environment variables and configuration
- Launches the binary specified in
binary_names
This architecture keeps the core CLI generic while allowing rapid agent additions through configuration alone.
Working with Agent Profiles
View an Existing Profile
# Display the raw JSON for the Claude profile
caveman profile view claude
This command loads agents/profiles/claude.json and prints it to stdout, useful for inspecting the exact configuration a wrapped agent will receive.
Add a Custom Agent Profile
Create a new file following the schema in agents/profiles/schema.json:
# Copy the schema as a template
cp agents/profiles/schema.json agents/profiles/mybot.json
# Edit mybot.json with your agent's specifics:
# - Unique "id" field (used as the profile slug)
# - Installation instructions
# - Binary names to probe for
# - Injection rules
Then register and verify your new profile:
# Register in the internal catalog
caveman profile add mybot
# Confirm it's recognized
caveman profile list | grep mybot
Use a Custom Profile in a Wrapper
# Wrap using your custom profile slug (the "id" field)
caveman wrap --agent mybot
The wrapper reads agents/profiles/mybot.json, applies the injection rules, and launches the specified binary with Caveman's transparent context management.
Key Files in the Agent Profile System
| File | Purpose |
|---|---|
agents/profiles/schema.json |
JSON Schema (draft-07) validating all profile files |
agents/profiles/claude.json |
Production profile for Claude Code |
agents/profiles/opencode.json |
Production profile for Opencode |
agents/profiles/qwen.json |
Production profile for Qwen Code |
bin/install.js |
Installer that constructs the PROVIDERS matrix from profile files |
agents/probe-installed.mjs |
Binary probing utility that verifies profile-compatibility with installed agents |
Extending Caveman with New Agent Profiles
The profile system is designed for contribution. To add support for a new coding agent:
- Create
agents/profiles/<your-agent>.jsonfollowing the schema - Fill all required fields:
id,name,binary_names,install,injection - Run
caveman profile add <your-agent>to register it - Test with
caveman wrap --agent <your-agent>
The caveman compile step (run during build or development) automatically picks up new files in agents/profiles/, no code changes required.
Summary
- Caveman agent profile definitions live in
agents/profiles/as individual JSON files - Each file is validated against
agents/profiles/schema.json - The
bin/install.jsscript generates thePROVIDERSmatrix from these files - Use
caveman profile view,add, andlistcommands to inspect and manage profiles - Custom agents require only a new JSON file—no CLI modifications needed
Frequently Asked Questions
What format are Caveman agent profiles written in?
Agent profiles are JSON files following a strict schema defined in agents/profiles/schema.json. The schema uses JSON Schema draft-07 and specifies required fields like id, name, binary_names, install, and injection.
How do I add a new agent to Caveman without modifying source code?
Drop a new <id>.json file into agents/profiles/ following the schema, then run caveman profile add <id>. The CLI will recognize it immediately. The system is designed so that caveman compile automatically ingests new profile files without requiring changes to bin/install.js or other core code.
Where does Caveman store verification metadata for agents?
Verification metadata including last_verified_at and verified_by fields are stored inside each profile JSON file under agents/profiles/. This keeps provenance data version-controlled alongside the agent definition itself, allowing the CLI to warn when profiles may be outdated relative to upstream agent releases.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →