Pi
Configure the Pi coding agent with a custom provider.
Pi 0.84.4 passed live chat, streaming, and a read-tool round trip on September 6, 2026, using an existing release-test account. New FREE-account access remains blocked by a separate service issue.
Current Inferway catalog
inferway/qwen3.8-27b262,1444,096Before 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, get an API key from Console → API keys. Use a dedicated key for this client and review its model access and spending limits. 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 inferway/qwen3.8-27b. 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"
Add the custom provider
Merge this provider into ~/.pi/agent/models.json. Preserve other providers if the file already exists. Pi's openai-completions adapter uses Chat Completions; it does not mean the legacy /completions route.
The dollar sign in $INFERWAY_API_KEY is required for Pi's environment interpolation. Check for an older inferway credential in Pi's auth.json if it keeps using a different key. The text-only example leaves reasoning and images disabled; enable them only after checking the model and client behavior.
{
"providers": {
"inferway": {
"baseUrl": "https://api.inferway.ai/v1",
"api": "openai-completions",
"apiKey": "$INFERWAY_API_KEY",
"models": [
{
"id": "inferway/qwen3.8-27b",
"name": "Inferway",
"reasoning": false,
"input": [
"text"
],
"contextWindow": 262144,
"maxTokens": 4096,
"compat": {
"supportsDeveloperRole": false,
"supportsReasoningEffort": false,
"maxTokensField": "max_tokens"
}
}
]
}
}
}Select Inferway
Start Pi with the explicit provider and model below, or use /model in Pi and select the Inferway entry. /model reloads the model configuration. If the model is missing, check that INFERWAY_API_KEY is available.
pi --provider inferway --model 'inferway/qwen3.8-27b'Verify one small request
- Start a fresh conversation with the configured provider and model. Ask: "Reply with exactly: connected". Confirm that text arrives without an API error.
- Open Inferway Console → Requests and match the time, model, status, and token usage. A model-list response or key validation alone is not a successful inference test.
- For an agent workflow, test reading one non-sensitive file before testing edits or commands. Chat success does not verify tool calls, parallel tools, images, or long conversations. Review generated changes before applying them.
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.