Model and dictation connections
Choose where the interview runs.
IdeaForge calls the selected provider directly from your browser. There is no IdeaForge proxy, account, or application server between the page and the model. Hosted providers need their own API key; local providers need a loopback server and an installed model.
Current provider choices
| Choice | Credential | Best fit | What IdeaForge does |
|---|---|---|---|
| Claude (this viewer) | No key | IdeaForge opened inside a Claude viewer that grants model sampling. | Uses the viewer's built-in sampling capability. It is offered as the default only when that capability is actually present. |
| Anthropic | Anthropic API key | A hosted Claude path with separate question and wrap-up models. | Calls the Anthropic Messages API directly. Checking the key makes a small real request using the question model, because Anthropic exposes no browser-reachable model list to read instead. |
| OpenAI | OpenAI API key | A hosted OpenAI path, with its catalogue readable from the browser. |
Uses OpenAI-compatible chat completions. Checking the key reads
/models, which both authenticates and fills the model
suggestions in one request.
|
| Groq | Groq API key | Hosted OpenAI-compatible inference, with optional Groq transcription. | Uses Groq's OpenAI-compatible endpoint. The same key can cover both interview inference and Groq dictation when both choices match. |
| OpenRouter | OpenRouter API key | A hosted route to many vendors through one key. | Sends bearer-authenticated OpenAI-compatible requests to OpenRouter's allowlisted API origin, and reads its catalogue the same way. |
| Ollama (local) | No key in the current UI | A model served by Ollama on this device. |
Starts at http://localhost:11434/v1, reads the installed model
list, and requires you to choose or type a model instead of guessing one.
|
| LM Studio (local) | No key in the current UI | A model served by LM Studio on this device. |
Starts at http://localhost:1234/v1. LM Studio must have its
local server running and CORS enabled.
|
| Another local server | No key in the current UI | llama.cpp, vLLM, or another OpenAI-compatible server on this device. |
Accepts a typed OpenAI-compatible base URL only on
localhost or 127.0.0.1, and requires a model name.
|
Choosing the models
Every provider except the Claude viewer offers two model fields, because an interview does not spend its calls evenly. Each question is one call, and there are usually around a dozen. The wrap-up is a single call that reads the whole transcript and produces the refined prompt. Those are different jobs, so IdeaForge lets you answer them separately.
- Model for the questions runs every interview turn. This is where nearly all of the cost is, so a small fast model is usually the right choice.
- Model for the wrap-up runs once, at the end. It is the call that degrades first on a small model, so it is worth spending more here than on the turns.
Leave a field blank to use the provider's own default, which is shown in the field as placeholder text. Choosing a question model never changes the wrap-up: the provider's stronger default stays in place unless you replace it yourself. A local server has no stronger default, so there a single question model serves both.
Both fields accept any identifier the provider will answer to, and both suggest the models IdeaForge already uses. Pressing Check the key or Check the connection replaces those suggestions with the real list wherever the provider publishes one in a browser-reachable form. Anthropic does not, so its suggestions stay as the models IdeaForge defaults to; type any other Claude identifier directly. A suggested list is a convenience and not a guarantee: a hosted catalogue usually includes models that are not chat models at all.
Set up and verify a provider
- Select the provider. On a normal web page, Anthropic is the first-run default. Inside a compatible Claude viewer, the no-key viewer provider becomes the default.
-
Paste a hosted key, or set the local server address.
Local OpenAI-compatible addresses should include the API root, normally ending
in
/v1, because IdeaForge appends/modelsand/chat/completions. - Press Check the key or Check the connection. The check makes a real request and fills the model suggestions from the provider's own list wherever one is readable, without replacing a model name you typed.
- Choose the models, or leave them blank. Blank means the provider's default, shown in each field as placeholder text. A local server has no default, so it needs a question model before it will start. If the list is unavailable but you know the identifier, type it directly.
- Start the interview. The provider selection, credentials, local address, and both model choices are saved on this device when the provider is built for a check or an interview.
For local browser and server requirements, including hosted-page CORS and local network permission, continue to Local models and Docker.
How saved credentials behave
- One encrypted keyring stores a separate record for each inference provider, plus the selected transcription provider and its key.
- Switching providers does not overwrite the key saved for the previous provider. Returning to it shows a masked hint and reuses the saved value when the input is left blank.
- Server addresses and both model choices are remembered per provider in the same keyring even though they are not secrets. This is why a choice survives a reload, and why switching provider and back does not lose it.
-
Anthropic sends its key in
x-api-key. The OpenAI-compatible choices send bearer authorisation. Provider requests explicitly omit browser cookies. - Forget my key removes the whole stored credential payload and its wrapping key, including inference and transcription keys for every provider. It does not revoke a key at the provider; revoke it there as well when needed.
The encrypted-at-rest design and its limits are explained in Privacy and security. The short version is that a copied browser profile does not contain the API key in plaintext, but code already running as this origin could use the stored key in the same way the app can. Use a scoped, expiring key with a sensible provider-side limit.
Dictation is a separate provider choice
| Dictation choice | Key behaviour | Network behaviour |
|---|---|---|
| Browser recogniser | No IdeaForge transcription key. | Uses the browser's Web Speech implementation when it proves that it is alive. Its processing model is controlled by the browser, not IdeaForge. |
| Groq Whisper | Uses the inference key automatically when Groq is also the selected model provider; otherwise it has its own saved transcription key. | Sends recorded audio directly to Groq's transcription endpoint. |
| OpenAI transcription | Uses the inference key automatically when OpenAI is also selected; otherwise it has its own saved transcription key. | Sends recorded audio directly to OpenAI's transcription endpoint. |
| Off | No transcription key. | No IdeaForge audio capture or transcription request. |
The app tests the browser recogniser by behaviour rather than by the mere presence of an API. If it cannot prove that recognition works, it uses the selected hosted transcriber when one is configured, or keeps the keyboard as the reliable fallback. See Mobile and voice for platform details.
What happens when a provider fails
Provider adapters translate service-specific failures into one shared set of authentication, rate-limit, overload, network, timeout, response, cancellation, and configuration errors. Transient rate-limit, overload, and network failures are retried with backoff. Authentication, invalid configuration, unusable model output, and the request deadline require a user or model change instead.
A failed question does not dead-end the interview. IdeaForge uses a built-in checklist question for that turn and marks the source on screen and in the saved session. A failed final synthesis preserves the transcript, coverage, and open questions; only the generated refined prompt is missing. Use the troubleshooting decision tree when a check or turn falls back.
Provider account and API references
- Anthropic: API keys and Messages API.
- OpenAI: API keys and API authentication.
- Groq: API keys and security guidance.
- OpenRouter: API keys and API authentication.
- Ollama: OpenAI compatibility.
- LM Studio: local server documentation.
Implementation references
The current list and first-run selection live in
src/providers/index.js.
Request authentication, loopback policy, local-network options, and deadlines live in
src/providers/http.js.
The hosted and local OpenAI-compatible presets are in
src/providers/openaiCompat.js,
while Anthropic's browser-direct adapter is in
src/providers/anthropic.js.
Settings persistence is implemented by
src/store/secrets.js,
the UI flow by
src/ui/app.js,
and hosted dictation by
src/voice/transcribe.js.
GitHub Models and Copilot chat are deliberately not provider choices; the rationale
is recorded beside the registry in src/providers/index.js.