Skip to content

Claude Code

Claude Code talks to the Anthropic Messages API. ai& exposes an Anthropic-compatible /v1/messages endpoint, so any tool-calling model in our catalog can drive the agent loop.

Two ways to wire it up:

  • Sessionexport the env vars into your current shell. Lost when you close the terminal. Good for a one-off try.
  • Permanent — drop the same config into settings.json. Persists across sessions, can be scoped per project or globally.

1. Install Claude Code

Prerequisite: Node.js 18 or newer.

Terminal window
npm install -g @anthropic-ai/claude-code

Confirm the install — claude --version should print a version number:

Terminal window
claude --version

2. Set the env vars in this terminal

Terminal window
export ANTHROPIC_BASE_URL="https://api.aiand.com"
export ANTHROPIC_AUTH_TOKEN="sk-your-aiand-api-key"
export ANTHROPIC_API_KEY=""
export ANTHROPIC_DEFAULT_OPUS_MODEL="zai-org/glm-5.1"
export ANTHROPIC_DEFAULT_SONNET_MODEL="zai-org/glm-5.1"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="zai-org/glm-5.1"
export CLAUDE_CODE_SUBAGENT_MODEL="zai-org/glm-5.1"

3. Run Claude Code

Terminal window
claude

Claude Code reads its config from a settings.json file on startup. Drop the same env block in and you never have to re-export:

{
"env": {
"ANTHROPIC_BASE_URL": "https://api.aiand.com",
"ANTHROPIC_AUTH_TOKEN": "sk-your-aiand-api-key",
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "zai-org/glm-5.1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "zai-org/glm-5.1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "zai-org/glm-5.1",
"CLAUDE_CODE_SUBAGENT_MODEL": "zai-org/glm-5.1"
}
}

Two scopes — pick one:

  • Project (.claude/settings.local.json in your repo) — applies only when you run claude from this repo. Git ignores *.local.json by Claude Code convention, so the key never gets committed. Recommended for trying ai& without touching your global setup.
  • Global (~/.claude/settings.json) — applies machine-wide. Every Claude Code surface on your machine picks up the same ai& backend: the claude CLI in any terminal session, the Claude Code VS Code extension (the extension and CLI share this file by design), and the Claude Desktop app. Use this once ai& is your default everywhere.

The commands below safely merge the env block into the file — any existing keys you have (permissions, hooks, etc.) are preserved. They use Node, which is already on your machine since step 1 installed Claude Code via npm. Replace sk-your-aiand-api-key with your real key before running.

Run from the root of your project:

Terminal window
mkdir -p .claude && node -e '
const fs = require("fs"), p = ".claude/settings.local.json";
const d = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf8")) : {};
d.env = Object.assign(d.env || {}, {
ANTHROPIC_BASE_URL: "https://api.aiand.com",
ANTHROPIC_AUTH_TOKEN: "sk-your-aiand-api-key",
ANTHROPIC_API_KEY: "",
ANTHROPIC_DEFAULT_OPUS_MODEL: "zai-org/glm-5.1",
ANTHROPIC_DEFAULT_SONNET_MODEL: "zai-org/glm-5.1",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "zai-org/glm-5.1",
CLAUDE_CODE_SUBAGENT_MODEL: "zai-org/glm-5.1"
});
fs.writeFileSync(p, JSON.stringify(d, null, 2));
'
Terminal window
mkdir -p ~/.claude && node -e '
const fs = require("fs"), os = require("os"), path = require("path");
const p = path.join(os.homedir(), ".claude", "settings.json");
const d = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf8")) : {};
d.env = Object.assign(d.env || {}, {
ANTHROPIC_BASE_URL: "https://api.aiand.com",
ANTHROPIC_AUTH_TOKEN: "sk-your-aiand-api-key",
ANTHROPIC_API_KEY: "",
ANTHROPIC_DEFAULT_OPUS_MODEL: "zai-org/glm-5.1",
ANTHROPIC_DEFAULT_SONNET_MODEL: "zai-org/glm-5.1",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "zai-org/glm-5.1",
CLAUDE_CODE_SUBAGENT_MODEL: "zai-org/glm-5.1"
});
fs.writeFileSync(p, JSON.stringify(d, null, 2));
'

Inside Claude Code, run:

/status

The panel shows the active base URL and model. You should see https://api.aiand.com and zai-org/glm-5.1.

You can also probe the wire-level path from the shell:

Terminal window
curl -sS https://api.aiand.com/v1/models \
-H "Authorization: Bearer sk-your-aiand-api-key" \
| grep -o 'zai-org/glm-5.1'

A match means the key authenticates and the model is on your org.