Dev & Engineering terminalmacosghosttycodexopencodemcpcode-review

Calyx

A native macOS terminal for running and supervising coding agents like Claude Code and Codex in parallel, with one approval inbox instead of babysitting terminal tabs.

FollowAgents review · FARS-2.1
Not recommended
59/ 100 5-point scale 3.0 / 5
1 2 3 4 5 6
1Trust14 / 29 · 2.4/5

Positive: the approval inbox is explicitly opt-in, dangerous cockpit tools (pane_run, pane_send_keys, palette_execute) stay approval-gated, the command log redacts known secret patterns before agents read them, and browser tabs are http/https-only with popups blocked — all described concretely and consistently. Deductions: enabling IPC auto-writes multiple user config files (~/.claude., ~/.codex/config.toml, ~/.grok/config.toml, etc.) and an auto-loaded extension into ~/.pi, a broad external side effect; the browser server starts by default on localhost:41840; Grok/pi tool calls run unreviewed when integration is off; rollback (whether disable restores config files or removes hooks) is undocumented; dependency evidence is limited to a Ghostty v1.3.1 pin with no audit/SBOM; publisher unverified with external PRs refused, so attribution rests mainly on the Acknowledgements. No evidence of malicious behaviour or covert exfiltration.

2Reliability6 / 14 · 2.1/5

Positive: README is internally consistent about per-CLI capability differences and documents edge semantics (receive_messages delete-on-read, output_pending). Deductions: message-quality on failure cannot be verified from README alone; the build requires an exact Zig version matched to ghostty, a fragile dependency; no tests or failure-path evidence.

3Adaptability12 / 18 · 3.3/5

Positive: clearly targets advanced macOS users supervising parallel coding agents; per-CLI supported/unsupported capabilities are enumerated; trigger conditions (hooks read at session start, herdr discovered by watching rather than polling) are precise. Deductions: hard requirement of macOS 26 Tahoe and Xcode 26 narrows the audience; no degraded path offered.

4Convention13 / 18 · 3.6/5

Positive: well-structured README (Why → Features → Shortcuts → IPC → Build → Limitations → License), complete install notes (Homebrew cask, manual download, full source-build steps), MIT LICENSE file present, honest and specific known limitations (full-width cursor offset, overridden config keys). Deductions: no CHANGELOG or version history file in evidence; single maintainer who explicitly refuses external PRs, so long-term maintenance and update path depend on one individual.

5Effectiveness10 / 13 · 3.8/5

Positive: aggregating approvals, status, and command output across agents into one control surface, and giving agents structured command history via MCP, is clear marginal value over a plain terminal. Deductions: heavy install chain (macOS 26, per-agent integration, optional daemon), and the benefit only materialises for users already running several agents in parallel; no quantified cost/benefit in evidence.

6Verifiability4 / 8 · 2.5/5

Positive: claims are specific and checkable (tool names, shortcuts, file paths, port, CLI examples), and facts are separated from demo videos/links. Deductions: the external docs site, Homebrew cask, and release artifacts are outside this evidence set, so cross-source corroboration is not possible statically; demo claims are unverified.

Evidence confidence: Low Reviewed Sep 10, 2026 Reviewed revision 8415801ce661
Before you use it
  • Enabling AI Agent IPC auto-rewrites several user-level config files (~/.claude., ~/.codex/config.toml, ~/.grok/config.toml, etc.) and writes an auto-loaded extension into ~/.pi; back up first and verify whether disabling restores them.
  • Grok always-approve sessions and all pi tool calls run unreviewed when the integration is off — confirm these agents are not silently active by default.
  • The browser server starts automatically with the app on localhost:41840, and browser eval/fill commands need no enable step; check whether other local processes can reach that port.
  • Publisher is unverified and external PRs are refused; updates depend solely on the author via Sparkle/Homebrew, so audit before enterprise deployment.
  • Requires macOS 26 Tahoe, a very new OS release; assess OS maturity before production use.
Review evidence [1][2][3][4]
See the full review method →

What does this agent do, and when should you use it?

Calyx is a native macOS 26 terminal application built on Ghostty v1.3.1 (libghostty with Metal GPU rendering) for running and supervising multiple coding agent CLIs—Claude Code, Codex, OpenCode, Hermes, Grok, and pi—in parallel. An Agents Sidebar shows live per-pane status for every connected agent, while a unified Approval Inbox surfaces Claude Code and Codex permission prompts and Grok/pi tool calls in a macOS-notification-style panel. A built-in Git sidebar offers working changes, commit graph, branch visualization, and line-level diff comments that can be submitted directly to an agent pane. An embedded MCP server exposes pane control, redacted command logs, LSP language-server features, and cross-pane IPC messaging to agents, and 25 calyx browser CLI commands enable browser automation. The app is written in Swift 6.2 with AppKit and SwiftUI bridged via NSHostingView, installs via Homebrew, and updates through Sparkle.

