zgbrenner/gary

U.S.-focused fork of MikeOSS targeting solo lawyers; self-hostable with your own API keys, Clerk auth, and a triage workflow that connects document extraction to task launch.

Active development across authentication, document triage, U.S. localization, and deployment. The Clerk auth migration and the Review Table row-launch feature are the most substantive changes. Several topics show same-day open-and-merge cycles, suggesting a fast iteration pace with a single primary contributor.

View on GitHub →

zgbrenner/gary is a deliberate fork repositioned for U.S. solo attorneys and small firms. The foundational work Americanizes terminology and copy throughout, adds a plain-English setup guide and legal disclaimer, and ships a full documentation set including a Vercel deployment walkthrough. The fork introduces eight U.S.-focused Saved Legal Tasks (Contract Review, Litigation Memo, Case Chronology, Discovery Summary, Deposition Prep, Demand Letter Draft, Client Intake Summary, Privilege Review) and a Matter Document Review template that extracts eight columns per document, with column prompts tuned to be conservative about privilege calls and to default the attorney-review flag to Yes under uncertainty.

The auth layer was migrated from Supabase Auth to Clerk, keeping Supabase for the database. The frontend migration is complete; the backend JWT verification follow-up is documented as a separate step. Export was extended with Copy Draft, Download Markdown, and Download Word Draft actions. A setup progress tracker guides first-time deployments.

The most technically interesting addition is the row-to-task launch: a Review Table cell in the Suggested Saved Legal Task column can open the assistant with the matching task prefilled, the document attached, and extracted row values in the prompt - staged for human review, not auto-sent. The mapping is strict exact-match against the eight built-in task names; unrecognized values produce no button.

Coding-agent instruction files (AGENTS.md, CLAUDE.md) indicate the fork is being actively developed with AI assistance.

What's in it

Direction

brandingi18ninfrastructure

Activity

Themed changes and pull requests touching this fork, newest first. Themed changes that haven't been turned into a public post yet still appear — they're real work even without a published writeup.

📝 Add a setup progress tracker for the Gary deployment 1 commit 2mo ago minor change
📝 Coding-agent instruction files (AGENTS.md, CLAUDE.md) 2 commits 2mo ago minor change
Show 5 more

Threads of work (detailed view)

29 threads have been distilled into posts.

Clerk replaces Supabase Auth across the full stack; Supabase takes over storage

zgbrenner replaced Gary's Supabase Auth with Clerk across both the frontend and backend, and consolidated the data layer on Supabase so the fork can run without any Cloudflare dependency. The migration spans six commits and rewrites auth middleware, session verification, identity lookup, account deletion, and the object storage configuration.

Backend Clerk token verification and Supabase data layer, in one commit

`a7ea67d0` completes the Clerk migration on the backend side and consolidates document storage on Supabase, dropping the Cloudflare R2 requirement. It rewrites auth middleware, schema constraints, account deletion, user-lookup endpoints, and object storage configuration in 492 additions across 19 files.

Supabase auth removed; Clerk takes over login and session management

zgbrenner replaces Gary's hand-rolled Supabase auth UI with Clerk, motivated by deployment fit rather than feature gaps. The old login system is gone; the data layer stays on Supabase. There's an explicit incomplete backend piece left for a follow-up PR.

Review Table rows can now launch a Saved Legal Task directly

zgbrenner wires the Suggested Saved Legal Task column in a Review Table to actually open the assistant. A lawyer clicks a cell, confirms a modal, and the assistant opens prefilled with the matching task, the document attached, and extracted row values in the prompt - nothing auto-sends.

Review Tables: Matter Document Review template and row-to-task launch, end to end

Two merged PRs together make document triage actionable in zgbrenner/gary. The first renames Tabular Review to Review Tables and adds an eight-column U.S. legal intake template; the second wires the Suggested Saved Legal Task column to open the assistant directly from a row.

Vercel deployment guide and a clearer missing-env error for Supabase

`0b6ee888` is mostly documentation: a new `docs/VERCEL_DEPLOYMENT.md` (222 lines) covering how to deploy Gary's frontend on Vercel with the backend staying on a separate host. The single code change makes a missing Supabase URL fail with the variable name rather than a cryptic prerender crash.

Vercel deployment guide and named Supabase env errors

zgbrenner adds a 222-line Vercel deployment walkthrough and tightens the Supabase client initialization to name the missing variable when the app fails to start. Both changes target someone self-hosting Gary without a DevOps background.

Gary branding cleanup: UI copy, AI prompts, DOCX author, and metadata

zgbrenner swept Mike branding out of every user- and model-facing surface in one commit: the app wordmark, global-error title, AI self-description in prompts, tracked-change author in exported Word files, and the page metadata. No new functionality; all cleanup.

Gary branding pass: identity strings, metadata, and visual assets

Commit `9d868c4` finishes the Mike-to-Gary rename across every user-facing surface - app shell, AI-identity prompts, DOCX tracked-change author, Open Graph cards, and a new test suite that will catch future regressions. zgbrenner flags this as no new functionality, and the diff confirms it.

Three export actions below every Gary response: clipboard, Markdown, Word

zgbrenner added Copy Draft, Download Markdown, and Download Word Draft buttons beneath completed assistant responses. The feature ships with a 677-line export module, a 317-line test suite, and a deliberate design constraint: the wrapper never redacts or scrubs AI content, but also never injects credential-shaped tokens into the exported file.

Isolated export module: clipboard, Markdown file, and Word doc from any chat response

`b4345deb` adds `frontend/src/lib/exportDraft.ts` - 677 lines of pure export helpers covering clipboard writes, filename sanitization, Markdown wrapping, and Markdown-to-docx conversion. A 317-line test suite ships alongside it. The module is shared by both chat views with no side effects on the chat state.

Eight U.S. legal task presets added to the built-in workflow catalog

`fb699b29` replaces Gary's upstream workflow definitions with eight U.S.-focused Saved Legal Tasks, adds an onboarding checklist component, and updates the terminology map to surface "Saved Legal Tasks" as the user-facing label. The task prompts are the importable artifact - they're in `builtinWorkflows.ts` on both the frontend and backend, decoupled from Gary's branding.

Test Connection endpoint validates provider API keys before saving

`3fb09bb3` adds a `POST /user/test-connection` backend route that fires a minimal live request against a user's API key before it's committed, and rewrites the account models page into a provider-card "Connect AI Account" flow. The test route is the reusable piece; the page rewrite is Gary-specific styling.

Mike to Gary: U.S. localization pass on willchen96/mike

zgbrenner's first substantive commit positions the fork for solo U.S. lawyers, swapping out UK-oriented terminology and setting up three new docs that make the self-hosting path clearer. The rename itself is fork-specific, but the artifacts it produces are worth a look on their own.

Pull requests (detailed view)

8 PRs touch this fork — inbound (filed against it) or outbound (filed from it). State icons match the editorial dashboard.

✅ Merged (8)