goose/ui/text
2026-06-10 22:00:01 +00:00
..
scripts tui: do not build goose if connecting to a server (#8779) 2026-04-23 11:52:09 -04:00
src fix: compatibility of config extension acp call in TUI (#9683) 2026-06-09 02:57:31 +00:00
.gitignore chore: set goose binaries as executable in package.json (#8589) 2026-04-16 15:36:53 +00:00
AGENTS.md feat: onboarding UX for the TUI (#8513) 2026-04-14 14:17:01 +00:00
CLAUDE.md agents: add CLAUDE.mds to mirror AGENTS.mds (#9029) 2026-05-05 18:53:52 +00:00
package.json pin goose-sdk package in tui (#9712) 2026-06-10 22:00:01 +00:00
README.md pin goose-sdk package in tui (#9712) 2026-06-10 22:00:01 +00:00
tsconfig.json feat: TUI client of goose-acp (#7362) 2026-02-19 20:54:07 +00:00

goose ACP TUI

Early stage and part of goose's broader move to ACP

https://github.com/aaif-goose/goose/issues/6642 https://github.com/aaif-goose/goose/discussions/7309

Running

The TUI launches the goose ACP server by spawning goose acp. Which binary it spawns is resolved by @aaif/goose-sdk:

  1. the GOOSE_BINARY environment variable, if set, otherwise
  2. the platform's prebuilt @aaif/goose-binary-* package (an optional dependency of the pinned @aaif/goose-sdk).
cd ui/text
pnpm install   # pulls the pinned @aaif/goose-sdk and its matching @aaif/goose-binary-* package
pnpm start     # tsx src/tui.tsx — runs against the released binary, no Rust build

The TUI pins a specific @aaif/goose-sdk version, so pnpm start always runs against a goose binary that matches the SDK.

Building goose from local source

To test local Rust changes, run the dev launcher directly. It builds a debug binary (cargo build -p goose-clitarget/debug/goose) from the workspace root and points the TUI at it via GOOSE_BINARY:

node scripts/dev-start.mjs

If your changes touch the ACP schema, also point the TUI at the in-repo SDK so the two stay matched: set @aaif/goose-sdk to workspace:* in package.json and re-run pnpm install. Otherwise the locally built binary may not match the pinned published SDK's schema. Revert that change before committing — the TUI is meant to stay frozen on its pinned SDK version.

To run any other prebuilt binary, set GOOSE_BINARY=/path/to/goose and use pnpm start.

Custom server URL

To connect to an already-running server instead of spawning a binary:

pnpm start -- --server http://localhost:8080