Your tools
Pi
Register Conifer in ~/.pi/agent/models.json. Same base URL and key.
terminal
export OPENAI_BASE_URL=https://api.conifer.build/v1
export OPENAI_API_KEY=$CONIFER_API_KEY~/.pi/agent/models.json
~/.pi/agent/models.json
{
"providers": {
"conifer": {
"baseUrl": "https://api.conifer.build/v1",
"api": "openai-completions",
"apiKey": "!printenv CONIFER_API_KEY",
"models": [{ "id": "claude-haiku-4-5" }]
}
}
}terminal
pi --provider conifer --model claude-haiku-4-5 "review this diff for races"api: openai-completions is the chat wire. Swap the model id for any other id from GET /v1/models.
The ! in apiKey tells Pi to run printenv CONIFER_API_KEY and use what it prints, so the key stays in your environment and out of the file. That form works on Pi 1.x, installed with npm i -g @earendil-works/pi-coding-agent, and on the older 0.x releases published as @mariozechner/pi-coding-agent. A plain $CONIFER_API_KEY works only on 1.x, because 0.x sends it as written.