// vscode tutorial · 10 minutes

Install, configure, ship — with a verdict on every answer.

A hands-on walkthrough from a fresh VS Code install to your first verified chat response, inline completion, and source-grounded drawer. Every step shows the exact prompt, the response you should see, and what the verdict pill means. When you're done, you'll know how to read the drawer, when to trust the answer, and what to do when it's marked PARTIAL or CONFLICT.

// step 01 · ~30 seconds

Install Wauldo Code from the VS Code Marketplace.

Open VS Code. Hit Cmd/Ctrl+Shift+X to open the Extensions panel. Search for Wauldo Code. Confirm the publisher is wauldo (not a fork or impersonator) and click Install.

VS Code Extensions panel showing the Wauldo Code extension search result with publisher 'wauldo' and an Install button.
VS Code Extensions → search "Wauldo Code" → publisher wauldo → Install

Prefer CLI?

code --install-extension wauldo.wauldo-code

After install, the Wauldo Code icon appears in the activity bar on the left. Don't click it yet — we need a key first.

// step 02 · ~30 seconds

Grab a free API key from wauldo.com/pricing.

Open wauldo.com/pricing. Scroll to the BASIC tier — $0/month, 500 requests, no credit card. Click the signup CTA, confirm your email, and copy the key from your dashboard. It starts with tig_live_ and is ~64 characters long.

wauldo.com pricing page with BASIC tier highlighted: $0, 500 requests per month, Get Free API Key button.
wauldo.com/pricing → BASIC tier ($0, 500 req/mo) → Get Free API Key

Keep the key private. Treat it like a password — don't paste it into git, Slack, or issue comments. If you leak one, rotate it from the dashboard immediately.

// step 03 · ~10 seconds

Paste the key into VS Code via the Command Palette.

In VS Code, hit Cmd/Ctrl+Shift+P to open the Command Palette. Type Wauldo: Configure API Key and press Enter. Paste your key into the input and hit Enter again.

VS Code Command Palette with 'Wauldo: Configure API Key' highlighted, and an input box receiving a pasted key.
Cmd/Ctrl+Shift+P → "Wauldo: Configure API Key" → paste → Enter

The key is stored in VS Code's SecretStorage — which maps to the OS keychain (Keychain on macOS, Credential Manager on Windows, libsecret on Linux). It is never written to settings.json, so committing your dotfiles is safe.

// step 04 · ~1 minute

Ask your first question. Read the verdict.

Click the Wauldo icon in the activity bar to open the chat panel. Paste this prompt:

Prompt · step 04

What's the difference between Box<T> and Rc<T> in Rust, and when would I use each?

The response streams word-by-word. When complete, a verdict pill appears under the message — most likely ● SAFE with a support score around 0.85–0.95 because this is well-covered in official Rust docs (available to the RAG corpus).

Wauldo Code chat panel: user asks about Box vs Rc in Rust, assistant gives a factual answer, a green SAFE verdict pill is visible below with a support score of 0.87.
Chat response with SAFE verdict pill · support_score typically 0.85–0.95
● SAFE = answer's claims are supported by retrieved sources
// step 05 · ~1 minute

Click the verdict pill. Read the claim drawer.

Click the ● SAFE pill. A drawer opens and shows what the backend extracted from the answer — each atomic claim, whether it was supported, contradicted, or unverified, and which source chunk supports it.

Verdict drawer opened in Wauldo Code. List of 3 claims with colored dots (green supported, grey unverified), one expanded claim showing the source chunk excerpt with highlighted text and a similarity score of 91%.
Claims list with supported / unverified / contradicted dots · expanded source chunk excerpt · similarity %

Typical breakdown for the Rust question:

  • Claim 1 — "Box<T> provides unique ownership" → supported (Rust Book §15.1).
  • Claim 2 — "Rc<T> enables shared ownership via reference counting" → supported (Rust Book §15.4).
  • Claim 3 — "Neither is thread-safe; use Arc<T> for that" → supported (Rust Book §16.3).

A drawer with all-supported claims is the cleanest signal you can get — the model didn't invent anything beyond the source material.

// step 06 · ~2 minutes

Attach a file. Ground the response on your code.

The default corpus covers popular docs (Rust Book, Python docs, React, etc.), but for your own project you want answers grounded in your code. Click the 📎 Attach button in the chat composer and select a file from your workspace — say your Cargo.toml.

Prompt · step 06

Based on the attached Cargo.toml, what features does this crate expose and which are enabled by default?

The file is uploaded to a tenant-scoped RAG index (per-user, private), chunks are extracted, and the next query retrieves from your file first. The drawer now cites your own Cargo.toml chunks, not public docs.

Chat panel with a Cargo.toml file attached (visible as a chip above the composer), user prompt asking about crate features, response grounded on the file with a SAFE verdict and the drawer citing Cargo.toml chunks.
Attached file chip visible · response grounded on your file · drawer cites file chunks

