πŸš€ Quick Start

Install the plugin globally using the omp plugin install command. Log in via /login makora and use /model makora to switch to Makora models.

# Install the plugin globally
omp plugin install omp-makora-provider
 
# Prompt for and validate API key
omp /login makora
 
# Select a Makora model
omp /model makora

πŸ”§ Configuration

The provider dynamically merges model discovery metadata from the Makora API with hardcoded overrides and custom endpoints. Provide API credentials explicitly via the MAKORA_OPTIMIZE_TOKEN environment variable if bypassing the OMP login interface.

FilePurpose
models.jsonAuto-generated Makora API models list; NEVER edit manually.
patch.jsonOverrides for limits, compat, and reasoning toggles.
custom-models.jsonCustom models utilizing per-slug endpoint overrides (baseUrl).

πŸ“¦ Dependencies & Ecosystem

All models are hosted on OpenAI-compatible vLLM endpoints via inference.makora.com.

  • DeepSeek V4 (Pro/Flash): Reasoning enabled via payload rewrite; returns reasoning or reasoning_content. Max 32768 tokens.
  • GLM 5.1 & 5.2 FP8: Native tool calling, but 5.1 requires client-side repair due to vLLM parser failures. Max 16384 tokens.
  • Kimi K2.6 & K2.7 Code: Vision capable (5 images max per request).
  • Qwen 3.6 (27B/35B): enable_thinking triggered via payload rewrite. Tool calling repaired client-side.
  • MiniMax M3 MXFP8: Vision capable (5 images max). Returns reasoning_content.

πŸ’‘ Best Practices & Patterns

  • Output Safe Caps: Always define maxTokens in patch.json. Makora API discovery does not emit output token limits automatically.
  • Payload Rewriting (before_provider_request): Map API-standard reasoning flags (e.g., DeepSeek’s thinking: {type}) into vLLM-native chat_template_kwargs dynamically before request dispatch.
  • Context Stripping: Strip tool_calls arrays from past assistant messages and reconstruct them into native XML before forwarding to GLM 5.1. This prevents the ZAI vLLM server from crashing with a 500: 'str object' has no attribute 'items' exception.

🚨 Gotchas / Anti-patterns

  • Developer Role Ban: The developer system prompt role is entirely unsupported by Makora’s vLLM chat templates. It will be silently dropped; you MUST set compat.supportsDeveloperRole: false.
  • Broken Streaming Tool Parsers: vLLM fails to parse tool calls correctly for Kimi K2.6, Qwen 3.6, and GLM 5.1 in streaming mode. The plugin forces tool_choice: "none" and skip_special_tokens: false, manually capturing raw <|tool_call_begin|> or <function=...> XML tags via the message_end hook.
  • DeepSeek V4 Flash Silent Nulls: Sending include_reasoning: true alone returns reasoning: null. You MUST pair it with chat_template_kwargs: { thinking: true }.
  • CoT Leaks: Disabling reasoning on GLM 5.1 may still leak Chain-of-Thought output into the standard content block terminated by a ``` marker.

πŸ” Research / References