|
| 1 | +--- |
| 2 | +title: "goose 2.0 beta - new architecture and clients" |
| 3 | +description: "We're shipping a new TUI, rewriting the desktop app in Tauri, and unifying everything under ACP." |
| 4 | +authors: |
| 5 | + - alexhancock |
| 6 | +--- |
| 7 | + |
| 8 | +# goose 2.0 beta - new architecture and clients |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +goose started life in the terminal. The earliest versions were a Python CLI that ran the agent in-process — you typed a message, the model responded, tools executed, and everything happened in a single loop. That simplicity was a strength: it meant anyone with a terminal could start using goose immediately, no app to install, no server to run. |
| 13 | + |
| 14 | +As goose grew, so did the ways people wanted to use it. We shipped an Electron desktop app and suddenly we had two clients with two completely different integration paths. The Rust CLI talked to the agent directly in process, while the desktop app went through `goosed`, a custom REST + SSE server. Every new feature — session management, extension loading, streaming — had to be wired up in both places. |
| 15 | + |
| 16 | +<truncate> |
| 17 | + |
| 18 | +Third-party developers have never been able to easily build their own clients, as they had no standard way to connect at all. |
| 19 | + |
| 20 | +We needed a single protocol that any client could speak to reach the same agent core. For this purpose we have chosen [ACP](https://agentclientprotocol.com/), the Agent Client Protocol, as our new default interface to goose. |
| 21 | + |
| 22 | +## Under the hood: ACP |
| 23 | + |
| 24 | +Behind the scenes we're unifying how every client connects to goose through **ACP (Agent Client Protocol)**. ACP gives us one protocol and one goose server for every client — terminal, desktop, IDE plugins, whatever you want to build. This will make it possible for an ecosystem of different goose clients to emerge. We also have an [RFD](https://github.com/agentclientprotocol/agent-client-protocol/pull/721) for a new HTTP/WS transport for ACP and would welcome feedback on the design. |
| 25 | + |
| 26 | +Here's where things stand: |
| 27 | + |
| 28 | +| Phase | What | Status | |
| 29 | +|-------|------|--------| |
| 30 | +| **1 — Stabilize ACP server** | Production-ready server with session persistence, extensions, streaming | ✅ Done | |
| 31 | +| **2 — TypeScript TUI beta** | Feature-complete terminal UI built on the ACP client | 🚧 In progress | |
| 32 | +| **3 — Desktop rewrite to Tauri** | Electron app being replaced with a Tauri-based desktop client on ACP | 🚧 In progress | |
| 33 | +| **4 — Consolidation** | Remove `goosed` and the old Rust CLI; single unified architecture | Planned | |
| 34 | + |
| 35 | +The work is tracked in [#6642](https://github.com/aaif-goose/goose/issues/6642). |
| 36 | + |
| 37 | +## The new goose TUI |
| 38 | + |
| 39 | +With that foundation in place, we're now shipping the first official clients built on top of it: a brand-new TypeScript TUI you can try today and a Tauri-based desktop app that will replace our Electron desktop application. For you, this means a faster, lighter experience in both the terminal and on the desktop — and a clear path for the community to build new client and integrations without reverse-engineering internals. |
| 40 | + |
| 41 | +Here's what's happening and how to get started. |
| 42 | + |
| 43 | +## Try the new TUI right now |
| 44 | + |
| 45 | +The new TypeScript-based TUI is in beta. It already supports messages, tool calling, syntax-highlighted code, and rendered markdown. Give it a spin: |
| 46 | + |
| 47 | +```bash |
| 48 | +npx @aaif/goose |
| 49 | +``` |
| 50 | + |
| 51 | +That's it — one command, no install. It pulls down the latest beta and starts an interactive session. |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | +### What's coming next for the TUI |
| 56 | + |
| 57 | +- Provider and model management |
| 58 | +- Session list, resume, and export |
| 59 | +- UI for MCP features and skills management |
| 60 | + |
| 61 | +We'd love your feedback — try it out and let us know what works and what doesn't. |
| 62 | + |
| 63 | +## Desktop is moving to Tauri |
| 64 | + |
| 65 | +We're also rewriting the desktop app from Electron to [Tauri](https://tauri.app/). The Tauri rewrite gives us improved performance, a refreshed UI, and the new app will talk to ACP so both official clients will share the same protocol and server. |
| 66 | + |
| 67 | +We will follow up with another post when the desktop is ready for beta testing. |
| 68 | + |
| 69 | +## Get involved |
| 70 | + |
| 71 | +This is all happening in the open. Follow along or jump in: |
| 72 | + |
| 73 | +- **Tracking issue:** [#6642](https://github.com/aaif-goose/goose/issues/6642) |
| 74 | +- **Try the TUI:** `npx @aaif/goose` |
| 75 | +- **Discord:** Follow along and give feedback in [#goose-2-dev](https://discord.com/channels/1287729918100246654/1491527078892540056) |
| 76 | +- **Feedback?** Open an issue or drop a comment on #6642 — we'd love to hear from you. |
| 77 | +</truncate> |
0 commit comments