{"slug": "hopping-claudes", "title": "Hopping Claudes", "summary": "Developer Olaf Alders created a custom Claude Code agent dashboard called Clodhopper to track AI coding agents across git worktrees and tmux sessions, replacing the need to flip through multiple terminal windows. The open-source tool, served privately on his Tailscale network, provides a web interface to monitor CI status, stalled tasks, and merge-ready work, addressing his specific workflow requirements and supply chain security concerns.", "body_md": "Dave Rolsky recently wrote about how he [vibe-coded some\napps](https://blog.urth.org/2026/06/27/i-vibe-coded-some-apps/). One of the\nneat things about today’s tools is that we can write tools to scratch personal\nitches with a lot less effort and friction. I’ve written a [macOS menu bar\ntimer](https://github.com/oalders/tiktimer), a custom Triathlon training plan\ngenerator (with a static website and an iCal subscription), added a lot of\nfunctionality to [My Mind is Racing](https://mymindisracing.com) and, most\nrecently, I’ve vibe coded [yet another Claude Code agent\ndashboard](https://github.com/oalders/clodhopper).\n\nI could have used someone else’s app but:\n\n- I wanted something that does EXACTLY what I want\n- It has to work with my very specific way of using\n`git worktree`\n\nand`tmux`\n\n- There’s so much vibe coded stuff out there from people that I don’t know and don’t yet trust. I don’t want to introduce a new supply chain risk into my dev stack\n\nI asked Claude to do a bit of research and, after finding\n[disler/claude-code-hooks-multi-agent-observability](https://github.com/disler/claude-code-hooks-multi-agent-observability)\nit used that as inspiration. The first 80% was quick, but there’s a lot of\nfaffing about after that to get exactly what I want, because the LLM does not\nyet read my mind. I’ve been messing around with Claude Design, so after\nshipping the app, I decided we could make it prettier. Now I have my dashboard.\nI serve it on my Tailscale network, so that I can check on my agents using my\nphone without having to resort to a terminal. That keeps it available to me,\nbut also private.\n\nThis allows me to track where something is in CI, whether something is stalled, idle, or needs my feedback and what is ready for UAT or merge. My older flow was flipping through A LOT OF TMUX SESSIONS to try to figure out where everything was. No joy there. This is nicer for me.\n\nI’ve made the repo public as there’s no reason to keep it private, but I’ve only added the things that I need, because I’m the only user. Maybe your LLM can draw some inspiration when you write your own dashboard.\n\nNote that this blog post appears in the dashboard output. I don’t use LLMs to write my posts, but I do use them for scaffolding, proofreading, etc.\n\nQuick start:\n\n```\n# 0. Install ubi (the Universal Binary Installer) if you don't already have it.\ncurl --silent --location https://raw.githubusercontent.com/houseabsolute/ubi/master/bootstrap/bootstrap-ubi.sh | TARGET=~/local/bin sh\n\n# 1. Install the binary (see Install for manual download / build-from-source).\nubi --project oalders/clodhopper --in ~/local/bin\n\n# 2. From a project's root, wire the capture hooks into its Claude Code settings.\ncd /path/to/your/project\n\n# set up hooks in .claude/settings.json or .claude/settings.local.json (idempotent)\nclodhopper init\n\n# 3. Use Claude Code in that project as normal — events start flowing immediately.\n\n# 4. When you want to look, start the dashboard:\nclodhopper serve                 # http://127.0.0.1:4555\n```\n\nSee also:", "url": "https://wpnews.pro/news/hopping-claudes", "canonical_source": "https://www.olafalders.com/2026/06/29/on-hopping-claudes/", "published_at": "2026-06-29 18:05:14+00:00", "updated_at": "2026-06-29 18:21:01.937991+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools"], "entities": ["Claude Code", "Clodhopper", "Olaf Alders", "Tailscale", "GitHub", "Dave Rolsky"], "alternates": {"html": "https://wpnews.pro/news/hopping-claudes", "markdown": "https://wpnews.pro/news/hopping-claudes.md", "text": "https://wpnews.pro/news/hopping-claudes.txt", "jsonld": "https://wpnews.pro/news/hopping-claudes.jsonld"}}