Skip to main content
omp (oh-my-pi) is a terminal coding agent. ethereal plugs in as an OpenAI-compatible provider.

1. Key

Put your eth-... in an environment variable:
export ETHEREAL_API_KEY="eth-..."
To avoid typing it every time, add it to ~/.zshrc / ~/.bashrc.

2. Provider

~/.omp/agent/models.yml (on Windows: C:\Users\<you>\.omp\agent\models.yml):
providers:
  ethereal:
    baseUrl: https://api.ethereal.llc/v1
    apiKey: ETHEREAL_API_KEY
    api: openai-completions
    models:
      - id: claude-opus-4-8
        name: Claude Opus 4.8
        api: openai-completions
        reasoning: true
        input: [text, image]
        contextWindow: 200000
        maxTokens: 32000
      - id: claude-sonnet-4-6
        name: Claude Sonnet 4.6
        api: openai-completions
        reasoning: true
        input: [text, image]
        contextWindow: 200000
        maxTokens: 64000
      - id: claude-haiku-4-5
        name: Claude Haiku 4.5
        api: openai-completions
        reasoning: true
        input: [text, image]
        contextWindow: 200000
        maxTokens: 32000

3. Default model

~/.omp/agent/config.yml (on Windows: C:\Users\<you>\.omp\agent\config.yml):
modelRoles:
  default: ethereal/claude-opus-4-8
  smol: ethereal/claude-haiku-4-5
Run omp — it now routes through ethereal. Switch model with the --model ethereal/claude-sonnet-4-6 flag or the in-session model picker.
apiKey is the name of the environment variable (ETHEREAL_API_KEY), not the key itself. Charges follow the model’s rate for the session tokens — see your balance in your dashboard.