The interview is real work now.
You get a real codebase, a real budget, and a real task — and you work the way you work every day: your tools, your machine, your judgment. Setup takes about two minutes.
What's in your invite
The hiring team sends you a link with one-time credentials. You'll need these four things:
Git remote URL
https://tasted.dev/git/<session>
Clone this to get the task repo.
Git credentials
A username and password for the remote. They only work for your session.
API key
One-time key for the model gateway. It meters your token budget.
Model aliases
eco, standard, premium — use any as your model name. Real model ids (like claude-sonnet-5) route to the same configured model.
Clone the repo
Replace USERNAME and PASSWORD with
your session credentials. The password is long — paste it carefully.
# git will prompt: Username -> {session_id}, Password -> your git token
# save them so pushes don't re-prompt:
git config --global credential.helper store
History on the remote is immutable — force-pushes are rejected — so commit continuously as you work. Every push runs the task's checks.
If you're asked to configure anything else
You shouldn't be. The repo, the budget, the models, and the checks are all configured for you. If a credential was lost, ask the hiring team to rotate it — they can generate fresh ones in seconds.
Point your agent at the session
Choose the tool you already use. Both protocols are supported by the same session key.
Claude Code
Set these environment variables, then start claude in the repo directory.
The session key goes in ANTHROPIC_AUTH_TOKEN; the model is one of your aliases.
export ANTHROPIC_BASE_URL=https://tasted.dev
export ANTHROPIC_AUTH_TOKEN=sk-taste-…
export ANTHROPIC_MODEL=claude-sonnet-5
# gateway model discovery: lets Claude Code see the session's models
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
# then, in the repo:
claude
Verify before starting: claude --version should print a version.
Headless runs work too: claude -p "…" --dangerously-skip-permissions.
Use a real model name like claude-sonnet-5 or an alias like
standard — both route to the same configured model.
OpenCode
Create an opencode.json in the repo root pointing at the
session. The key stays out of the file, read from TASTE_API_KEY.
"$schema": "https://opencode.ai/config.json",
"provider": {
"taste": {
"npm": "@ai-sdk/openai-compatible",
"name": "Taste session",
"options": {
"baseURL": "https://tasted.dev/v1",
"apiKey": "{env:TASTE_API_KEY}"
},
"models": {
"eco": { "name": "Eco" },
"standard": { "name": "Standard" }
}
}
}
}
export TASTE_API_KEY=sk-taste-…
opencode run --model taste/standard "…"
# or just: opencode
Any OpenAI- or Anthropic-compatible tool
Cursor, Copilot, custom agents, SDKs — point the base URL at
https://tasted.dev/v1 with your session key and pick an alias as the model.
The same session works with both protocol styles:
export OPENAI_BASE_URL=https://tasted.dev/v1
export OPENAI_API_KEY=sk-taste-…
export OPENAI_MODEL=eco
export ANTHROPIC_BASE_URL=https://tasted.dev
export ANTHROPIC_AUTH_TOKEN=sk-taste-…
export ANTHROPIC_MODEL=standard
Verify, then work
A 10-second connectivity check
curl https://tasted.dev/v1/budget \
-H "Authorization: Bearer sk-taste-…"
You should get JSON with your remaining budget. Then ask your agent something simple in the repo — if it answers, you're live.
Troubleshooting
| Error | What it means |
|---|---|
401 / authentication required | Wrong or rotated key — ask for a fresh one. |
403 / forbidden | A capability is disabled for your session's plan (e.g. streaming). |
429 / budget exhausted | The token budget is spent. The session is complete — push your work. |
400 / model not found | The alias isn't in your session. Use eco, standard, or premium. |
"issue with the selected model" in Claude Code | Enable gateway model discovery: export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1. |
non-fast-forward on push | History can't be rewritten. Commit on top instead of force-pushing. |
Same task, same models, same budget — for everyone.
Every candidate in a cohort gets identical conditions. Scores are calibrated per level, and every result carries an audit trail. The evaluators see your work artifact — not your camera feed, not your keystrokes.
Your environment stays yours
Taste observes exactly two things: model traffic through the gateway and every commit you push. Nothing else.
No tool you haven't chosen
If you don't use AI agents, the task is completable without them — the budget just goes further.
History you can't rewrite — and don't need to
Force-pushes are rejected so the timeline is honest. Dead ends and recovery are part of engineering — they're part of your score.
Treat it like a normal day of work.
Plan before you type, commit as you go, and let the dead ends show — recovery is signal, not noise. The engineers reviewing your session are looking for judgment, and judgment is exactly what your everyday workflow already produces.
Setup takes ~2 minutes · the work is the interview