Nebul Docs

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 | sh

Or with Homebrew:

brew install can1357/tap/omp

Or with Bun:

bun install -g @oh-my-pi/pi-coding-agent

Run 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: 16384

Field notes:

  • api selects the wire format. openai-completions is the Chat Completions format most tools use. omp also speaks openai-responses and anthropic-messages if you prefer those surfaces.
  • apiKey is 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.
  • contextWindow and maxTokens should match the model. Take them from /v1/model/info instead of estimating.
  • Each entry under models is selectable as nebul/<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.3

The 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.3

Inside 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 needs baseUrl, an api value, and apiKey (or auth: none for a keyless endpoint).
  • 404 on requests: the base URL must be https://api.inference.nebul.io/v1, with the /v1 suffix.
  • Model not found: the id must 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 apiKey value for typos in models.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.

On this page