Documentation menu
Jan
Use CAPI as a remote provider inside Jan alongside local models.
2 min read
Jan is an open-source desktop client designed to run models locally. It also supports remote OpenAI-compatible providers, which lets you keep private work on-device and route everything else through CAPI.
Prerequisites
- Jan installed.
- A CAPI API key.
Add CAPI
- Open Settings → Model Providers.
- Choose OpenAI (or add a custom provider if your build supports it).
- Set:
| Field | Value |
|---|---|
| Base URL | https://capi.ai/api/v1 |
| API Key | capi_sk_live_... |
- Add model IDs manually, for example
gpt-5.6,claude-opus-5,gemini-3.1-pro.
Jan lists remote and local models in the same picker, so switching between them is a dropdown change.
Choosing where a prompt runs
A practical split:
- Local (privacy) — anything containing customer data, credentials, or internal documents.
- CAPI (capability) — long-context analysis, multimodal input, and tasks where a frontier model clearly wins.
- CAPI (cost) — high-volume simple turns where a small hosted model is cheaper than the electricity for a local one.
Because both appear in one picker, the decision stays a per-conversation choice rather than a configuration change.
Model selection
| Task | Model |
|---|---|
| Quick drafting | deepseek-v4-flash |
| Reasoning and review | claude-opus-5 |
| Long documents, images | gemini-3.1-pro |
| General default | gpt-5.6 |
Offline fallback
Jan works without a network when pointed at local models only. If you travel or lose connectivity, the remote provider simply errors while local models keep working — no reconfiguration needed.
Assistant templates
Jan's assistants bundle a model with a system prompt. Attach a CAPI model to an assistant when you want consistent remote behaviour, and leave the default local model for ad-hoc chat.
Troubleshooting
Provider shows no models. Jan requires explicit model IDs for remote providers; it does not fetch a list.
Requests time out. Local model threads may be saturating the machine. Reduce local concurrency, or switch the conversation to a remote model.
Key rejected after working previously. The key may have been rotated. Update it in the provider settings.