
Resources and guides.
Get set up, choose an explanation depth, and see exactly how your code is handled.
Get started in about a minute.
Unvibe is a desktop app that opens a panel beside Cursor, VS Code, or any app where you can select code. It reads only what you select and never uploads your repo.
Download and open
Get the .dmg for Mac (Apple silicon or Intel) or the portable .exe for Windows x64. Open it and Unvibe waits in your menu bar or tray.
Mac: .dmg · Windows: x64 portable .exeSelect code anywhere
In your editor, terminal or browser, select a function you did not write or an AI change you do not fully trust.
Control+U on Mac · Ctrl+Alt+U on WindowsUnderstand and keep it
A panel beside your editor explains the code at the depth you pick. Ask a follow-up, or click Test me to check what stuck.
Lessons save to your Library, on your computerFive explanation depths.
The same code, explained five ways. Pick the depth that matches what you already know. New through Advanced are free; Expert is Pro. The sample below is written by hand to show the range. It is not live model output.
Intermediate depth
Best for: Full-stack engineers reviewing PRs and verifying AI agent code.
export function useDeduplicatedQuery<T>(url: string, ttlMs = 30000) {
const controller = useRef<AbortController | null>(null);
return useCallback(async () => {
controller.current?.abort();
controller.current = new AbortController();
const cached = cache.get(url);
if (cached && Date.now() - cached.timestamp < ttlMs) {
return cached.data as T;
}
const res = await fetch(url, { signal: controller.current.signal });
const data = await res.json();
cache.set(url, { data, timestamp: Date.now() });
return data as T;
}, [url, ttlMs]);
}This implements an asynchronous Stale-While-Revalidate query cache with cooperative task cancellation:
• Uses AbortController to decouple lifecycle management from HTTP transport, shielding against out-of-order responses. • Employs a TTL-bounded in-memory LRU map to throttle API egress. • Properly surfaces DOMException ('AbortError') distinct from network failures, preventing false-positive error state triggers in the UI tree.
How your code is handled.
Unvibe is not a local-only tool. Your selected code is sent to a cloud model to write the explanation. A secret scanner runs on your machine first, and anything that looks like a key or token is blocked or held for your confirmation.
Selected code
The code you select, or a git diff with Pro
Local secret scan
Pattern checks for cloud keys, API tokens, private keys, and risky assignments
Filtered snippet
Sent over HTTPS to the model provider, and the answer streams back
Panel beside your editor
The explanation, follow-ups and a Test me question
Unvibe does not clone or index your repository. It sends the code you select plus limited context such as file name and language.
Unvibe does not build a training set from your code. Provider retention follows the provider’s API terms, described on the privacy page.
Saved explanations, notes, and quiz history live on your device. Your sign-in token is sealed with the OS keychain. Optional sync stores learning metadata, not your code.
Keyboard shortcuts.
One shortcut starts a review. Everything after that works from the keyboard too.
Brand colors and type.
Writing about Unvibe? Copy the colors below and use the fonts as listed.
Colors
The colors used on this site.
Type
Bricolage Grotesque, bold and tight.
Instrument Serif Italic, for the one word that matters.
JetBrains Mono for code and shortcuts.
Inter for body text and small labels.