zgbrenner turns a Mike clone into Gary, and draws hard lines around what it won't do

A rename on the surface; underneath, a deliberate stance on where a legal AI's responsibility starts and stops.

brandingcompliance

zgbrenner has stopped treating this fork as Mike with a fresh coat of paint. Rebranded as Gary, it now positions itself as a self-hostable legal AI workspace aimed squarely at U.S. solo attorneys: a plain-English setup, a matter-based workflow, eight ready-made legal tasks, and a bring-your-own-key model that plugs into the major AI providers (Anthropic, Google, OpenAI).

The part worth studying isn't the logo. It's how Gary talks about its own limits. The fork states up front that it doesn't do legal research, can produce wrong answers, and isn't bar-compliant out of the box - and it threads an "always have an attorney review this" reminder through every path where work leaves the tool. Whether or not you'd phrase it the same way, making the liability scope explicit at setup, rather than burying it in a footer, is a choice more legal products should copy.

So what Anyone building or buying a legal AI tool should look at how Gary states what it won't do before you've typed a word.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from zgbrenner/gary, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
9d868c45 chore: Gary branding, metadata, and public-readiness polish Claude 2026-05-19 ↗ GitHub
commit body
Make Gary feel like a coherent, intentional open-source product rather
than a lightly renamed fork. No new functionality.

Branding / user-facing copy:
- App-shell wordmark, global-error page title, and the built-in
  Saved Legal Task author label now read "Gary" instead of "Mike".
- Backend AI identity prompts (chat system prompt, Review Table
  assistant prompt) and the DOCX tracked-change author now say "Gary".
- Column-prompt placeholders, the support form, and the backend
  startup log say "Gary".
- Remaining "tabular review" wording in user-facing/LLM-facing strings
  updated to "Review Table" / "document review model".

App metadata (frontend/src/app/layout.tsx):
- Title "Gary - Open-source legal AI for U.S. lawyers" and a factual
  description across the page, Open Graph, and Twitter cards.
- metadataBase now reads NEXT_PUBLIC_SITE_URL (documented in
  .env.local.example) instead of a hard-coded mikeoss.com domain.
- Avoids unsupported claims (no accuracy guarantee, not bar-compliant).

Visual assets:
- Add Gary social preview (SVG + rasterized PNG, 1200x630), a Gary
  wordmark/monogram logo, a standalone G mark, and a generated
  apple-touch-icon. Remove the orphaned MikeOSS link-image.jpg.
- The favicon (abstract aperture) is intentionally kept - it carries
  no Mike branding and doubles as the in-app loading spinner.

Documentation:
- Rewrite the root README: plain-English intro, who it's for, what it
  does, the 7-step product flow, bring-your-own-key explanation, how
  Gary differs from MikeOSS, features, limitations, roadmap, and a
  License & attribution section preserving the AGPL-3.0 / MikeOSS
  credit. Developer setup moved below the product overview.
- Add docs/README.md as a documentation index linking the setup
  guide, legal disclaimer, terminology map, and safe-testing doc.
- Point the CONTRIBUTING.md security link at the Gary repo.
- Update safe-local-testing.md to say Gary.

Tests:
- Add frontend/src/lib/branding.test.ts: metadata uses Gary and avoids
  unsupported claims, wordmark renders Gary, README credits MikeOSS
  and lists features + product flow, docs index links key docs, and
  the Gary visual assets exist.

Intentionally left unchanged (internal, renaming would add risk):
package names ("mike" / "mike-backend"), code identifiers (MikeProject,
MikeIcon, mikeApi, MikeLayout, etc.), the tabular_reviews /
organisation database columns, and the signup Terms/Privacy links
(no Gary-hosted legal pages exist yet - self-hosters substitute their
own).

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-571.md from inside the repo you want the changes in.

⬇ Download capture-thread-571.md