MCPcopy Index your code
hub / github.com/akhayam99/goodboy

github.com/akhayam99/goodboy @v0.1.27

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.27 ↗ · + Follow
3,784 symbols 10,894 edges 1,329 files 55 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Goodboy, stop re-explaining yourself

ci release stars providers platform license

Integrates with GitHub, GitLab, Linear and Sentry

Install · Providers · Vision · Design · goodboy-ai.dev

Goodboy desktop app

You have a repo. You have a goal. You also have four CLIs open in four windows, each holding a slightly different version of the same task. By evening you've spent more time pasting the goal back into the next chat than actually building.

Goodboy is a desktop app that holds the goal, the plan and the context once, then hands them to whichever agent you want to run next. Same brief, same memory, different model. Conversation, plans, decisions and PR state stay in a local SQLite on your machine. Your keys, your data, your bandwidth.

Why it exists

Switching between Claude, Codex, Cursor and Gemini ten times a day was eating my afternoons. Every new tab meant rebuilding the same mental scratchpad from scratch, then watching the next model run off in a slightly different direction. Eventually I got fed up and built this.

Open source. Every feature included. No paywall, no telemetry, no account.

What's inside

Shared context, not vendor sessions. Goal, decisions, last summary, open questions. A summarizer keeps it fresh after every turn. Edit any field by hand when the agents get it wrong. The next agent shows up already briefed.

Provider swap mid-task, without amnesia. Each turn is rebuilt from the shared context, never resumed from a vendor's session blob. Drop Claude halfway, hand the same task to Cursor, Codex or Gemini, watch it pick up clean.

Workflows for the multi-step stuff. Refactor incoming? Line up a sequence: a cheap model to scout the area, a smart one to plan it, a mid one to implement, another to review, a cheap one to open the PR. Each step picks its own provider and model, so you're never paying Opus prices to run a grep.

Plans as artifacts, not transcript scrollback. Agents write the plan before they touch your code, and it stays put: something you can read, edit and hand to whichever model implements it. Not a message that scrolls away.

GitHub Studio. Every pull request you're involved in, in one inbox, bucketed by state (draft, in review, approved, merged). Open one and you've got the body, the lifecycle controls and the unresolved comments in a single view. Reply yourself, or hand a comment to an agent to resolve.

Linear Studio. Every open issue assigned to you, bucketed by Linear state. Pick one and the goal is already written, the branch is named, the linked PR is recognized. Hit launch and a session is on it, with the issue tagged in the rail above. Already shipped a PR for that issue? Pick "Continue on PR" instead of "Start fresh" and the same branch comes back, ready for the next round.

GitLab and Sentry too. GitLab merge requests and issues get the same studio treatment as GitHub. A Sentry error turns into a session with the stack trace already written into the goal and the branch named, ready to debug.

Cost meter that taps your shoulder. Every session shows what it's costing as it runs. Goodboy nudges you before you burn Opus on a one-liner.

The board

Home is a board, not a chat window. Open a workspace and every session is in front of you at once, grouped by where it stands: needs you, running, in review, building, done. Each card carries the goal, the live cost, the PR state and the agents on it, one click from the chat, the diff, the terminal or your editor.

Open a session and an overview leads: what needs you, the workflow activity, the artifacts and a glance at files, agents, plans and the pull request. Chat, the diff, the studios and the terminal are lenses you navigate to, not a wall of scrollback. Click a workflow in the activity and it opens focused with the rest collapsed, or advance its next step without leaving the overview. The diff reads like an editor: syntax-highlighted for the common languages, neutral for the rest. The top bar rolls up what needs you, what's running and today's spend.

Providers

Bring the subscription you already pay for. Goodboy drives the official CLIs locally, on your existing plan, never on a metered API key.

Provider CLI Subscription
Anthropic (Claude) npm i -g @anthropic-ai/claude-code Claude Max / Pro
Cursor Cursor desktop app Cursor Pro
OpenAI (Codex) npm i -g @openai/codex ChatGPT Pro
Google (Antigravity) curl -fsSL https://antigravity.google/cli/install.sh \| bash Google AI Pro

