Models and keys
TraceCI runs on your key, on a model you choose from a curated list. Both of those constraints exist for specific reasons, and both affect the quality of what you get back.
Why bring-your-own-key
TraceCI is publicly reachable and has no accounts. Running it on a shared key would mean the first person to find it could exhaust the balance for everyone else. Requiring your own key also means there is nothing to store: it arrives in a request body, lives in the run configuration for the duration of one investigation, and is gone.
What happens to your key
- It is sent to the TraceCI API with one request, over the same connection as the run.
- On the server it is passed as a constructor argument to the model client. It is deliberately not written into the process environment, because that would leak one user's key into every other concurrent request in the same process.
- It is kept in the run configuration under a name the checkpointer refuses to persist, so it never reaches graph state or checkpoint metadata — and therefore never reaches a shared investigation record.
- In your browser it lives in memory by default and disappears on reload. Session retention is opt-in from settings and still ends when the tab closes. It is never written to localStorage.
It is not in the record either
Why the model list is curated
Every model offered is known to support tool calling. That is an entry requirement, not a nicety, because a model without it fails silently: it never emits a tool call, the graph walks straight to the diagnosis step, and you get a fluent paragraph of confident nonsense with no error anywhere.
A free-text model field would make that failure typeable. A dropdown makes it impossible, and Check key and model in the workspace verifies it directly by asking a question that can only be answered by calling a tool.
Choosing one
| Situation | What to reach for |
|---|---|
| First run, no paid key | The free Groq tier. Llama 3.3 70B has the highest token budget of the free options and is reliable at tool calling. |
| Obvious failure — dependency, lint, config | Anything, including the smallest free model. The log already contains the answer; the model is formatting it. |
| Subtle regression | A stronger model. The decision that matters is whether to open a source file rather than guess from the traceback, and that is where small models most often go wrong. |
| Repeated runs in quick succession | A paid tier. Free plans cap tokens per minute, not just requests, and a re-run inside the same minute is the most common way to hit a 429. |
Token budgets and why the log window shrinks
Free plans cap tokens per minute. One investigation is three model calls in about fifteen seconds, and each call resends the whole conversation — so a full-size log window plus a file read can burn well past a free-tier minute and take a rate-limit error halfway through the investigation.
TraceCI therefore applies a tighter context budget on free-tier models: a smaller log window, smaller file reads, a smaller diff. The workspace tells you when this is in effect.
Shrinking is not free. Cut the window too far and the traceback falls out and the diagnosis becomes a guess. The tight profile is tuned so that the anchored region and the tail both still fit — which is exactly what the windowing is built to guarantee — but on genuinely subtle failures a full-budget model still does better.
The GitHub token is separate
Reading runs, logs and source needs GitHub access, and that is configured on the server, not by you. Without it TraceCI is limited to public repositories and to GitHub's unauthenticated rate limit, which a single investigation can exhaust. Whether a token is configured is shown in settings.