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.)
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:
There's also a git client, a Databases page (SQLite, Postgres and MongoDB) and full-text search.
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.
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:
It's a bit more friction, but I'd rather that than find out afterwards that something got posted somewhere.
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.
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.
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.
.deb, you'll need to grab new versions from the release page. 127.0.0.1 by default and there's no login, so please don't put it on the public internet.
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.
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!