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
| Option | Notes |
|---|---|
| Claude | Anthropic’s models via the official SDK, with structured outputs. |
| OpenAI | GPT models via the official SDK. |
| DeepSeek | DeepSeek chat and reasoning models. |
| Custom OpenRouter model | Any model on OpenRouter, with your key. |
| Server key | Shown when whoever runs the server set one key for every workspace (below). No key needed per workspace. |
| OKR.ai Cloud AI | A 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.