Privacy: your files stay in your tenant partition. No cross-tenant retrieval, no training-set ingestion. Delete the file from your workspace's corpus via Wauldo: Clear My Corpus in the Command Palette when done.

// step 07 · ~1 minute

Start typing. Ghost text appears.

Open any .ts, .py, .rs, or .go file. Start typing a function signature. After ~300 ms of idle, a ghost-text completion appears in grey after your cursor. Press Tab to accept, Esc to dismiss.

// You type:
function debounce(fn: Function, ms: number) {
  // ← ghost text appears here
VS Code editor with a TypeScript debounce function being written, grey ghost-text suggestion appearing after the cursor with the implementation body.
Ghost-text completion · Tab to accept · Esc to dismiss

Cancellation is immediate: if you keep typing, the in-flight completion is aborted — no stale suggestions catch up to you a second later. This matters for flow.

// step 08 · reference

Four verdicts. Four meanings.

The whole point of Wauldo Code is the verdict pill. Memorise these four states; the rest of the extension is just plumbing.

● SAFE

All claims backed by sources. Support score typically ≥ 0.75. Drawer shows all-supported claims. Default trust level: high. Ship what you see.

● PARTIAL

Some claims supported, some inferred. Support score 0.40–0.75. Drawer shows mixed dots. The model partially grounded its answer but added plausible-looking detail without backing. Trust level: medium. Read the drawer before copy-pasting.

● UNVERIFIED

No sources matched the answer. Either the question is out of scope for your corpus, or the answer is hedged enough to have no extractable claims. Trust level: low. Ask yourself whether you trust the model on this topic without grounding.

● CONFLICT

Answer contradicts a retrieved source. Hallucination rate ≥ 0.5 — the model said something the sources disagree with. Trust level: critical. Do not use as-is; read the drawer, find which claim fires and which source contradicts it.

// step 09 · decision tree

What to do when the verdict isn't SAFE.

Don't treat PARTIAL / UNVERIFIED / CONFLICT as "the extension is broken". Each one is actionable:

ON PARTIAL

Open the drawer, find unverified claims. Either (a) remove them from the answer before using it, or (b) re-prompt with explicit scope: "Only answer based on the attached file. Skip anything you can't cite."

ON UNVERIFIED

Your corpus is too small. Attach more files, or upload a reference doc (e.g. the library's README) as context. If your question is inherently outside any doc (design opinions, architecture trade-offs), UNVERIFIED is honest — use the answer with a mental asterisk.

ON CONFLICT

The model hallucinated against your own sources. Read the drawer — it highlights the contradicting claim and the source chunk that disagrees. Never copy a CONFLICT answer into code. Re-prompt or ask a narrower question.

Chat response with an amber PARTIAL verdict pill. Drawer shows 2 supported claims and 1 unverified claim highlighted in grey.
PARTIAL verdict · drawer shows 2 supported + 1 unverified claim
Chat response with a red CONFLICT verdict pill. Drawer shows the contradicting claim highlighted alongside a source chunk that disagrees with it.
CONFLICT verdict · contradicting claim vs source chunk
// step 10 · survival kit

Troubleshooting.

Four failure modes you might hit. All of them surface clearly in the extension; no silent degradation.

"Invalid API key" error

Your key is malformed or was revoked. Run Wauldo: Configure API Key again and paste a fresh one from your dashboard. If the key is correct and still rejected, check you copied the whole thing — keys are ~64 characters and it's easy to miss the trailing chars.

"Request failed" banner / yellow status pill

Transient network issue or API downtime. The status pill in the nav turns yellow. Click it to retry the last request. If it stays yellow for > 1 min, check api.wauldo.com/health — a 200 means the service is up and the issue is on your network.

Inline completions never appear

Three checks: (1) the file's language is supported — check Wauldo Code: Languages in Settings, (2) you've typed at least 8 characters since the last suggestion — the extension rate-limits trivial suggestions, (3) you actually paused — completions fire after ~300 ms idle.

"Quota exceeded" mid-month

You hit the 500-request BASIC cap. Upgrade to PRO ($29/mo, 10k req) from wauldo.com/pricing, or wait until the quota resets on the 1st of next month. The extension will resume automatically — no re-configuration needed.

Response is empty or "[no output]"

The model timed out or produced only whitespace. Retry with a shorter, more specific prompt. If it persists across unrelated prompts, the chat backend may be throttled — check the status pill.

Wauldo Code chat panel showing an 'Invalid API key' error banner with a 'Configure API Key' button to re-run the command.
Invalid-key banner with one-click shortcut to re-configure

You're done. Every answer now comes with receipts.

Next step: point Wauldo Code at a real project. Attach a doc, ask the question you'd usually Google. Read the drawer. Trust, or don't.

$ code --install-extension wauldo.wauldo-code