All updates
devlog feature

group by project, not by app

In the previous post I talked about the chaos of juggling multiple projects across scattered terminal tabs. Here's how AgentJuggler actually deals with it.

The core idea is dead simple: projects are tabs, not folders.

You open AgentJuggler, you see your projects as top-level tabs. Ctrl+1 takes you to Project A. Ctrl+2 takes you to Project B. No hunting. No guessing.

Inside each project tab, you get up to 10 worktabs. Each worktab is a real terminal — a full PTY, not a fake console. And each one can be a different thing:

  • A Claude agent working on a feature
  • Another Claude exploring a different approach
  • A Codex doing a refactor
  • A plain bash session for git, deploys, whatever
  • Eventually — stack-specific tools like Laravel Horizon, optimize:clear, migrations (this is coming soon)

All of them scoped to that project. All of them visible in the sidebar, color-coded by type — purple for Claude, green for Codex, neutral for bash. You can tell at a glance what's running where.

The key thing is what doesn't happen: you never lose context. When Claude finishes on Project A, you know exactly where to look. You don't click through nine terminal tabs. You hit Ctrl+1 and it's right there.

A few details that matter more than you'd think:

Session persistence. Close AgentJuggler, open it tomorrow. Your projects, your worktabs, your layout — all still there. No re-opening six terminals and trying to remember what was running where.

FORK. Hit a good spot with Claude? Fork the worktab. Now you have two independent copies — same context, different directions. Run them in parallel. Keep the winner. This only works because everything is grouped per project. Forking a random terminal tab in tmux wouldn't make sense.

It's local. No cloud, no accounts, no API proxy. AgentJuggler is just a local app that opens in your browser. Your agents, your machine, your data.

None of this is rocket science. It's just the obvious thing that should exist — a workspace where projects are first-class citizens and agents live inside them, not scattered across your desktop.

I'm working on stack-specific actions next. The idea: AgentJuggler detects your project's framework and gives you quick buttons — Laravel gets Horizon, artisan migrate, optimize:clear. Rails would get console, db:migrate. One click instead of typing commands you've typed ten thousand times.

But that's for the next post.