Focus Coach Dobby
AI Focus Coach
Focus Coach Dobby is an agent workflow that continuously watches your screen as you work. When you get distracted with messages, Twitter, etc., an obtrusive popup will appear to bluntly remind you to get back on track.
Features
- Set your focus session goals
- Access/edit your goals from the Mac menu bar
- Automatically monitor your focus session for distractions
- Very intrusive blocker when you're distracted
Implementation
I implemented Focus Coach Dobby with a couple friends using the following tools:
- Electron for the base app, with typescript, react, tailwindcss, and framer-motion
- Dobby, as super crude LLM from the Sentient Foundation
- Google Gemini for interpreting the user's screen
- Llamaindex Workflows for workflow orchestration
- Looping Isabelle GIF created in After Effects by rotoscoping the character from a scene and creating a loop

The workflow is fairly simple — we take a screenshot of the user's screen and feed it into Gemini, which has a pretty good understanding of screens (compared to ChatGPT from my anecdotal experience). Gemini decides if and how the user is distracted, keeping in mind that the user's screen might be related to but not directly the focus task (e.g. if my goal is to focus on coding, I might visit the Stripe documentation).
If a valid violation of the user's focus task is detected, a large popup will take over the screen. The popup is an Electron browser window with transparency that takes up the entire screen, meaning you cannot click around the popup to dismiss it. The violation message is provided by Dobby, which is a uncensored and unhinged LLM from the Sentient Foundation (we started this project during a Dobby hackathon).
Thoughts
After building with Dobby, I think an unhinged LLM is rather interesting. I can see it being hugely useful as an accountability coach or in another context where you need someone to be VERY real with you. Sometimes the typical LLMs have a way of speaking that is a little too non-human.
The code is published on GitHub here.