Use your Claude Code subscription as an interview coder. A stealth desktop overlay that captures your screen, transcribes the interviewer, and streams back what to say and what to code.
One persistent Claude session sees every screenshot and hears every question. Press a shortcut, and it responds with an approach, working code, and what to say next. Invisible to screen shares and proctoring tools.
macOS only. Requires a Claude Code subscription and a free Deepgram API key.
- You join a video call. Feather sits on top, hidden from screen capture.
- Deepgram transcribes both the interviewer (system audio) and you (mic).
- Press
Cmd+H. Feather screenshots the coding problem and sends it to Claude. - Claude streams back a split view: talking points on the left, syntax-highlighted code on the right.
- Press
Cmd+Jfor a quick hint. A forked session returns 1-2 sentences you can say out loud. - Press
Cmd+Enterto re-solve with everything Claude has learned so far.
The overlay never resets. Every screenshot and transcript feeds the same conversation.
bun install
bun run devOn first launch, the setup screen prompts for your Deepgram API key (free at console.deepgram.com) and checks Claude Code auth. You can also configure effort level and thinking mode.
Press Cmd+, to reopen settings at any time.
| Key | What it does |
|---|---|
Cmd+H |
Screenshot the problem, solve it |
Cmd+Enter |
Re-solve with accumulated context |
Cmd+J |
Quick hint. something to say right now |
Cmd+Shift+[ / ] |
Browse previous responses |
Cmd+\ |
Show or hide the overlay |
Cmd+, |
Settings |
Cmd+Shift+Arrows |
Move the window |
Cmd+Shift+Q |
Quit |
| App | Electron 41, React 19, Tailwind 4 |
| Architecture | Effect v4. services, layers, Ref, Queue, Stream |
| AI | Claude Agent SDK. persistent session, fork, MCP tools |
| Audio | Deepgram Flux STT, ScreenCaptureKit Swift recorder |
| Build | bun, turborepo |
| Test | vitest, @effect/vitest |
| Platform | macOS only (ScreenCaptureKit, Swift) |
| Package | electron-builder (DMG) |
apps/desktop/
src/main.ts entry point. session, shortcuts, audio pipeline
src/preload.ts IPC bridge
src/renderer/ React overlay (SetupScreen, HintOverlay, App)
src/layers/ Effect live layers
src/services/ Effect service interfaces and test layers
src/tools/ MCP tools (show_code, show_diagram)
src/prompts/ system prompts (interview, code, system-design)
swift/ ScreenCaptureKit audio recorder
tests/ vitest
packages/shared/ Schema types. errors, audio, pipeline stages
packages/design-system/ UI components
Session. A single query() call with streamInput mode. Messages enter through an Effect.Queue fed as an AsyncIterable. The session stays open for the entire interview.
Tools. show_code and show_diagram are MCP tools registered on a local server. Claude calls them to push code or diagrams to the overlay's right panel.
Fork. Cmd+J forks the session (forkSession: true) for a one-turn query. The fork copies all context without changing the main conversation.
Stealth. Content protection on, always-on-top at screen-saver level, click-through with mouse forwarding, hidden from dock and mission control, process name set to a random system utility.
Settings. Stored in ~/Library/Application Support/Feather/settings.json. Deepgram API key, effort level, and thinking mode. Changes to effort and thinking require a restart.
bun run dev # vite + electron
bun run build # swift + vite + electron-builder
bun run test # vitest
bun run typecheck # tsc
bun run check # biomeThis tool is for learning and practice. You are responsible for how you use it and for following any rules that apply to your situation. This project does not encourage dishonesty.