One connected CLI is enough to start. Full guide: docs/providers.md.

Install

macOS only for now, Intel and Apple Silicon in one universal build. Signed and notarized by Apple, so it opens without the unidentified-developer warning. Linux and Windows builds are in progress.

Homebrew (recommended).

brew install --cask akhayam99/tap/goodboy

Direct download. Grab the .dmg from the latest release and drag Goodboy to Applications.

Updates are automatic. When a new release ships, a "Restart to update" control appears in the status bar and next to the sidebar logo. One click downloads it and relaunches; Homebrew users can also brew upgrade --cask goodboy.

Run it

pnpm install

pnpm tauri:dev      # hot reload, fastest to iterate
pnpm tauri:build    # produces an installable binary in apps/desktop/src-tauri/target/release/bundle/

Needs Node ≥ 20, pnpm ≥ 10 and a working Rust toolchain (Tauri shells out to cargo). Platform prereqs: https://v2.tauri.app/start/prerequisites/.

Hacking on the app itself? The dev-loop notes live in apps/desktop/README.md.

Help out

Try it. If something breaks, feels weird or is missing, open an issue. Half-formed thoughts welcome. Screenshots welcome. "This feels off" is a perfectly valid bug report.

Stack

Tauri 2 · React 19 · TypeScript · Tailwind v4 · Zustand · SQLite, in a pnpm + Turborepo monorepo: apps/desktop plus packages/{ui,core,db,types}.

Star history

Star history chart

More

License

MIT © Amin Khayam

Extension points exported contracts — how you extend this code

Window (Interface)
(no doc)
apps/desktop/src/features/providers/provider-pricing.ts
DogMascotProps (Interface)
(no doc)
website/src/components/DogMascot.tsx
FilesTouchedShape (Interface)
(no doc)
apps/desktop/src/features/context/components/ContextPanel/lib.ts
UseAttachmentsArgs (Interface)
(no doc)
apps/desktop/src/features/chat/components/ChatInput/hooks/useAttachments.ts
UseChatPrefixArgs (Interface)
(no doc)
apps/desktop/src/features/chat/components/ChatInput/hooks/useChatPrefix.ts
UseMessageQueueArgs (Interface)
(no doc)
apps/desktop/src/features/chat/components/ChatInput/hooks/useMessageQueue.ts

Core symbols most depended-on inside this repo

get
called by 494
packages/core/src/workflows/registry.ts
cn
called by 426
packages/ui/src/cn.ts
formatError
called by 104
apps/desktop/src/shared/lib/errors.ts
push
called by 89
apps/desktop/src/features/permissions/components/DiffViewerDialog/highlight/index.ts
executeBridgeCommand
called by 68
apps/desktop/src/features/companion/commandExecutor.ts
resolve
called by 65
packages/core/src/skills/executor.ts
now
called by 53
apps/desktop/src/store/slices/turn/sendTurn.ts
migrate
called by 44
packages/db/src/migrations/runner.ts

Shape

Function 3,323
Class 233
Method 193
Enum 27
Interface 8

Languages

TypeScript83%
Rust17%

Modules by API surface

apps/desktop/src-tauri/src/providers.rs67 symbols
apps/desktop/src-tauri/src/worktree.rs42 symbols
apps/desktop/src/features/session/components/WorkflowBuilderView/index.tsx40 symbols
apps/desktop/src-tauri/src/workflows.rs38 symbols
apps/desktop/src-tauri/src/gitlab.rs36 symbols
apps/desktop/src-tauri/src/turn.rs34 symbols
apps/desktop/src/store/selectors.ts33 symbols
apps/desktop/src-tauri/src/config_export.rs33 symbols
apps/desktop/src-tauri/src/bridge/snapshot.rs30 symbols
apps/desktop/src-tauri/src/sentry.rs29 symbols
apps/desktop/src-tauri/src/permissions.rs29 symbols
apps/desktop/src/features/settings/components/GuideStudio/index.tsx26 symbols

For agents

$ claude mcp add goodboy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact