Farol - The macOS terminal that shows which coding agent needs you

Farol is a macOS terminal for running Claude Code and Codex in parallel. A sidebar shows which agent is working, which is waiting for you and which is done, and the menu bar shows it from any app. Each task gets its own git worktree, started from a prompt, a GitHub issue or a Jira ticket. Review the diff, commit, push and open the PR in the same window. Built on libghostty, so it reads your Ghostty config. Free and MIT licensed. No account, no telemetry.

Add a comment

Replies

Best
Hi Product Hunt, I'm Lucas, the maker of Farol. I run three or four Claude Code and Codex sessions at once, and I kept cycling through tabs to find the one stuck on a permission prompt. Farol is the terminal I built to stop doing that. The name is Portuguese for lighthouse. Each session has a dot in the sidebar: working, waiting for you, or done. The same state shows in the menu bar or at the notch, so I can be in another app and still see when an agent needs me. Farol doesn't wrap the agents. Claude Code and Codex run as they do in any terminal and report their state through their own hooks, which you turn on with one click. A few other things it does: - New task: describe it, or pick a GitHub issue or Jira ticket. It opens a git worktree on a new branch and starts the agent with the task as its first prompt. - Review: everything the session changed as one diff, then commit, push and open the PR. - Conflicts: a three-column merge view when a rebase or merge stops. The terminal is libghostty, the engine behind Ghostty, so it renders like Ghostty and reads your Ghostty config. The app around it is native Swift. It's free, MIT licensed, with no account and no telemetry. It's early, and Apple Silicon with macOS 14 or later only. I use it as my daily terminal, but expect rough edges. How do you keep track of several agents today? I'd like to know what you'd want from a terminal built for it.

separate worktrees solves the file-conflict half of running agents in parallel, but not the half that actually bites me: two tasks that touch the same API contract or shared schema from different worktrees, where neither agent can see the other's change until someone opens both diffs side by side at merge time. does Farol do anything to flag "these two active tasks touched overlapping files or symbols" before you're staring at a nasty rebase, or is that still on the human to catch by reading both PRs?

 Good question, and you're right that worktrees only solve part of it. Farol doesn't flag overlap between tasks yet, so today that's still on you reading both diffs.

What does help: the review panel shows everything a session changed since it left main, so comparing two tasks is two clicks, not two PRs side by side. And when a rebase does stop, there's a three-column conflict resolver built in.

Next on the roadmap is letting agents see each other's sessions, so one can check what another is changing before it touches a shared schema. Since Farol already tracks each session's changed files, a "these two tasks touch the same file" warning could be a natural addition.