Show HN: Deckard, Claude-first terminal manager
github.comAfter a year of producing all my code through Claude Code, I was growing frustrated with losing Terminal tabs and not noticing when sessions are ready to continue. I looked around at all the terminal managers people have been building for this type of workflow and couldn't find anything that worked for me. Cmux came close but was too buggy in the area I cared the most about: knowing when my sessions are ready for input. I also felt like the sidebar was too cluttered and hard to parse visually.
So, I made my own Claude-first terminal manager and optimized it for the habits I've developed over the past year in this new way of creating software.
Claude Code terminals are the focus in Deckard, with classic terminals being also supported, but treated separately.
I feel like it's stable enough to share now, but I'm sure rough edges will be surfaced quickly under HN's scrutiny, and that's the point of sharing it here. For example I'm still not quite happy with the fact that if you enable tmux, the tmux terminals behave differently when it comes to selection and copying text than the Claude Code ones
Here are some highlights in terms of features:
- Two-dimensional tabs
- "Ambient awareness" design for the status indicators. I hate visual clutter, so I went for a very minimalist approach to help see things at a glance.
- Automatic resumption of all Claude sessions
- (basic) Optional Tmux support for the non-Claude terminals
- Tool to explore, resume, and fork past Claude conversations (including from earlier points in the history)
- Live display of current context/quota usage
- And many things you'd expect, like themes, etc.
This is MacOS-only for now because it's the platform I work with. I don't think there's anything that would prevent it from becoming cross-platform (electron-based or otherwise). I just didn't want to bear the burden of cross-platform support right away as this is a side-project, but I have no strong objections to making it cross-platform.
It's based on SwiftTerm and not on Ghostty. I based it on Ghostty at first and ran into a ton of rendering bugs related to the way I hide, resume terminals and warp them for the resumption magic, etc. I couldn't track down the root causes and it was very unstable, with terminals frequently freezing. Switching to SwiftTerm brought the stability I was looking for, as this has been my daily driver for weeks now. Not opposed to going back to Ghostty either, if someone manages to make it actually work reliably.
I hope you like the spirit of it, that's what I tried to establish here. More efficient UX patterns for what I do on a daily basis. Hopefully other people with the same tastes in workflows might enjoy it too. I've been using Deckard since the earliest builds, and can confirm libghostty was the worst part of it, to the point I had to go back to my old terminal. I came back to Deckard a week ago and I've been enjoying building out my startup rmBug in it, running many sessions in parallel and never missing a beat when one of them is ready for my input. I would go so far as to say it's been instrumental in our launch yesterday. Thanks so much for building this, Gilles. What do you find difficult about Ghostty? I’m talking about the library support, “libghostty”. It’s what cmux and others are built on top of. There’s nothing difficult about it, I’ve just found it very unstable in the way I used it. I’ve switched to SwiftTerm now.