Calyx drives Metal-accelerated terminal rendering through the libghostty C API (wrapped in the GhosttyFFI enum), with tab groups, split panes, a command palette (Cmd+Shift+P), and hot-reloaded support for ~/.config/ghostty/config. On setup it writes MCP/hook configuration into detected agent CLIs' config files (~/.claude., ~/.codex/config.toml, ~/.config/opencode/opencode., ~/.hermes/config.yaml, ~/.grok/config.toml, and a TypeScript extension at ~/.pi/agent/extensions/calyx.ts for pi), so each agent instance registers as a peer and can call register_peer, list_peers, send_message, broadcast, receive_messages, and get_peer_status. The same MCP server offers cockpit tools (pane_list, pane_split, tab_create, plus approval-gated pane_run, pane_send_keys, palette_execute), command-log tools (terminal_list_commands, terminal_read_output, terminal_await_command, with known secret patterns like tokens, passwords, and API keys redacted before exposure), and LSP proxy tools (lsp_hover, lsp_definition, lsp_references, lsp_rename, lsp_diagnostics). The Approval Inbox collects permission requests in a top-right notification panel with a primary action plus an Options pull-down, and can hand requests back to the CLI's own confirmation prompt. Opt-in daemon-backed persistent sessions survive app quit and crashes, and the calyx-session binary can be deployed to SSH hosts to browse and reattach remote sessions.

  1. A developer running three Claude Code instances in parallel who wants every permission prompt in one approval inbox instead of cycling through terminal tabs
  2. An engineer orchestrating Claude Code, Codex, and OpenCode side by side who needs the sidebar to show at a glance which agent is blocked, working, or done
  3. A code reviewer who wants to comment on individual diff lines and submit the complete review directly to a Claude Code or Codex pane
  4. Teams whose agent instances must coordinate: peers discover each other, broadcast messages, and wait for commands to finish via the built-in MCP IPC server
  5. Remote workers who need sessions to survive crashes: enable daemon-backed persistent sessions or deploy calyx-session to an SSH host and reattach remotely
  6. Users who want symbol-aware agent tooling: agents call lsp_definition or lsp_diagnostics to get precise results from TypeScript, Python, Rust, and other language servers instead of grep

What are this agent's strengths and limitations?

Pros
  • The unified Approval Inbox gathers Claude Code/Codex permission prompts from every pane into one notification panel, dramatically cutting tab-switching overhead
  • More than a terminal: the bundled MCP server provides cross-pane agent IPC, redacted command logs, an LSP proxy, and 25 browser automation commands so agents can perceive panes, output, and symbols
  • Built on libghostty (Ghostty v1.3.1) with Metal GPU rendering, it reads and hot-reloads ~/.config/ghostty/config, giving existing Ghostty users a smooth migration path
  • Daemon-backed persistent sessions survive crashes, with calyx-session enabling remote SSH session reattachment and agent conversation resume
Limitations
  • Hard requirement of macOS 26 Tahoe or later; older macOS versions and other operating systems cannot run it
  • Several capabilities depend on each CLI's own reporting: subagent rows appear only where the CLI reports them (Codex/OpenCode report lifecycle only, not the current tool), and pi tool calls run unreviewed when the integration is off
  • Command-log tools (terminal_list_commands, etc.) require the zsh/fish shell integration, and subagent rows only appear in sessions started after Calyx installs its hooks
  • Building from source is demanding: Xcode 26+, a version-matched Zig, XcodeGen, and a manual libghostty xcframework build
  • External pull requests are not accepted; contributions are limited to issues

How do you install or deploy this agent?

Via Homebrew: brew install --cask yuuichieguchi/calyx/calyx. Manually: download Calyx.zip from the latest GitHub release, unzip, and move Calyx.app to /Applications. Requires macOS 26 Tahoe or later; manual installs update via Sparkle and Homebrew installs via brew upgrade. To build from source you need macOS 26+, Xcode 26+, Zig matching ghostty's build.zig.zon, and XcodeGen (brew install xcodegen). Steps: git clone --recursive https://github.com/yuuichieguchi/Calyx.git && cd Calyx && cd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=native && cd .. && cp -R ghostty/macos/GhosttyKit.xcframework . && xcodegen generate && xcodebuild -project Calyx.xcodeproj -scheme Calyx -configuration Debug build.

How do you use this agent?

Launch Calyx and start agent CLIs (Claude Code, Codex, etc.) in terminal panes. Open the command palette (Cmd+Shift+P) and run Enable AI Agent IPC to activate the built-in MCP server (config is auto-written to each CLI's file; restart running agent instances to pick it up—run Reconfigure AI Agent IPC later if you install a new agent). Agents then call the calyx-ipc MCP tools: register_peer, send_message, pane_list, terminal_read_output, and more. Run Install CLI to PATH from the command palette to expose the calyx CLI, then use any of the 25 calyx browser commands (snapshot, click, fill, eval, screenshot, wait) to control browser tabs—the browser server starts automatically on localhost:41840. Enable the approval integration explicitly in Settings; nothing is approved automatically without opt-in. Key shortcuts: Cmd+T new tab, Cmd+D split right, Cmd+F find, Cmd+Shift+U jump to the most recent unread notification tab.

How does this agent compare with similar options?

The README explicitly notes that Calyx's browser automation (25 calyx browser commands) is similar to cmux's browser automation, making cmux a named point of comparison.

FAQ

Does the approval integration auto-approve agent requests?
No. The integration must be enabled explicitly in Settings, and no request is approved automatically without your separate opt-in; Claude Code and Codex queue a request only where the CLI would have prompted you itself.
Which agent CLIs does it support?
The README lists Claude Code, Codex, OpenCode, Hermes, Grok, and pi—all appear in the Agents Sidebar and can join the built-in MCP IPC—though capabilities like subagent reporting and approval gating differ per CLI.
Can command logs leak secrets to agents?
Calyx redacts known secret patterns (tokens, passwords, API keys, JWTs) from command text and output before exposing them; output still being redacted reports output_pending: true.
Do sessions die when the app quits?
Not if you enable the opt-in daemon-backed persistent sessions, which survive app quit and crashes and include a Session Browser, recovery flow, and optional on-disk history.
Can I contribute code?
The project welcomes bug reports and feature ideas as issues, but does not accept external pull requests (see CONTRIBUTING.md).

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents