Supported agents
Profiles record tested upstream versions, but upstream CLIs change independently. Run
caveman setup to inspect installed support before relying on a profile.
Start an agent
Use a named shortcut to launch an agent with Caveman routing:Kilo Code specifics
caveman kilocode is an alias for the second binary published by Kilo’s CLI package. Both launch the same kilo profile. CLI wrapping does not reconfigure an already-running Kilo editor extension.
Install the verified Kilo CLI version before using either shortcut:
caveman provider. An explicit non-Caveman --model/--m/-m, top-level attach, cloud, or roll-call, or run --attach launches directly with a warning. Attached and cloud sessions execute outside Kilo’s local routed process; roll-call deliberately spans models instead of honoring one routed model.
Kilo organization and enterprise-managed config loads after inline environment config. When either higher-priority source is active, or account state cannot be verified safely, the wrapper launches Kilo directly instead of claiming proxy confinement or MCP recovery that later policy could override.
Qwen Code specifics
Install Qwen Code’s CLI before using its shortcut:QWEN_CODE_SYSTEM_SETTINGS_PATH, or the platform enterprise default when the variable is unset:
- macOS:
/Library/Application Support/QwenCode/settings.json - Linux:
/etc/qwen-code/settings.json - Windows:
%ProgramData%\qwen-code\settings.json
~/.qwen/settings.json are not rewritten. The pinned real-CLI route smoke covers Qwen Code 0.22.3 in both local and managed modes.
What a profile can change
Profiles are data files compiled by the CLI. A profile can declare:- executable name and wire protocol
- environment or configuration-file injection
- local proxy endpoint templates
- supported command and memory hooks
- skills to install
- native plugins
- version and capability notes
Wrapping modes
Compress (default)
Default wrapping mode compresses eligible context locally and can use TOON for smaller structured data. Supported command output may be shrunk; lossy transformations require recovery storage or an equivalent recovery path.Record
Pixel
think.pixel.models; Caveman does not assume image compatibility from a model name.
Agent-native setup
Claude Code and Codex can use explicit native setup:Recovery during an agent run
Compressed context includesccr_... handles or typed ccr://... pointers. Agents with the MCP integration can retrieve exact source through a tool call. Operators can retrieve the same source from a terminal:
Skill and hook interaction
Response skills change how an agent writes; Engine compression changes context sent to a model. They are separate controls. Hooks can add reminders, expose recovery tools, or compact command output. An installed skill does not prove that request compression is active, and proxy traffic does not prove that a response skill is active. See Skills and hooks for lifecycle and trust boundaries.Troubleshooting
- Run
caveman statusand confirm selected mode. - Run
caveman setupand confirm runtime binaries. - Start in
--offmode. If failure remains, problem is outside request transformation. - Inspect provider credential variables without printing secret values.
- Confirm agent uses local endpoint emitted by profile.
- Use installed-version help because upstream profile requirements can change.
Claude Code Remote Control
Claude Code 2.1.196 and later only allows Remote Control whenANTHROPIC_BASE_URL points at api.anthropic.com; its first-party escape hatch does not cover this check. A proxied session therefore cannot start Remote Control. caveman claude --remote-control and caveman wrap claude --remote-control detect the flag (including --remote-control <name> and --remote-control=<name>, and the legacy bare remote-control subcommand) and launch Claude Code directly, uncompressed. --remote-control-session-name-prefix only names auto-generated sessions and does not start Remote Control, so it keeps routing through the proxy.
If caveman enable claude has written the route into settings.json, run caveman disable claude before starting a Remote Control session from a plain claude command, then caveman enable claude again afterwards.