annodex

Models

Configure LLM providers and models for annodex.

Overview

Annodex works with any OpenAI-compatible LLM provider. Unlike the standard Codex CLI which requires the OpenAI responses API format, annodex includes a provider normalization layer that translates between API formats.

This means you can use models that Codex CLI cannot natively support:

ProviderAPI FormatWorks with Codex CLI?Works with Annodex?
OpenAIresponses✅ Native
DeepSeekchat/completions❌ Incompatible✅ Translated
AnthropicMessages❌ Incompatible✅ Translated
Other OpenAI-compatiblechat/completions❌ Incompatible✅ Translated

Configuration File

Provider and model definitions live in:

~/.config/annodex/providers.json

Basic Structure

{
  "providers": {
    "<provider-name>": {
      "apiKey": "your-api-key",
      "baseURL": "https://api.example.com",
      "type": "openai"
    }
  },
  "models": [
    {
      "id": "model-id",
      "provider": "<provider-name>"
    }
  ]
}

Provider Fields

FieldRequiredDescription
apiKeyYesYour API key for this provider
baseURLYesThe API endpoint URL
typeNoProvider type. Defaults to "openai" for OpenAI-compatible APIs

Example Configurations

DeepSeek

DeepSeek is affordable and capable, but its API uses chat/completions format which is incompatible with vanilla Codex CLI. Annodex handles the translation.

{
  "providers": {
    "deepseek": {
      "apiKey": "sk-your-deepseek-key",
      "baseURL": "https://api.deepseek.com"
    }
  },
  "models": [
    { "id": "deepseek-chat", "provider": "deepseek" },
    { "id": "deepseek-reasoner", "provider": "deepseek" }
  ]
}

OpenAI

{
  "providers": {
    "openai": {
      "apiKey": "sk-your-openai-key",
      "baseURL": "https://api.openai.com/v1"
    }
  },
  "models": [
    { "id": "gpt-4o", "provider": "openai" },
    { "id": "gpt-4.1", "provider": "openai" }
  ]
}

Multiple Providers

You can configure multiple providers simultaneously and switch between them in the annodex UI:

{
  "providers": {
    "deepseek": {
      "apiKey": "sk-deepseek-key",
      "baseURL": "https://api.deepseek.com"
    },
    "openai": {
      "apiKey": "sk-openai-key",
      "baseURL": "https://api.openai.com/v1"
    },
    "anthropic": {
      "apiKey": "sk-ant-key",
      "baseURL": "https://api.anthropic.com"
    }
  },
  "models": [
    { "id": "deepseek-chat", "provider": "deepseek" },
    { "id": "deepseek-reasoner", "provider": "deepseek" },
    { "id": "gpt-4o", "provider": "openai" },
    { "id": "claude-sonnet-4-20250514", "provider": "anthropic" }
  ]
}

Custom / Self-Hosted Endpoints

Any OpenAI-compatible endpoint works:

{
  "providers": {
    "local-llm": {
      "apiKey": "not-needed",
      "baseURL": "http://localhost:8080/v1"
    }
  },
  "models": [
    { "id": "qwen2.5-72b", "provider": "local-llm" }
  ]
}

Model Configuration UI

Annodex provides a visual model configuration panel accessible from the workspace. The easiest way to add a provider is through the Quick Setup presets:

  1. Click Settings in the lower-left corner
  2. Open Models
  3. Click + Add provider
  4. Choose a preset card, or use OpenAI-compatible endpoint for providers such as DeepSeek
  5. Enter your API key — base URL and default models are pre-filled automatically when available
  6. Click Save
Model provider quick setup dialog

Built-in Presets

ProviderDefault Models
DeepSeekdeepseek-chat, deepseek-reasoner
Moonshot AImoonshot-v1-auto, kimi-k2
Zhipu AI (GLM)glm-4-plus, glm-4-flash
MiniMaxabab7-chat, minimax-m1
OpenRouter(use Discover to browse 300+ models)

For providers not in the preset list, use Custom to configure any OpenAI-compatible endpoint manually.

Codex CLI Compatibility

Annodex reads the same configuration paths as Codex CLI. If you already have Codex configured, annodex will automatically pick up your existing provider and model settings.

Your chat history in ~/.codex is also fully compatible — annodex can browse and resume threads created by Codex CLI.

Switching Models in Chat

Use the model selector in the chat input area to choose the model for your next message. On mobile, the same controls are available from the compact bottom bar.

Mobile model selector

Open More to adjust model, thinking level, tools, and sandbox settings.

Mobile More panel for chat settings

Model-Specific Settings

Thinking / Reasoning Models

For models that support extended thinking (like DeepSeek Reasoner or Claude with thinking), annodex exposes a thinking level control in the chat interface. Choose between:

  • Off — standard response mode
  • Low / Medium / High — progressively more reasoning tokens

Tool Configuration

Tool presets can be configured per session to control which capabilities the agent has access to:

  • Full — all available tools (shell, file read/write, search, etc.)
  • Read-only — file reading and search only
  • Minimal — chat only, no tool access

On this page