MiMo Code
Add Inferway to MiMo Code, the OpenCode fork, as a custom provider.
Use Inferway as a custom provider in MiMo Code. Your account must have model access enabled before connecting.
Current Inferway catalog
No verification record exists for z-ai/glm-5.3-uncensored in this client; the configuration below is a reference.
Before you start
Install the named client using its official instructions. Pi here means the pi-mono coding agent; Hermes means Nous Research's Hermes Agent.
Once your Inferway account is activated, create a key under Console → API Keys. Use a dedicated key for this client; a project's monthly budget caps what it can spend. Both live and test prefixes use the same inference and billing path; test is an environment label, not a free or simulated inference mode.
Use an Inferway key for Inferway's endpoint. An OpenRouter key belongs to OpenRouter and cannot authenticate to this address.
Keep the key in the client's credential store or your local environment. Do not paste it into a prompt, screenshot, or committed configuration. These examples use bash/zsh on macOS or Linux.
Make the key available to this terminal
The prompt below hides your input and keeps the key out of shell history. Start the client from this same terminal; a separately opened app may not inherit this variable.
printf 'Inferway API key: ' IFS= read -r -s INFERWAY_API_KEY printf '\n' export INFERWAY_API_KEY
Confirm the endpoint and model
Use the full model ID z-ai/glm-5.3-uncensored. The Base URL ends in /v1 once; do not append /chat/completions to a Base URL setting. Check that the response below contains the model ID.
curl --fail-with-body --silent --show-error --max-time 30 \ 'https://api.inferway.ai/v1/models' \ -H "Authorization: Bearer $INFERWAY_API_KEY"
Save the user config
Save this as ~/.config/mimocode/mimocode.jsonc (per-project: <repo>/.mimocode/mimocode.jsonc). That is the config path, not ~/.mimocode — that directory is the install location.
{
"$schema": "https://mimo.xiaomi.com/mimocode/config.json",
"model": "inferway/z-ai/glm-5.3-uncensored",
"provider": {
"inferway": {
"name": "Inferway",
"npm": "@ai-sdk/openai-compatible",
"only_configured_models": true,
"options": {
"baseURL": "https://api.inferway.ai/v1",
"apiKey": "{env:INFERWAY_API_KEY}"
},
"models": {
"z-ai/glm-5.3-uncensored": {
"name": "z-ai/glm-5.3-uncensored",
"tool_call": true,
"temperature": true,
"reasoning": true,
"attachment": true,
"interleaved": {
"field": "reasoning_content"
},
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
},
"limit": {
"context": 1048576,
"output": 131072
},
"variants": {
"high": {
"reasoningEffort": "high"
},
"none": {
"reasoningEffort": "none"
},
"low": {
"disabled": true
},
"medium": {
"disabled": true
}
}
}
}
}
}
}Three fields that must stay
The top-level model is the inferway/ prefix plus the model id. The id itself contains a slash, so the value ends up as inferway/inferway/<model>: MiMo splits provider and model at the first slash only, and without the extra segment it cannot find the model.
The low and medium variants must stay disabled. Otherwise MiMo generates low, medium and high automatically and sends effort levels Inferway does not support; with them disabled, --variant high sends high, --variant none sends none, and medium is never sent.
limit.context and limit.output must appear together: the config fails validation if only one of them is present.
Start MiMo Code
Run mimo inside your project directory; mimo run starts a one-shot task with an explicit variant. mimo models inferway lists the models this provider configured.
mimo # one-shot with an explicit variant: mimo run -m 'inferway/z-ai/glm-5.3-uncensored' --variant high 'Reply with exactly: connected'
Confirm the connection
- Start a fresh conversation with the configured provider and model. Ask: "Reply with exactly: connected". Confirm that text arrives without an API error.
- Open Console → Requests to see the request status and token usage.
- For coding tasks, ask the client to read a non-sensitive file. Review any proposed edits before applying them.
Cost and usage
Actual consumption is recorded by Inferway: open Console → Requests to see each request's status and token usage, and Console → Usage for totals. Numbers a client shows locally are its own estimates, not billing amounts; rely on the Console.
Verification status
There is no verification record for this model in this client: the recipe below is a configuration reference, not a tested integration for that model.
If a request fails
Authentication: check that an API key is present, active, and allowed to use the model. Reopen the client from the terminal containing the variable. Never print the full key when debugging.
Wrong endpoint or model: check for a duplicate /v1, use the exact published model ID, and confirm the client is using Chat Completions. A request to /responses or /completions cannot be repaired by changing the key.
Limits or timeout: check wallet balance and key limits, respect Retry-After, and reduce the prompt or output budget. Keep streaming enabled for long outputs. Avoid repeated agent retries while diagnosing.
When contacting support, share the client version, model ID, timestamp, and request ID if available. Redact credentials and source code.