β€’πŸ‘€ By Richard Scorerβ€’
AIGoBeadsProductivityArchitecture

Why Offline-First Git Issue Tracking Beats Jira for AI Pair Programming

Why bloated SaaS issue trackers slow down human-AI pair programming, how Beads delivers sub-millisecond local task tracking, and how we built Beads Everywhere with zero framework bloat.

In modern software development, we’ve collectively accepted a bizarre reality:

To track that a function has a bug or that a feature needs building, we leave our high-speed terminal and code editor, open a 200MB browser tab, wait 4 seconds for a SaaS issue tracker to hydrate, authenticate via OAuth SSO, and navigate a Byzantine maze of custom fields, sprint boards, and status transitions.

And when you bring autonomous AI coding agents into the loop, the friction multiplies:

  • You have to give the AI API tokens to access your issue tracker.
  • Every query requires an HTTP round-trip over the internet.
  • The API payload dumps hundreds of lines of extraneous metadata (custom field IDs, webhook links, avatar URLs) straight into your LLM prompt.

There is a much better way: Plaintext, Git-native task tracking.


🐝 The Power of Beads (br / bd)

Enter Beads (beads_rust): an offline-first, Git-tracked issue database created for developers and AI agents.

Instead of living on an external cloud server, your tasks live directly inside your repository in a lightweight .beads/issues.jsonl file.

  • ⚑️ Sub-Millisecond Execution: Checking what needs doing (br ready) takes < 1ms.
  • πŸ”’ 100% Sovereign & Offline: Works on airplanes, trains, or during AWS outages.
  • πŸ€– AI-Native: Your AI coding assistant doesn’t need API tokens or web scrapersβ€”it simply queries the local CLI or inspects the plaintext JSONL file directly.
  • πŸ”€ Branch & Git Aware: Task status travels with your Git branches. When you merge a PR, your issue state merges seamlessly alongside the code.

🌐 The Multi-Repo Problem

There was only one catch: Fleet sprawl.

When you’re actively developing across 5, 20, or 40+ local Git repositories, checking your ready tasks meant constantly cd-ing into every folder:

cd ~/projects/backend && br ready
cd ~/projects/frontend && br ready
cd ~/projects/mobile && br ready
cd ~/projects/cli && br ready

We needed a unified, bird’s-eye command center that gives you instant visibility across your entire workspace without losing the speed and simplicity of local Beads databases.


πŸ› οΈ Introducing beads everywhere (be)

We built Beads Everywhereβ€”a standalone Go hub and local web dashboard designed to discover, search, and manage Beads issue databases across all your project folders.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 🐝 beads everywhere                      [πŸ” Search across fleet...]   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  PROMPTS & FLEET (38 Projects Discovered)                              β”‚
β”‚                                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚  β”‚ πŸ“ agentic_ssh  P1    β”‚  β”‚ πŸ“ sparks        P1    β”‚                  β”‚
β”‚  β”‚ Connection retry loop β”‚  β”‚ Schengen compliance   β”‚                  β”‚
β”‚  β”‚ [Claim πŸš€]   [Done βœ“] β”‚  β”‚ [Claim πŸš€]   [Done βœ“] β”‚                  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Lessons in Ruthless Simplicity

When building beads everywhere, we set strict engineering rules:

1. Zero Heavy Frontend Frameworks

We deliberately avoided React, heavy Node bundles, and bloated SPA runtimes.

Instead, the entire application is powered by:

  • Go standard library (html/template): Pre-compiled and embedded directly into the binary via //go:embed.
  • HTMX: For instant, declarative modal interactions and reactive filtering with zero full-page reloads.
  • Tailwind CSS v4: Pre-minified to a tiny 12KB stylesheet.

2. Single Standalone Binary

beads everywhere compiles to a single, static binary with zero runtime dependencies.

  • Starts in < 5ms.
  • Consumes < 15MB of RAM.
  • Includes built-in filesystem discovery that scans your workspace for .beads/ databases in milliseconds.

πŸ“¦ Install & Quick Start

You can install beads everywhere via Homebrew or Go:

# macOS & Linux (Homebrew)
brew install sandbanks/tap/beads_everywhere

# Or via Go
go install github.com/sandbanks/beads-everywhere/cmd/be@latest

Launch the local web dashboard:

be web

Open http://localhost:8425 and instantly view, triage, and filter all your tasks across your entire machine.


πŸ’‘ The Takeaway

Modern software engineering doesn’t require multi-megabyte JavaScript bundles or cloud roundtrips for task management.

By combining the local-first power of Git with clean, lightweight Go engineering, we get tools that are instantaneous, sovereign, and an absolute joy to use for both humans and AI pair programmers.

RS

Richard Scorer

Independent software engineer building high-performance, sovereign tools and agentic primitives at sandbanks.tech.