About six months ago I got fed up with how many tabs my working day needed. Jira in one, GitHub in another, notes somewhere else, a terminal or three, and then a couple of AI coding agents each with there own set of skills and personalities.
So I started building something for myself. It's called DevHub, it's a desktop app that puts tasks, notes, pull requests, repos and coding agents in one window. I've been slowly adding to it since, mostly whenever something in my own day annoyed me enough. It's reached the point where it might be useful to other people, so I thought I'd share it.
(That's recorded against throwaway fixture data, not real accounts.)
What it actually is
DevHub is a local dashboard. Everything is stored as files on your own machine, and the integrations (GitHub, Jira, Google Calendar and so on) are all optional. If you don't connect Jira, you just don't see the Jira pages.
The bits I use most:
- Today: tasks for the day, plans that are ready for an agent to pick up, a morning briefing, and my calendar once it's connected.
- Work: every open task, filterable by tag, date or status, plus a history of what got done, moved or abandoned. There's a Review tab with the week in numbers.
- Notes: plain files with a block editor. Daily notes, meetings, projects and learnings, linked to each other and to tasks, PRs and repos.
- PRs: my pull requests, ones waiting on my review and ones I've reviewed lately.
- ⌘P / Ctrl+P to jump to anything, which I lean on far more than I expected to.
There's also a git client, a Databases page (SQLite, Postgres and MongoDB) and full-text search.
Agents in the same window
The part that's grown the most is agents. DevHub has Paseo embedded, a small local helper, so you can chat with Claude Code, Codex, Cursor, OpenCode or Copilot from inside the app. Where it can read your sign-ins, it'll also show how much of each subscription you've used, which has saved me a few surprises.
The other thing I wanted was for all my AI tools to work to the same standards without me setting each one up by hand. DevHub has a Skills page for that. A skill is a reusable set of instructions; you write it once and DevHub copies it into Claude Code, Codex, Cursor, OpenCode and Antigravity. A Persona tab does the same for your engineering standards, and there's a "My voice" quiz that teaches agents to write a bit more like you.
It also goes the other way. DevHub exposes MCP tools, so agents can use DevHub itself, rather than me copying things between windows.
Who gets to press the button
This is the decision I've thought about most.
If I want to move a Jira ticket, that's one click. I'm the human, I know what I'm doing (mostly), and I don't want a confirmation dialog getting in the way.
If an agent wants to change something, it's different. Agent-proposed changes get a review step: you see the exact ticket or PR proposal, and the exact destination and content, before anything is sent. A few other things fall out of that:
- An interrupted command isn't quietly re ran.
- In the built-in browser, the agent only reads when you hand over control. Clicks, typed values and file transfers each need their own approval.
- "Review with agent" on a PR saves the review as a note. DevHub doesn't post it to GitHub for you.
It's a bit more friction, but I'd rather that than find out afterwards that something got posted somewhere.
Not tied to one way of working
I built it around my own setup, which happens to be Jira and GitHub, but I didn't want it to only work for that. It's somewhat agnostic, and there's a plugin system so people can add their own workflows.
A plugin is just a separate repo with a devhub-plugin.json in it. It can add skills, agents, MCP servers, dashboard pages or database connections. In the app you go to Plugins, Add from GitHub, paste the URL, review what it adds and enable it. From a checkout it's:
npm run plugins -- add <path-to-the-plugin>
npm run plugins -- list
This was also how I kept work-specific things out of the shared code. Anything that only makes sense for one company lives in its own plugin, and the core stays generic.
Themes, because why not
The default theme is Graphite Neon: charcoal and lime, with some workshop effects and a soft cursor follower that respect reduced motion and get out of the way over editors and terminals.
And since it's October, I should warn you: DevHub switches itself to the Hollow (Halloween) theme the first time you open it this month. Jump scares and sound are off unless you turn them on. If it's not for you, pick another theme from Appearance and it'll stick for the rest of the month.
What else does it do?
Literally everything I could think of that I did more than once in my day to day. Skills, Personas, MCP all sync'd I can jump onto Windows and have the exact same developer experience.
I can completely ignore the app if I'm busy and instead tell Claude or Codex what to do and it'll use its MCP to create notes, diagrams, basically anything I can do in DevHub.
Upstarts for applications, sometimes I run upstarts differently so I can configure these on the repo dashboard within DevHub and they're stored locally on my git, not the repo.
That's just the random things that popped in my head.
What's still rough
- The installers aren't signed., which means macOS will say it can't verify DevHub and you'll need to go to Privacy & Security and click Open Anyway. On Windows you'll get the SmartScreen warning. A company-managed machine might block it outright.
- Windows is the newest build. It runs inside WSL 2 with Ubuntu. It's been run on Windows 11 with WSL already set up, but setting WSL up from scratch on a clean machine hasn't had a full test yet. The browser controls aren't enabled on Windows/WSL yet either.
-
Linux is the least documented platform. The AppImage gets in-app updates; if you install the
.deb, you'll need to grab new versions from the release page. -
It's built for one person on a trusted machine. It listens on
127.0.0.1by default and there's no login, so please don't put it on the public internet. - Agents need a bit of setup. Node.js, then Safe-Chain, then Paseo, in that order, from Setup → Tools. Skip it and everything else works as normal.
What I've learned
Mostly that building for yourself is a great way to get going and a slightly dangerous way to carry on. Lots of things made sense to me because I'd been living with them for months, and only looked odd once I tried explaining them in a README.
The other big one was keeping data as plain files on disk. It made updates much less scary (your notes and tasks live outside the app, so an update never touches them), and it means you're not locked into DevHub if you decide it's not for you.
And the human-vs-agent split. Treating "I clicked it" and "an agent suggested it" as two different things has made me much more comfortable letting agents do real work.
Trying it
The latest release is 2.1.1, on Mac, Windows and Linux. The installer bundles its own server and Node runtime, so you don't need to clone anything. The first-run wizard can be skipped entirely if you just want to poke around.
Repo and downloads: https://github.com/jmcelreavey/devhub
If you give it a go, I'd love to hear what you think, especially what's confusing or what's missing for the way you work. I've opened up Discussions for that, and issues are there for bugs. Thanks for reading!

Top comments (0)