What leaves your machine

Bobby runs on your machine: the review UI is served by Bobby itself on 127.0.0.1 (unless you open it up with --host), and your marks, drafts and notes stay in ~/.bobby. These are the times it talks to something else, and how to turn each off.

WhatWhere it goesWhenTo turn it off
Code you ask Claude aboutAnthropic, through your claude CLI and its loginOnly when you ask about some lines: the PR's title, that file's diff, your question and the conversation so far, and what Claude chooses to look at: files in a copy of the head commit (Read, Grep and Glob, inside that copy) and Bobby's tools (the PR's diff, files before and after it, definitions and uses, the review threads, git history)Don't ask
Your tools, if you turn them onThe services behind the MCP servers and claude.ai connectors you allow (Linear, Notion, Slack, Datadog…), through Claude Code, with your logins thereOnly those you chose, with --agent-tools or for that PR, when Claude decides to look something up; read-only unless you chose AllOff unless chosen
The PR, for Claude's reviewAnthropic, through your claude CLI and its loginOnly when you press Review with Claude: the PR's title, description and files, and what Claude chooses to look at, as aboveDon't press it
The PR, to organise itAnthropic, through your claude CLI and its loginWhen claude is installed, in the background on each new head commit--no-llm, or no claude
PR metadata, comments, the codeGitHub, through gh and gitReading the PR, fetching and cloning, posting your review when you submit; the Conversation view reads the PR's comments, reviews and CI checks while it's open, and posts a comment or reply when you send one; resolving or unresolving a thread, and editing or deleting your own comment, reach GitHub at onceReview a local branch (bobby with no PR)
Avatarsavatars.githubusercontent.com / github.com, from Bobby's serverShowing who wrote a comment; cached a week in ~/.bobby/cache/avatars
Images in commentsGitHub's image proxy (camo.githubusercontent.com) and GitHub's attachment hosts, from your browserShowing images and badges in the Conversation view's comments, as github.com does
FontsGoogle Fonts, from your browserLoading the UI
Language serversThe npm registryOnly after you say yes to installing one (or run bobby lsp install)Say Not now or Never
The install script, bobby updateGitHub releasesInstalling or updating Bobby
Setting up GitHub CLIGitHub (api.github.com for gh's latest release, then its download, and GitHub's sign-in)Only when you press Install GitHub CLI or Get a sign-in code in Bobby's setupNot now or Don't ask again
Setting up Claude Codeclaude.ai (Anthropic's installer, then its sign-in)Only when you press Install Claude Code or Sign in in Bobby's setupNot now or Don't ask again
New versionsGitHub's releases API (no login, nothing about you or your code)At start and every 6 hours, at most once in 6 hours across runsSettings › Tell me about new versions, or BOBBY_NO_UPDATE_CHECK=1

What Claude is sent

With claude available and no --no-llm, Bobby asks Claude to group the PR's changes into core changes and order them. The prompt holds:

  • the PR's title and the first 3,000 characters of its description;
  • each changed unit: its file and symbols, and its hunks' lines (up to 120 per hunk, and about 160,000 characters in all);
  • how the units depend on each other;
  • unchanged lines that declare or use what the changes touch: each one's file, line and up to 160 characters of its text.

It runs claude -p with no tools and no saved session, from a temporary directory, so Claude reads only what's in the prompt. It uses your Claude Code login and its data terms. The answer is cached in ~/.bobby/cache, so the same head commit isn't sent twice.

What stays local

  • Language servers read the PR's head commit exported to ~/.bobby/trees, and never run the PR's code. Go's runs with module and toolchain downloads off (GOPROXY=off, GOTOOLCHAIN=local) and without cgo.
  • Bobby's tools for Claude are served by Bobby at /mcp/<token>, a fresh token for each run of Claude, gone when it ends; they only read.
  • Bobby's server only answers its own page: requests must name 127.0.0.1 or localhost (or a name you allowed with --allow-host), and writes must come from the page at that same name.
  • Private notes are never posted. Drafts are posted only when you submit.

Edit this page on GitHub ↗