claudemax runs autonomous AI agents that read your filesystem, run shell commands, edit files, fetch web pages, and spawn parallel subprocesses. Treat it accordingly.
In April 2026 Anthropic briefly blocked third-party agent frameworks (OpenClaw, claude-flow, others) from piping Pro/Max subscription limits through programmatic tools. The policy was reversed when Anthropic introduced a separate Agent SDK credit subcategory on Pro/Max plans (Pro $20, Max5x $100, Max20x $200) specifically allocated for programmatic uses including external tools.
claudemax routes 100% of provider calls through @anthropic-ai/claude-agent-sdk query(). The pool those calls draw from depends on the date:
- Today (pre-split era, until 2026-06-15):
query()calls share the SAME 5-hour rolling subscription pool as the interactiveclaudeREPL — confirmed by support.claude.com/en/articles/11145838 ("usage limits are shared across Claude and Claude Code"). The harness is era-aware and the cost-guard against the$100/$200 monthly Agent SDK creditis forward-compat only in this era. - From 2026-06-15 onward (post-split era):
query()calls move to a dedicated monthly Agent SDK credit pool ($20/$100/$200, billed at API list prices) per code.claude.com/docs/en/agent-sdk/overview and support.claude.com/en/articles/15036540. claudemax auto-switches by date; no config change needed.
cmax doctor surfaces the resolved era and which billing path is active. Override for dry-run testing via CMAX_BILLING_ERA=pre-split|post-split.
Users opt into the API-key billing path (CMAX_PLAN=api or ANTHROPIC_API_KEY set in env) explicitly. Default is subscription via Agent SDK credit.
| Action | Default behavior |
|---|---|
| Read files in your project | Yes, every umbrella reads the project |
| Edit files in your project | Yes, with permissionMode: 'bypassPermissions' by default for cmax run, cmax goal, cmax ask, cmax tdd, cmax dispatch (equivalent to Claude Code's --dangerously-skip-permissions). Override per-invocation with --permission default to restore approval prompts. |
| Run shell commands | Yes — via Claude Code's Bash tool, gated by Claude Code's permission system |
| Network calls | Yes — WebSearch, WebFetch, and outbound to the Anthropic API |
| Spawn parallel processes | Yes in Mode B (Agent Teams) — each teammate is a separate claude subprocess writing to its own worktree under .claude/worktrees/<session-id>/ |
| Persist data outside your project | Yes — ~/.claudemax-state/config.json (NTFY_TOPIC + install dir), .claudemax/memory.sqlite (per-project SQLite memory) |
| Send data to third parties | If you enable ntfy push (opt-in via NTFY_TOPIC), one-line notifications go to your configured ntfy server (default ntfy.sh) on every run completion |
| Use your Anthropic API key | Only if ANTHROPIC_API_KEY is set; otherwise claudemax routes through @anthropic-ai/claude-agent-sdk which bills against your Claude Max Agent SDK credit pool |
| Auto-commit to git | No — claudemax never commits without your explicit request |
| Push to remotes | No |
| Modify your global git config | No |
- Inspect
setup.shbefore piping to bash. It auto-installs tmux / qrencode / Tailscale via official package managers and downloads the official Tailscale install script. Review the file first. - Pin Claude Code version if you're on the Mode B Agent Teams experimental path — the API may shift.
- Use
--permission defaultoncmax run/cmax goal/cmax ask/cmax tddwhen working in a repo where automated edits are risky — the v0.2.1 default isbypassPermissions(= Claude Code's--dangerously-skip-permissions), which runs unattended without approval prompts.--permission defaultrestores per-edit prompts.--permission acceptEditsallows edits but prompts on Bash/shell. - Run claudemax inside a dev container or VM for untrusted goals. claudemax can read anything in the working directory, including files containing secrets.
- Set
CMAX_PLAN=apiand use a scoped API key if you want strict cost control via Anthropic dashboard. - Use the
cmax doctorbudget guard — at > 90% of monthly Agent SDK credit, the router auto-demotes Opus → Sonnet for non-verify/non-spec packets. At > 95%,cmax runrequires--force. - Install the dark-patterns hooks (
waitdeadai/llm-dark-patterns) — theno-credential-leak-in-handoffhook blocks plaintextsk-*/ghp_*/ AWS keys in agent task payloads, andno-approval-sneakblocks unapproved edits to sensitive paths (.env*,secrets/,.kube/,terraform/state/,.ssh/,.gnupg/,prod/).
- Sandbox isolation — claudemax does not run goals in a sandbox by default. Mode B uses Claude Code worktrees for write isolation, but reads are unconstrained. For untrusted code, run claudemax inside a Vercel Sandbox / Firecracker microVM / Docker container.
- API key rotation — if you commit an API key by accident, claudemax can't recover it for you. Use the dark-patterns
no-credential-leak-in-handoffhook to catch this before push. - Network egress filtering — claudemax doesn't restrict outbound calls. Use a network policy or proxy if you need to limit egress.
- Prompt-injection from fetched web pages —
/deepresearchand/auditfetch URLs viaWebFetch. Pages can contain prompt-injection payloads. The dark-patterns hooks help (especiallyno-phantom-tool-callandno-fake-cite), but a determined attacker can craft adversarial content. Treat anything claudemax surfaces from the web as untrusted input.
If you find a security issue in claudemax itself (not in a third-party dependency, not in Claude Code, not in Anthropic's API):
- Do not open a public GitHub issue.
- Email the maintainer privately (see the GitHub repo for the current contact address).
- Include: reproduction steps, claudemax version (
cmax --version), Node version, OS, and any logs from~/.claudemax-state/or the project's.claudemax/state/. - Allow up to 90 days for a fix before public disclosure.
For vulnerabilities in dependencies (Claude Code, @anthropic-ai/claude-agent-sdk, Tailscale, ntfy, etc.), report upstream to the respective project.
claudemax depends on:
@anthropic-ai/claude-agent-sdk(Anthropic, official)better-sqlite3(native bindings, compiled at install time)commander,kleur,zod(small, well-known)tmux/qrencode/tailscale(system packages; only installed via official package managers when you runsetup.sh)
Native compilation happens at pnpm install time via the allowBuilds: { better-sqlite3: true, esbuild: true } opt-in in pnpm-workspace.yaml. Inspect pnpm-lock.yaml before installing if you need to audit the dependency tree.