Oh My Pi
Run the omp coding agent on Nebul models with a custom OpenAI-compatible provider in models.yml.
Oh My Pi (omp) is a terminal coding agent built on Mario Zechner's Pi framework: LSP integration, a debugger bridge, subagents, and multi-provider model routing, with per-role model selection. Custom providers live in one YAML file, and any OpenAI-compatible endpoint works, including Nebul.
Prerequisites
- macOS, Linux, or Windows with Bun 1.4.4 or later
- A Nebul AI Studio account with API access
- An API key for your active project
- A model ID from the Model Catalog
Installation
curl -fsSL https://omp.sh/install | shOr with Homebrew:
brew install can1357/tap/ompOr with Bun:
bun install -g @oh-my-pi/pi-coding-agentRun omp in your project directory to start an interactive session.
Connect it to Nebul
Add a custom provider to ~/.omp/agent/models.yml:
providers:
nebul:
baseUrl: https://api.inference.nebul.io/v1
api: openai-completions
apiKey: NEBUL_API_KEY
models:
- id: zai-org/GLM-5.3
name: GLM 5.3
contextWindow: 1048576
maxTokens: 16384Field notes:
apiselects the wire format.openai-completionsis the Chat Completions format most tools use. omp also speaksopenai-responsesandanthropic-messagesif you prefer those surfaces.apiKeyis resolved as an environment-variable name first, so the key stays out of the file. Export it in your shell, or put it in~/.omp/agent/.env, which omp loads at startup.contextWindowandmaxTokensshould match the model. Take them from/v1/model/infoinstead of estimating.- Each entry under
modelsis selectable asnebul/<id>. Add more entries to use several models.
Verify the provider resolves, then select the model:
omp models nebul
omp --model nebul/zai-org/GLM-5.3The first command lists the models omp can reach through the provider, which confirms the base URL and key. The second starts a session on the model.
Set a default model
omp routes work by role: default for normal turns, smol for cheap fan-out, slow for deep reasoning, plan for planning, commit for changelogs. Pin your Nebul model as the default role in ~/.omp/agent/config.yml:
modelRoles:
default: nebul/zai-org/GLM-5.3Inside a running session, /model lists available models and reassigns roles without a restart.
Troubleshooting
- Provider is skipped: run
omp models. Validation errors print before the list. A custom provider needsbaseUrl, anapivalue, andapiKey(orauth: nonefor a keyless endpoint). 404on requests: the base URL must behttps://api.inference.nebul.io/v1, with the/v1suffix.- Model not found: the
idmust exactly match a catalog ID, including vendor prefix and casing. - Key not picked up: an exported environment variable only exists in the shell that started omp. Check the
apiKeyvalue for typos inmodels.yml.
Data and telemetry
omp sends model traffic only to the providers you configure. Its OpenTelemetry export stays off unless you set OTEL_EXPORTER_OTLP_* endpoints, so traces and metrics leave your machine only if you opt in.
For how Nebul treats the requests it receives, see Privacy & Security.