I use several coding agents, each with its own terminal workflow, session history, and capabilities. Ace brings that work into one web and desktop workspace.
The project began as a fork of T3 Code by T3 Tools Inc. I extended that foundation with more provider integrations and work on session handling, streamed output, and the desktop experience.
Where to standardize#
A shared workspace needs a consistent way to show messages, commands, and tool activity. But providers differ in how they resume sessions, request permissions, and expose features.
I kept a common event model for the timeline and made provider capabilities explicit. That lets the UI share the basics while still exposing features such as Codex's plugins, image generation, and in-app Browser Use. The integrations now cover seven providers.
I chose to use installed provider CLIs and their existing authentication. That keeps accounts with their providers, at the cost of having to track CLI changes and handle different process lifecycles.
Keeping a live session readable#
A session can stream text while commands and tools report their own updates. The order in which those updates reach the UI matters. Losing a buffered update or showing an old snapshot can make the workspace disagree with the work actually running.
My recent work has focused on normalizing tool events, keeping timeline snapshots consistent, and flushing buffered updates before they are discarded. This is where backend orchestration and frontend behavior meet: the user needs a reliable account of what the agent is doing.
Ace is an active daily-use workspace, with web and desktop as its main clients. The feature map (opens in a new tab) shows which capabilities each provider supports.