Show HN: Claudoro, Pomodoro timer embedded in the Claude Code statusline
github.com45 points by emson 2 days ago
45 points by emson 2 days ago
3 weeks ago I had a nasty accident and fractured my vertebrae. As I lay in bed I needed something to take my mind off it all so built "Claudoro".
Claudoro is a pomodoro timer built right into the Claude Code status line, as well as can be directly controlled from Claude Code and the CLI. A few years ago I built "pymodoro" which was great, but recently I felt I needed something embedded in the tools I actually use, and I also wanted something that was flexible, and I could tweak and nudge.
Anyway I hope it is useful to you, and I'd love some feedback on how to improve it.
Thank you...!
PS this is a write up all about how it works etc: https://benemson.com/blog/agents/claudoro-pomodoro-timer-cla...
From the title I thought it’d be a timer for the agent itself, so it doesn’t waste time on endless thinking loops, etc. Also for tmux (which I always run claude inside) That is what I hoped for. Claude as a shell? I think you spent more time in tmux than Claude, right? Ooo that's cool thank you. That's really useful!
My other CLI project was: https://github.com/emson/pymodoro Nice. I think there will be a cottage industry of porting every Mac menu bar utility to Claude. I can't use this until it doesn't show seconds. A MM:SS timer is tolerable when it's in my menu bar, but a ticking timer right where my focus is during a work session would be very distracting to me.
The best version of this, for me, would be one that leans into Claude's ability to customize its own statusbar. If Claudoro is in charge of writing timer data to somewhere Claude can see it, I can tell Claude exactly how to display the timer in the statusline. > I think there will be a cottage industry of porting every Mac menu bar utility to Claude. As long as those native (Objective-C / Swift) menu bar apps are ported as native (Go, Rust, Zig, etc.) binaries for Agent CLI(s) like Claude Code or Codex CLI to use, instead of JavaScript, as this project is written, then the broader community of Agent CLI users will be fine. Otherwise, it will be another nightmare induced by JavaScript. Love that it follows you from terminal to terminal, super useful. Though, if you're following Cal Newport-ian rules, watching over multiple agents doing their work is no longer a 25 minute "deep work" Pomodoro, and god knows Newport has been complaining about it [1] [1]: https://calnewport.com/avoiding-digital-productivity-traps/#... Nice! I love Cal Newport. I've definitely found spinning up multiple Claude Code instances eats into your focus, and you can "lose yourself" quite quickly.
I find I use pomodoros more as nudges, and use the "beeps" to bring me back if I'm in the browser or something. but yeah... it's a trap for sure! Great idea! I just created one for Pi Fantastic. I think these small productivity tools embedded in harnesses is pretty powerful.
I especially like that you can get the AI to use it and also just pop into the CLI.
Also nice to generate useful web dashboards etc I like this. Small tools inside the workflow feel much more useful than separate productivity apps I have to remember to open. I ended up building a vs-code/IDE style workflow for claude that has a "file browser" of CC sessions in the left column, sorted by repo, and then terminal in the right column, and then I've been tacking features like this onto it Fantastic! You should open source it Here you go. The green bar is the claude code 5 min cache expiry countdown timer (anthropic charges a fraction of cached context, I forget something like 10 or 30% of the normal price, but the cache is only 5 min for most users, 1 hr for enterprise/premium) https://github.com/Hadlock/cscope/ It's not amazing code but it's tooling that works for me. Me too. Also it’s good to get decent reports that can be used for other things. For example the logs help me fill in my time sheets. Also it forces me to take breaks I recently had a nasty accident too and snapped my collar bone, broken tibia, and 6 broken ribs, so I can absolutely relate. Claude Code was there for me in a big way as well :-) It's a long road to recovery. I'm 5 months in and still in a lot of pain, but it does (slowly) get better. Hope you're spirits stay up! Thanks for sharing. I was stuck in a Greek hospital for 8 days with 2 fractured vertebrae, before I could get home.
It’s easy to get into a spiral, but putting your mind to build something really helps.
I do hope your ribs and collar bone is getting better?
I’ve been lucky, as it will heal but could have been really bad. Phew! Opus is so slow these days what I really want is a bell sound to ring when it's done. I kick off some task and then it takes 3-12 minutes to complete. It's wrong, so I tell it to revert and try again with slightly different instructions. Have you tried analysing all your prompts, and then telling it to "figure out" what custom skills might improve your prompts?
I do actually have another project I'm working on that does this... it's been super useful for seeing how I prompt, what Skills I use and getting them to evolve and improve (I know Hermes does some of this, but it's been interesting rolling my own - will release soon!!) I have a pretty specific workflow, I deal with live systems a lot (primarily in staging but occasionally prod) and have a really neat skill that has hooks into all the various things and then writes (&& checks in git) an investigation doc (.md) using a template into a git knowledgebase by month/quarter. That knowledgebase is really useful for frontloading the context of my new sessions as a lot of my work is iterative on previous work. It is really good at 80% of tasks, but simple stuff like using sops or modifying subcharts in helm it really struggles with. I do a lot of integration work between monorepos and Opus 4.7/4.8 really struggle with that kind of work. Opus is so bad at sops work I just outsource that to Codex/GPT5.5 now because the failure rate is so high. The other high failure rate things is opus correctly predicting where endpoints will end up (stacked endpoints), when you have an ingress with a main monorepo but it's endpoints are the outputs (not just json regurgitated/passed forward). I figured by having the clanker write it's own documentation about what it did, and then the next time saying "go look at invest doc 2026-06-29-TICKT_1234.md, do that again, but here's what we're doing differently and why..." and it would immediately grep the situation, but it doesn't. As alluded to earlier I've been exploring other models since the corporate blessed one is struggling to keep up. Curious to see what you release. You can use edit your settings.json in ~/.claude and put a hook for it like this: That hook is also called when subagents stop which means you'll get a lot of false positives. Ideally you are only notified when the main agent stops, the main agent has a question, or a subagent has a question. I created a script that figures out if any of those states apply before emitting a macOS notification and then called it in each hook: Your website is broken btw - Clicking into another article through related work goes to the same page Great idea and I’ll definitely try it but all those flags needed to run the startup command scare me lol It has sensible defaults just do /pomo start It’s only if you want to customise it. Also CC will do it for you. It’s very agent friendly Side note, many windows people still don't know about psmux https://github.com/psmux/psmux Ah nice thanks. Love tmux, incidentally I came across this the other day as an alternative to Ghostty: https://supacode.sh/ Many windows people don’t even know they have a native package manager now in winget ! tool is great by your readme is pure unreadable ai slop - try to naturalise it a bit Mmm apols. You’d think I’d have learned my lesson by now, but it’s just so seductive to have it write for you.
I got burned with this very HN post for doing just that, but they kindly let me rewrite it.
Will tweak it. Thanks for the feedback!
fellowmartian - 10 hours ago
felooboolooomba - 11 hours ago
gbraad - 2 hours ago
emson - 11 hours ago
incidentist - 5 hours ago
guessmyname - 4 hours ago
pj_mukh - 9 hours ago
emson - 8 hours ago
marcuskaz - 10 hours ago
emson - 10 hours ago
murats - 9 hours ago
hadlock - 8 hours ago
emson - 8 hours ago
hadlock - 4 hours ago
emson - 9 hours ago
freedomben - 10 hours ago
emson - 9 hours ago
hadlock - 9 hours ago
emson - 8 hours ago
hadlock - 5 hours ago
momentmaker - 8 hours ago
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "afplay ~/.claude/hooks/chime.wav",
"async": true
},
hombre_fatal - 7 hours ago
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "script.sh",
"timeout": 10
}
]
}
],
"PreToolUse": ...
"PermissionRequest": ...
"Elicitation": ...
chychiu - 5 hours ago
Vaslo - 9 hours ago
emson - 9 hours ago
tiahura - 10 hours ago
emson - 9 hours ago
jazzyjackson - 5 hours ago
OttoVonBizark - 10 hours ago
emson - 9 hours ago