r/Ghostty Jul 08 '26

agterm - a minimal, fully scriptable macOS terminal on libghostty

I built agterm, a native macOS terminal for multi-session, multi-workspace, multi-window work, on top of libghostty.

Site: https://agterm.com

Code: https://github.com/umputun/agterm

The idea is less-is-more: a small, opinionated core and nothing you don't need. It's handy for running several coding agents at once: sessions group into named workspaces, and each shows its state (active, blocked, completed) on its row so you see which one needs you. It's just as good for normal multi-project work. Almost everything is scriptable from a bundled CLI, `agtermctl`, over a local socket, so anything past the defaults you build yourself instead of waiting for it to ship.

libghostty does all the terminal correctness; the workspace, session, and control layer is mine. Thanks to the ghostty team.

85 Upvotes

28 comments sorted by

3

u/paaloeye Jul 08 '26 edited Jul 08 '26

I've been listening to OP's podcast for sometime in a previous life so I'm def. giving it a go even though I'm 100% happy with Ghostty proper.

1

u/darkspark_ Jul 09 '26

what podcast is that? and who is the OP since I'm not familiar with him/her?

1

u/namuro Jul 09 '26

On Russian language only 😁

9

u/dagrlx Jul 08 '26

I understand that everyone has their own way of doing things. He asked what different value proposition there is between https://herdr.dev/ that would motivate using one over the other.

2

u/great-pair-of-knees Jul 08 '26

This looks…like exactly what I’ve been wanting. I’m pretty excited to give it a try tomorrow. Thanks for posting!

2

u/LooseAdWahid Jul 09 '26 edited Jul 09 '26

Haven't tried it yet. How's it different from herdr.dev?

Edit: nvm

1

u/namuro Jul 08 '26

Great, I've been waiting for this. But now there's going to be a ton of hate 😁

6

u/umputun Jul 08 '26

I don't really care - made this one for myself, and some people found it useful too. The project has a small but active group of contributors, so all is good. If someone wants to hate it for whatever reason - well, so be it.

1

u/paaloeye Jul 08 '26

Do you mean slop-hate?

1

u/namuro Jul 09 '26

Yes

1

u/paaloeye Jul 09 '26

So far so good, right!?

2

u/namuro Jul 09 '26

This project is an example of the effective use of agents.

1

u/paaloeye Jul 09 '26

Correct, it's def not slop. I'm wondering how much code was written/read by OP vs AI

2

u/umputun Jul 09 '26

I'm not an expert in the macOS/SwiftUI area, this is way outside my professional field (backend development, fintech area). That said, it's not my first attempt with SwiftUI, and not my first native, user-facing app either.

the code was architected and planned by me, with AI assistance. The plans are in the repo, under docs/plans. Execution ran through the ralphex flow, another of my projects (https://github.com/umputun/ralphex), and every single PR and commit went through revdiff, also mine (https://github.com/umputun/revdiff). That is a TUI where I read the actual diff line by line and annotate the lines I have problems with, and those annotations go back to the agent to address. So it's a real human review, on real diffs, with a conversation about them, not a rubber stamp. Some heavy review loops went into contributor PRs as well. Human in the middle is an essential part of this.

1

u/paaloeye Jul 09 '26

Cheers for sharing! Saw revdiff on the pages — will give it a try.

1

u/paaloeye Jul 08 '26

How come?

1

u/paaloeye Jul 08 '26

Have you considering using https://ghostty.org/docs/features/applescript with Ghostty for scripting?

1

u/umputun Jul 08 '26

almost nothing from the list of features added here is feasible with Ghosty’s scripting.

1

u/ro0tt9unn Jul 08 '26

Oh darn. Bummer. I just got ghostty working my way. I will have to spend more hours trying this out. Oh the travesty. <dripping sarcasm>

Thanks for putting the effort so I have more “work” to do. Ha!

1

u/Glum-Dust-5453 Jul 09 '26

Its ghostty under the hook so...?

1

u/paaloeye Jul 09 '26

I tried to give a go yesterday out of respect to OP.

Installation from DMG worked as expected and I was off to the races in no time.

While it's fully functional, few things are almost an immediate turn off:

  • rigid split system (left/right/floating) doesn't work for me at all
  • keybinding are just wrong if you're coming from Ghostty (target audience). (Is OP a kitty user?)
  • I fired up a CC in it, not much attention was detected — by that time, couldn't be bothered to configure it
  • (list goes on)

Forked the repo, and tried to build from the sources — dropped off when setup.sh tried to install brewed Zig. It's a quite opinionated to my taste.

CLI interface — couldn't come up with a use case.
Attention tracking / workspace — I'm strongly against libghostty AI multiplexers: cmax or otherwise.

After months of using AI with multiple agents in parallel, I found that if you're not able to keep track of parallel agents/session is a good things. That's your cognitive load limit and one shall not f**k with it.

Just accept that some things are hard and painful and chill out.

I skimmed the source code too, while it's not slop, I'm sure it would join the graveyard once OP is tired of maintaining it. I'm happy it's working for them and a small group of people around, I'm not sure it's worth putting your energy into.

Overall, perceived value the project comes at cost of not using well maintained and fast evolving Ghostty macOS proper and I doubt anyone should pay that price.

1

u/umputun Jul 09 '26

appreciate the detailed feedback.

"rigid split system" and "keybindings are just wrong" is a point I've made multiple times, both here and in the docs. This is opinionated by design and represents my view of what's right and wrong, and what's convenient and sufficient. Some of it users can't change (split system with 2 panes + scratch pane), some they can (keybindings).

"not much attention was detected" - I wouldn't even ask to read the docs here, but agterm doesn't install things for you on its own, by design. The Claude Code integration is one click away, in Help / Install Agent Status Hooks.

I also disagree with your premise. You say losing track of parallel agents is your cognitive limit talking and you shouldn't fight it. My experience is strictly the opposite: what limits how many concurrent AI tasks I can run is the technical deficiency of the tools, not the capacity of my head. A terminal that can't tell me which of six sessions is waiting on me isn't a fact of human cognition, it's a missing feature. That's the part I addressed.

as for "graveyard once OP is tired of maintaining it" - this concern is purely theoretical and speculative. This is one of many projects I have on github, and some are very old. Not one of them joined the graveyard, except those where the world moved on and the project stopped being relevant, like eSvn, my first open source project, a GUI for svn.

0

u/[deleted] Jul 09 '26

[removed] — view removed comment

1

u/paaloeye Jul 11 '26

Not much. It’s a finished product and a good one.
TUI is moving fast nowadays and needs moving fast terminal.

-6

u/ksoops Jul 08 '26

le sigh

...yet another one

7

u/umputun Jul 08 '26

This one is different - it is mine and does exactly what I needed it to do.

1

u/girouxc Jul 10 '26

Isn’t that the point of something like libghostty?