claude-max-api-proxy is a community npm package (not an Apus plugin) that exposes a Claude Max/Pro subscription as an OpenAI-compatible API endpoint, so you can point any OpenAI-compatible tool at your subscription instead of an Anthropic API key.

Technical compatibility only, not an officially sanctioned path. Anthropic has blocked some subscription usage outside Claude Code in the past; verify Anthropic's current billing rules before relying on this.

Anthropic's Claude Code docs describe claude -p as Agent SDK/programmatic usage. As of Anthropic's June 15, 2026 support update, Claude Agent SDK, claude -p, and third-party app usage draw from the signed-in subscription's usage limits (the previously announced separate Agent SDK credit plan is paused). See Anthropic's Agent SDK plan article, the Pro/Max and Team/Enterprise plan articles, and Anthropic provider for Apus's own Claude CLI billing notes.

Why use this

Approach Cost route Best for
Anthropic API key Pay per token through Claude Console Production apps, shared automation, volume
Claude subscription proxy Claude Code / claude -p plan and credit rules Personal experiments with compatible tools

This proxy lets a Claude Max or Pro subscription work with OpenAI-compatible tools. It is not an unlimited flat-rate path — it inherits Claude Code's usage limits. API keys remain the clearer billing path for production use.

How it works

Your App -> claude-max-api-proxy -> Claude Code CLI / claude -p -> Anthropic
     (OpenAI format)                (converts format)              (uses your login)

The proxy spawns the Claude Code CLI as a subprocess per request, converts OpenAI-format chat requests to CLI prompts, and streams (or returns) the response back in OpenAI format.

Getting started

Install the proxy

Requires Node.js 20+ and an authenticated Claude Code CLI.

```bash
npm install -g claude-max-api-proxy

# Verify Claude CLI is authenticated
claude --version
claude auth login   # if not already authenticated
```

Start the server

```bash
claude-max-api
# Server runs at http://localhost:3456
```

Test the proxy

```bash
curl http://localhost:3456/health
curl http://localhost:3456/v1/models

curl http://localhost:3456/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
```

Configure Apus

Point Apus at the proxy as a custom OpenAI-compatible endpoint:

```json5
{
  env: {
    vars: {
      OPENAI_API_KEY: "not-needed",
      OPENAI_BASE_URL: "http://localhost:3456/v1",
    },
  },
  agents: {
    defaults: {
      model: { primary: "openai/claude-opus-4" },
    },
  },
}
```

The model ids below are the proxy's own catalog, not Apus's Anthropic model refs. Each id maps to a Claude Code CLI model alias (opus, sonnet, haiku), so the underlying model shifts whenever Anthropic updates that alias in the CLI. Check the proxy's current README before relying on a specific mapping.

Model ID CLI alias
claude-opus-4 opus
claude-sonnet-4 sonnet
claude-haiku-4 haiku

Advanced configuration

Proxy-style OpenAI-compatible notes
This uses Apus's generic custom `/v1` OpenAI-compatible route, the same
path as any other self-hosted OpenAI-compatible backend:

- Native OpenAI-only request shaping does not apply.
- `/fast` and `service_tier` only apply to direct `api.anthropic.com`
  traffic; proxy routes leave `service_tier` untouched (see
  [Anthropic provider fast mode](/providers/anthropic#advanced-configuration)).
- No Responses `store`, prompt-cache hints, or OpenAI reasoning-compat
  payload shaping.
- Apus's OpenAI/Codex attribution headers (`originator`, `version`,
  `User-Agent`) are only sent on native `api.openai.com` OAuth traffic, not
  on custom `OPENAI_BASE_URL` targets like this proxy.
Auto-start on macOS with LaunchAgent
```bash
cat > ~/Library/LaunchAgents/com.claude-max-api.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.claude-max-api</string>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/node</string>
    <string>/usr/local/lib/node_modules/claude-max-api-proxy/dist/server/standalone.js</string>
  </array>
  <key>EnvironmentVariables</key>
  <dict>
    <key>PATH</key>
    <string>/usr/local/bin:/opt/homebrew/bin:~/.local/bin:/usr/bin:/bin</string>
  </dict>
</dict>
</plist>
EOF

launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.claude-max-api.plist
```

Notes

For native Anthropic integration with Claude CLI or API keys, see Anthropic provider. For OpenAI/Codex subscriptions, see OpenAI provider.

Related

Anthropic provider

Native Apus integration with Claude CLI or API keys.

OpenAI provider

For OpenAI/Codex subscriptions.

Model selection

Overview of all providers, model refs, and failover behavior.

Configuration

Full config reference.