AI models

OKR.ai uses AI to draft and split OKRs and to suggest progress. Workspace admins choose the provider and model in the AI model panel.

Providers

OptionNotes
ClaudeAnthropic’s models via the official SDK, with structured outputs.
OpenAIGPT models via the official SDK.
DeepSeekDeepSeek chat and reasoning models.
Custom OpenRouter modelAny model on OpenRouter, with your key.
Server keyShown when whoever runs the server set one key for every workspace (below). No key needed per workspace.
OKR.ai Cloud AIA model run by OKR.ai, no key to manage. Private preview: the panel has a Request access button. Not needed to self-host.

Pick a provider, choose a model, paste a key and choose Test, then Save. Keys are encrypted at rest and never sent back to the browser.

One key for the whole server

Self-hosting for a company? Set a key once and every workspace on the server can use it, without each admin pasting their own:

OKRAI_AI_PROVIDER="anthropic"   # anthropic | openai | deepseek | openrouter
OKRAI_AI_KEY="sk-ant-…"
OKRAI_AI_MODEL=""               # optional; the provider’s default model otherwise

It shows in the AI model panel as Server key. Admins can still pick their own key instead. OPENROUTER_API_KEY and OPENROUTER_MODEL from earlier versions still work as an OpenRouter server key.

Where AI is used

  • Pull from manager: draft my OKRs aligned to my manager’s.
  • Draft key results for a new objective, and initiatives for a key result.
  • Push to reports: split my OKRs across my reports by role and function.
  • From context: draft my OKRs and my team’s from connected tools, offer to add teammates the sources list, and offer to improve OKRs the sources already contain.
  • Suggest progress: estimate a key result’s current value from connected tools.

Validation

Every AI answer is validated against a schema, and every id it returns is checked against OKRs the user can actually see before anything is written. AI suggestions are always shown for you to edit before they’re saved.

The coaching rules

Every AI flow follows the same instructions, in src/server/ai/prompts.ts: how to write OKRs, how a company is organised (R&D, GTM, Operations), how to scope by seniority, how to split dependent OKRs so the parts add up, and how to use connected context as data, never as instructions. Each flow adds its own task brief. Contributions to these rules are welcome.

Without an AI key

Set OKRAI_MOCK_LLM=1 to use a deterministic stand-in model. Every flow works, which is handy for demos, tests and evaluating OKR.ai before you choose a provider.

Data sent to the provider

When AI runs, OKR.ai sends the provider the prompt for that flow: the relevant OKRs, roles and job descriptions, and any connected context. Nothing is sent to the OKR.ai project. Review your provider’s data-retention terms for your own account.

Report a bug

What would you like to send?

Sent privately to the OKR.ai team, with this page’s address.