Inspiration
We've all been there. It's 11pm, you're running on fumes, and you still have emails to send, messages to reply to, and tabs to sort through. The problem isn't that you don't know what to do, it's that you're too tired to figure out where to start. We noticed that most productivity tools assume you're at peak focus. None of them account for the reality that a huge chunk of real work happens when you're exhausted. We wanted to build something that actually helps in those moments, not by tracking your fatigue, but by taking the thinking off your plate entirely.
What it does
Vigil is a voice-first AI desktop copilot that lives in your menubar as a floating orb. It watches your screen, understands what app you're in and what's on the page, and proactively suggests actions you might want to take. You can talk to it or type, and it will discuss its plan with you before executing anything. It can control your browser (clicking, typing, navigating), read your emails, send messages, fill out forms, and handle the tedious stuff while you just approve or redirect. When you're too tired to think about what to do next, Vigil figures it out for you.
How we built it
Vigil is an Electron menubar tray app built with Node.js. The AI brain runs on Claude Sonnet 4 with extended thinking and interleaved thinking enabled, so the agent actually reasons step by step between every action instead of blindly firing tool calls. Screen context comes from Chrome DevTools Protocol (CDP) for browser apps and native accessibility APIs for desktop apps. Voice input uses Web Speech API with Whisper as a fallback. The orb is built with Three.js using a custom GLSL shader for the iridescent morphing effect, and it reacts to the agent's state (idle, listening, thinking, speaking). Proactive suggestions run on a separate lightweight pipeline using Claude Haiku, polling screen context every few seconds with debouncing and caching to keep it fast and cheap.
Challenges we ran into
The biggest challenge was agent intelligence. Early versions would take absurd roundabout paths to do simple things, like screenshotting the page to read text that was already in the DOM context. We had to completely rewrite the system prompt with explicit "simplest path first" rules, add pre-action validation to reject dumb tool calls before they execute, and implement recovery hints so the agent tries alternatives instead of repeating failed actions. Cross-platform support was another pain point since the original codebase was Windows-only with Win32 API calls. Porting native desktop control to macOS required rethinking the entire computer control layer. Getting the orb to look right was also harder than expected. Our first attempt looked like a flat blue square because of CSS border-radius clipping on the Three.js canvas.
Accomplishments that we're proud of
The proactive suggestions actually work and feel magical. You open Gmail and within seconds Vigil says "Summarize your 5 unread emails?" without you asking. The two-stage orb interaction (click tray to see floating orb, click orb to expand full panel) feels genuinely polished and was a crowd favorite when we demoed it. We're also proud of the extended thinking integration. You can watch the agent reason through its plan in real time, which makes it feel trustworthy instead of like a black box.
What we learned
Agent reliability matters way more than agent capability. A dumber agent that consistently does the right thing beats a smart agent that occasionally does something wild. We also learned that the system prompt is basically the product. 80% of the agent's behavior comes from how you instruct it, not from the model or the code. On the design side, we learned that small details like the orb reacting to state changes make a product feel alive in a way that no amount of features can replicate.
What's next for Vigil
Chrome extension for richer DOM context without needing CDP debug flags. Gmail, Google Calendar, and Slack integrations via MCP so Vigil can take actions across your whole workflow. A proper undo/rollback system so you can reverse any action within 10 seconds. And smarter preference learning so Vigil adapts to how you work over time without you having to configure anything.

Log in or sign up for Devpost to join the conversation.