Other Agents
Cursor, Aider, Continue, Goose, and generic OpenAI/Anthropic SDKs.
Anything that lets you override a base URL works with base/mnt.ai. The same two patterns — env vars or a bash function — apply everywhere. Common setups:
Cursor
Settings → Models → add an OpenAI-compatible custom endpoint:
- Base URL:
https://api.basemnt.ai/v1 - API key:
sk-... - Model: a catalog ID, e.g.
z-ai/glm-5.2
Verify with the built-in “Test” button — a success means Cursor reaches the router and the model responds.
Aider
env-vars.sh
export OPENAI_API_BASE=https://api.basemnt.ai/v1
export OPENAI_API_KEY=sk-your-key
aider --model openai/z-ai/glm-5.2Aider uses OPENAI_API_BASE (not OPENAI_BASE_URL) for the openai/ model prefix. The
bash-function pattern works identically — wrap aider instead of exporting globally.
Continue (VS Code / JetBrains)
~/.continue/config.yaml:
~/.continue/config.yaml
models:
- name: base/mnt.ai
provider: openai
apiBase: https://api.basemnt.ai/v1
apiKey: sk-your-key
model: z-ai/glm-5.2
roles: [chat, edit, apply]Goose
env-vars.sh
export OPENAI_BASE_URL=https://api.basemnt.ai/v1
export OPENAI_API_KEY=sk-your-key
goose sessionGeneric OpenAI SDK
openai-sdk.py
from openai import OpenAI
client = OpenAI(
base_url="https://api.basemnt.ai/v1",
api_key="sk-your-key",
)
resp = client.chat.completions.create(
model="z-ai/glm-5.2",
messages=[{"role": "user", "content": "Hello, basement."}],
)
print(resp.choices[0].message.content)Generic Anthropic SDK
anthropic-sdk.py
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.basemnt.ai",
api_key="sk-your-key",
)
resp = client.messages.create(
model="z-ai/glm-5.2",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, basement."}],
)
print(resp.content[0].text)Troubleshooting
- 401 everywhere — key typo, or the env var didn’t reach the process. Echo it inside the
same shell:
echo $SK_KEY. - 404 on the request path — base URL is wrong for the protocol family. OpenAI clients need
the trailing
/v1; Anthropic clients must not have it. - 400 unknown model — the harness is sending its default model name. Override with a catalog ID.