Loading site

goose

role
Product design, Information architecture, Agent tooling
date
Early 2025 to present
team
Applied AI
my part
I redesigned and implemented the desktop interface for public launch, then expanded its navigation, settings, and project support across the frontend and Rust backend.

overview

Goose is an open-source agent that lets language models use tools and take action. Block launched it publicly in January 2025.

I redesigned and implemented the desktop interface for launch, then kept restructuring it as Goose moved from a volunteer-built tool into a public open-source app.

the desktop interface

We had two and a half weeks to make Goose’s desktop app ready for public launch. The app worked, but it looked and behaved like what it was: an engineering-led, volunteer-built frontend with a lot of AI-generated code.

There was no time for a separate design pass. I worked in the code with engineering, added Tailwind so we could move faster, then rebuilt the surface around clearer spacing, type, and component states.

Goose’s desktop interface before the launch redesign.
The starting point.
Goose’s redesigned desktop interface at launch.
The interface we shipped for the January 2025 launch.

settings and setup

The first-use problem was not chat. It was configuration. I reorganized settings around the controls people needed first, with clearer labels and grouping so setup did not depend on already knowing Goose’s internals.

I added onboarding for provider selection, turning model setup from a settings hunt into the first-run path. Goose launched on January 28, 2025 and reached the top of GitHub Trending.

Goose settings before the information architecture changes.
Settings before.
Goose settings after the information architecture changes.
Settings after.

navigation and projects

The launch changed the interface problem. As contributors added features, the original navigation stopped scaling. I moved the app from a narrow chat layout to a wider workspace with sidebar navigation, session history, and search.

Users also needed sessions to belong to projects. I built the project model through the interface and Rust backend so context could be organized above the single chat.

Not every plausible idea survived contact with use. I tried left-aligning user messages and adding message threads because I expected the terminal-like structure to feel familiar. Informal testing proved the opposite. The alignment made people hesitate, so I dropped it.

Explore Goose on GitHub

Goose’s later desktop refresh with sidebar navigation.
Reorganizing the app after launch, as features accumulated.

54.5k stars on GitHub

AAIF donated to the Agentic AI Foundation

© 2026 Nahiyan Khan

Built with Astro · Hosted on Vercel · Privacy
root about work contact
Drag the active highlight to preview pages. Release to choose. Escape cancels. Or use arrow keys and page links.