gastownhall/gastownPublic

Gas Town - multi-agent workspace manager

AI summary: A multi-agent orchestration workspace that persists work states in git-backed hooks to coordinate Claude, Copilot, and other AI tools.

Stars
17.5K
+31 today
Forks
1.6K
Watchers
96
Open issues
279
Open PRs
37
Contributors
~373
Commits
7.8K
Branches
138

GoMITCreated Dec 16, 2025Last push 2d agoLatest release v1.2.1+130 stars this week+130 this month

Star history

since Mar 29, 2026
05K10K15KMar 2026May 2026Jun 2026Aug 2026
17.5K stars as of Aug 7, 2026, tracked back to Mar 29, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-02: 0 commits2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 12 commits2025-12-16: 39 commits2025-12-17: 31 commits2025-12-18: 46 commits2025-12-19: 105 commits2025-12-20: 85 commits2025-12-21: 256 commits2025-12-22: 206 commits2025-12-23: 246 commits2025-12-24: 94 commits2025-12-25: 173 commits2025-12-26: 86 commits2025-12-27: 40 commits2025-12-28: 145 commits2025-12-29: 118 commits2025-12-30: 197 commits2025-12-31: 32 commits2026-01-01: 70 commits2026-01-02: 93 commits2026-01-03: 50 commits2026-01-04: 67 commits2026-01-05: 36 commits2026-01-06: 60 commits2026-01-07: 43 commits2026-01-08: 31 commits2026-01-09: 56 commits2026-01-10: 29 commits2026-01-11: 34 commits2026-01-12: 49 commits2026-01-13: 41 commits2026-01-14: 22 commits2026-01-15: 9 commits2026-01-16: 34 commits2026-01-17: 51 commits2026-01-18: 5 commits2026-01-19: 18 commits2026-01-20: 42 commits2026-01-21: 54 commits2026-01-22: 19 commits2026-01-23: 0 commits2026-01-24: 23 commits2026-01-25: 34 commits2026-01-26: 19 commits2026-01-27: 15 commits2026-01-28: 6 commits2026-01-29: 36 commits2026-01-30: 9 commits2026-01-31: 7 commits2026-02-01: 4 commits2026-02-02: 35 commits2026-02-03: 35 commits2026-02-04: 12 commits2026-02-05: 32 commits2026-02-06: 28 commits2026-02-07: 63 commits2026-02-08: 128 commits2026-02-09: 64 commits2026-02-10: 46 commits2026-02-11: 38 commits2026-02-12: 32 commits2026-02-13: 22 commits2026-02-14: 88 commits2026-02-15: 92 commits2026-02-16: 58 commits2026-02-17: 79 commits2026-02-18: 109 commits2026-02-19: 92 commits2026-02-20: 75 commits2026-02-21: 78 commits2026-02-22: 63 commits2026-02-23: 65 commits2026-02-24: 63 commits2026-02-25: 43 commits2026-02-26: 72 commits2026-02-27: 123 commits2026-02-28: 195 commits2026-03-01: 98 commits2026-03-02: 105 commits2026-03-03: 67 commits2026-03-04: 23 commits2026-03-05: 59 commits2026-03-06: 16 commits2026-03-07: 26 commits2026-03-08: 27 commits2026-03-09: 35 commits2026-03-10: 67 commits2026-03-11: 98 commits2026-03-12: 41 commits2026-03-13: 43 commits2026-03-14: 27 commits2026-03-15: 11 commits2026-03-16: 36 commits2026-03-17: 30 commits2026-03-18: 21 commits2026-03-19: 16 commits2026-03-20: 41 commits2026-03-21: 60 commits2026-03-22: 1 commit2026-03-23: 23 commits2026-03-24: 21 commits2026-03-25: 13 commits2026-03-26: 25 commits2026-03-27: 22 commits2026-03-28: 13 commits2026-03-29: 3 commits2026-03-30: 36 commits2026-03-31: 6 commits2026-04-01: 17 commits2026-04-02: 9 commits2026-04-03: 4 commits2026-04-04: 2 commits2026-04-05: 0 commits2026-04-06: 2 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 64 commits2026-04-13: 4 commits2026-04-14: 1 commit2026-04-15: 1 commit2026-04-16: 2 commits2026-04-17: 4 commits2026-04-18: 3 commits2026-04-19: 11 commits2026-04-20: 9 commits2026-04-21: 2 commits2026-04-22: 5 commits2026-04-23: 3 commits2026-04-24: 0 commits2026-04-25: 10 commits2026-04-26: 0 commits2026-04-27: 2 commits2026-04-28: 4 commits2026-04-29: 8 commits2026-04-30: 11 commits2026-05-01: 4 commits2026-05-02: 6 commits2026-05-03: 0 commits2026-05-04: 1 commit2026-05-05: 2 commits2026-05-06: 4 commits2026-05-07: 17 commits2026-05-08: 8 commits2026-05-09: 5 commits2026-05-10: 9 commits2026-05-11: 5 commits2026-05-12: 4 commits2026-05-13: 20 commits2026-05-14: 33 commits2026-05-15: 57 commits2026-05-16: 4 commits2026-05-17: 1 commit2026-05-18: 15 commits2026-05-19: 16 commits2026-05-20: 21 commits2026-05-21: 9 commits2026-05-22: 8 commits2026-05-23: 1 commit2026-05-24: 8 commits2026-05-25: 8 commits2026-05-26: 49 commits2026-05-27: 2 commits2026-05-28: 1 commit2026-05-29: 0 commits2026-05-30: 1 commit2026-05-31: 3 commits2026-06-01: 0 commits2026-06-02: 1 commit2026-06-03: 0 commits2026-06-04: 1 commit2026-06-05: 2 commits2026-06-06: 2 commits2026-06-07: 0 commits2026-06-08: 4 commits2026-06-09: 6 commits2026-06-10: 8 commits2026-06-11: 16 commits2026-06-12: 4 commits2026-06-13: 4 commits2026-06-14: 7 commits2026-06-15: 3 commits2026-06-16: 17 commits2026-06-17: 14 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 2 commits2026-06-23: 0 commits2026-06-24: 1 commit2026-06-25: 10 commits2026-06-26: 8 commits2026-06-27: 0 commits2026-06-28: 1 commit2026-06-29: 3 commits2026-06-30: 5 commits2026-07-01: 18 commits2026-07-02: 6 commits2026-07-03: 0 commits2026-07-04: 2 commits2026-07-05: 0 commits2026-07-06: 5 commits2026-07-07: 24 commits2026-07-08: 4 commits2026-07-09: 7 commits2026-07-10: 3 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 9 commits2026-07-14: 1 commit2026-07-15: 5 commits2026-07-16: 2 commits2026-07-17: 5 commits2026-07-18: 0 commits2026-07-19: 1 commit2026-07-20: 5 commits2026-07-21: 1 commit2026-07-22: 6 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
6,640 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    17,488 stars

  • Very active

    6,640 commits in 52 weeks

  • Community-driven

    ~373 contributors

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What gastown does

Gas Town is a workspace manager designed to coordinate multiple disparate AI coding agents, such as Claude Code and GitHub Copilot, within a single project. It addresses the critical issue of context loss when agents restart by persisting their work state directly into git-backed hooks. The system acts as a central orchestration layer, providing built-in mailboxes and identity management so agents can effectively communicate and hand off tasks. Rather than locking users into a single AI framework, it creates an environment where different specialized agents can collaborate reliably. By tying the state to the version control system, it ensures that multi-agent workflows are reproducible and resilient to interruptions.

Software engineers and AI tool power users who regularly employ multiple coding assistants and need a reliable way to manage their combined output. Requires familiarity with Git and command-line AI tools.

  • Git-backed state persistence: Saves agent context and work progress directly into git hooks to survive restarts and crashes.
  • Multi-agent coordination: Provides a unified workspace where completely different AI tools can operate simultaneously on the same codebase.
  • Built-in agent mailboxes: Facilitates asynchronous communication and task handoffs between different AI entities.
  • Identity management system: Tracks which specific agent is responsible for which modifications and tasks within the workspace.
  • Framework agnostic orchestration: Supports diverse agents including Claude Code, GitHub Copilot, Codex, and Gemini without requiring them to share a runtime.

Where teams use it

Resilient agent workflows

Developers running long-lived autonomous coding tasks can ensure progress is saved even if the terminal closes or the agent crashes.

Cross-agent collaboration

Teams can use Claude Code for architecture planning and delegate the specific implementation details to GitHub Copilot within the same tracked environment.

Stateful task management

Engineering managers can track exactly what their AI agents are working on and review their persisted state alongside the actual code commits.

Complex codebase refactoring

Users can orchestrate multiple agents to tackle different parts of a large refactor, using the mailbox system to synchronize their changes.

Getting started: git clone https://github.com/gastownhall/gastown.git

README

main branch

Gas Town

Multi-agent orchestration system for Claude Code, GitHub Copilot, and other AI agents with persistent work tracking

Overview

Gas Town is a workspace manager that lets you coordinate multiple AI coding agents (Claude Code, GitHub Copilot, Codex, Gemini, and others) working on different tasks. Instead of losing context when agents restart, Gas Town persists work state in git-backed hooks, enabling reliable multi-agent workflows.

What Problem Does This Solve?

Challenge Gas Town Solution
Agents lose context on restart Work persists in git-backed hooks
Manual agent coordination Built-in mailboxes, identities, and handoffs
4-10 agents become chaotic Scale comfortably to 20-30 agents
Work state lost in agent memory Work state stored in Beads ledger

Architecture

graph TB
    Mayor[The Mayor<br/>AI Coordinator]
    Town[Town Workspace<br/>~/gt/]

    Town --> Mayor
    Town --> Rig1[Rig: Project A]
    Town --> Rig2[Rig: Project B]

    Rig1 --> Crew1[Crew Member<br/>Your workspace]
    Rig1 --> Hooks1[Hooks<br/>Persistent storage]
    Rig1 --> Polecats1[Polecats<br/>Worker agents]

    Rig2 --> Crew2[Crew Member]
    Rig2 --> Hooks2[Hooks]
    Rig2 --> Polecats2[Polecats]

    Hooks1 -.git worktree.-> GitRepo1[Git Repository]
    Hooks2 -.git worktree.-> GitRepo2[Git Repository]

    style Mayor fill:#e1f5ff,color:#000000
    style Town fill:#f0f0f0,color:#000000
    style Rig1 fill:#fff4e1,color:#000000
    style Rig2 fill:#fff4e1,color:#000000
Loading

Core Concepts

The Mayor 🎩

Your primary AI coordinator. The Mayor is a Claude Code instance with full context about your workspace, projects, and agents. Start here - just tell the Mayor what you want to accomplish.

Town 🏘️

Your workspace directory (e.g., ~/gt/). Contains all projects, agents, and configuration.

Rigs 🏗️

Project containers. Each rig wraps a git repository and manages its associated agents.

Crew Members 👤

Your personal workspace within a rig. Where you do hands-on work.

Polecats 🦨

Worker agents with persistent identity but ephemeral sessions. Spawned for tasks, sessions end on completion, but identity and work history persist.

Hooks 🪝

Git worktree-based persistent storage for agent work. Survives crashes and restarts.

Convoys 🚚

Work tracking units. Bundle multiple beads that get assigned to agents. Convoys labeled mountain get autonomous stall detection and smart skip logic for epic-scale execution.

Beads Integration 📿

Git-backed issue tracking system that stores work state as structured data.

Bead IDs (also called issue IDs) use a prefix + 5-character alphanumeric format (e.g., gt-abc12, hq-x7k2m). The prefix indicates the item's origin or rig. Commands like gt sling and gt convoy accept these IDs to reference specific work items. The terms "bead" and "issue" are used interchangeably—beads are the underlying data format, while issues are the work items stored as beads.

Molecules 🧬

Workflow templates that coordinate multi-step work. Formulas (TOML definitions) are instantiated as molecules with tracked steps. Two modes: root-only wisps (steps materialized at runtime, lightweight) and poured wisps (steps materialized as sub-wisps with checkpoint recovery). See Molecules.

Monitoring: Witness, Deacon, Dogs 🐕

A three-tier watchdog system keeps agents healthy:

  • Witness - Per-rig lifecycle manager. Monitors polecats, detects stuck agents, triggers recovery, manages session cleanup.
  • Deacon - Background supervisor running continuous patrol cycles across all rigs.
  • Dogs - Infrastructure workers dispatched by the Deacon for maintenance tasks (e.g., Boot for triage).

Refinery 🏭

Per-rig merge queue processor. When polecats complete work via gt done, the Refinery batches merge requests, runs verification gates, and merges to main using a Bors-style bisecting queue. Failed MRs are isolated and either fixed inline or re-dispatched.

Escalation 🚨

Severity-routed issue escalation. Agents that hit blockers escalate via gt escalate, which creates tracked beads routed through the Deacon, Mayor, and (if needed) Overseer. Severity levels: CRITICAL (P0), HIGH (P1), MEDIUM (P2). See Escalation.

Scheduler ⏱️

Config-driven capacity governor for polecat dispatch. Prevents API rate limit exhaustion by batching dispatch under configurable concurrency limits. Default is direct dispatch; set scheduler.max_polecats to enable deferred dispatch with the daemon. See Scheduler.

Seance 👻

Session discovery and continuation. Discovers previous agent sessions via .events.jsonl logs, enabling agents to query their predecessors for context and decisions from earlier work.

gt seance                       # List discoverable predecessor sessions
gt seance --talk <id> -p "What did you find?"  # One-shot question

Wasteland 🏜️

Federated work coordination network linking Gas Towns through DoltHub. Rigs post wanted items, claim work from other towns, submit completion evidence, and earn portable reputation via multi-dimensional stamps. See Wasteland.

New to Gas Town? See the Glossary for a complete guide to terminology and concepts.

Installation

Choose one of the two setup paths below: install Gas Town on your host, or run it inside a Docker container.

Prerequisites

Native installs require the host tools below. Docker installs only require Docker Compose on the host; the image supplies Go, Dolt, bd, tmux, and CLI utilities inside the container. The platform steps below say when a path installs gt, bd, and dolt for you and when you install them separately.

Tool Version Notes
Git 2.20+ Worktree support
Go 1.26.2+ (see go.mod) Required for the Linux and Windows paths and for macOS source builds. Not needed for brew install gastown or Docker setup.
Beads (bd) 0.57.0+ Required for native installs. Homebrew and Docker supply it; source/native Go paths install it with go install.
sqlite3 any Used by convoy database queries. Usually pre-installed on macOS and Linux.
ICU4C dev headers varies Required for source builds that compile the ICU-backed query layer. Use libicu-dev on Debian/Ubuntu, libicu-devel on Fedora/RHEL, icu4c on macOS, and MSYS2 ICU packages for native Windows.
tmux 3.0+ Required for gt up and the tmux-backed roles (Mayor, Witnesses, Refineries, polecats). Optional only for minimal-mode workflows where you run runtime instances manually.
Claude Code CLI latest Default runtime. See Runtime Configuration for alternatives (Codex, Copilot, Gemini, Cursor).

Local setup

Install the prerequisites listed above, then install gt for your platform.

Install gt on macOS

Homebrew installs gt, bd, and dolt together.

brew install gastown

Avoid go install on macOS. The unsigned binary it produces gets killed by Gatekeeper. To build from source, install Dolt and ICU4C with Homebrew, install bd with Go, then build and install gt with make install. Put $HOME/.local/bin and $HOME/go/bin ahead of any stale binary locations on your PATH so the freshly installed gt and bd take precedence.

brew install dolt icu4c
go install github.com/steveyegge/beads/cmd/bd@latest
export PATH="$HOME/.local/bin:$HOME/go/bin:$PATH"
git clone https://github.com/steveyegge/gastown.git
cd gastown
make install

Install gt on Linux

Install Dolt by following the Dolt installation guide, then install gt and bd with go install.

go install github.com/steveyegge/gastown/cmd/gt@latest
go install github.com/steveyegge/beads/cmd/bd@latest

Prepend the Go binary directory to your PATH if it is not already there, so freshly installed gt and bd binaries take precedence over stale copies. Append to ~/.zshrc instead if you use zsh.

echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Install gt on Windows

Install Dolt first by following the Dolt installation guide. Unlike the macOS Homebrew path, go install does not install Dolt. Then install gt and bd with go install.

go install github.com/steveyegge/gastown/cmd/gt@latest
go install github.com/steveyegge/beads/cmd/bd@latest

Both binaries land in %USERPROFILE%\go\bin\. Put that directory before older gt or bd install locations on PATH, then open a new shell for the change to take effect.

Native Windows source builds that compile the ICU-backed query layer need an MSYS2 UCRT64 or MinGW64 shell with matching icu, toolchain, and pkg-config packages; the repository's Windows CI uses pacboy -S icu:p toolchain:p pkg-config:p. Plain PowerShell/MSVC is not enough for that CGO build.

For full tmux-backed workflows on Windows, use WSL or another Linux environment. Native Windows shells are best treated as minimal CLI-only environments.

Create your workspace

Run gt install to create your headquarters (HQ) at ~/gt. The --shell flag installs shell integration and enables Gas Town globally. The --git flag initializes the HQ as a git repository. Before using --git, set git config --global user.name and git config --global user.email so the initial commit has a valid identity.

git config --global user.name "Your Name"
git config --global user.email "you@example.com"
gt install ~/gt --shell --git
cd ~/gt

Start the long-lived services. gt up boots Dolt, the daemon, the Deacon, the Mayor, and per-rig Witnesses and Refineries.

gt up

Verify the install. The --fix flag clears the warnings that gt install does not preempt.

gt doctor --fix

Add a project

Use gt rig add to clone a repository into your HQ as a rig.

gt rig add myproject https://github.com/you/repo.git

Rig names accept letters, digits, and underscores. Hyphens, dots, spaces, and path separators are not allowed. Use my_project instead of my-project.

To set a custom beads prefix for the rig, pass --prefix.

gt rig add myproject https://github.com/you/repo.git --prefix mp

Create your crew workspace

A crew workspace is a personal git clone where you do hands-on work.

gt crew add yourname --rig myproject
cd myproject/crew/yourname

Start the Mayor

The Mayor coordinates work across rigs.

gt mayor attach

Docker Compose setup

docker-compose.yml runs Gas Town inside a sandbox container. The container hosts an HQ at /gt, which Compose bind-mounts from ${FOLDER} on the host. The entrypoint runs gt install /gt --git against that directory on first start, so FOLDER must point at an empty directory that you want to become the HQ or an existing Gas Town HQ. Set GIT_USER and GIT_EMAIL so git and Dolt commits do not use the default test identity. See the full Docker guide for lifecycle, storage, and security details.

export GIT_USER="<your name>"
export GIT_EMAIL="<your email>"
export FOLDER="/path/to/empty/dir"   # empty directory or existing Gas Town HQ
export DASHBOARD_PORT=8080           # optional, host port for the dashboard

mkdir -p "$FOLDER"
docker compose build              # only needed on first run or after code changes
docker compose up -d
docker compose logs -f gastown    # wait for "HQ created successfully!", then Ctrl-C

docker compose exec gastown zsh   # or bash

Inside the container, finish bootstrapping.

gt enable                         # enable Gas Town global state
gt shell install                  # install shell integration
gt up --restore                   # start services and restore worker settings
gh auth login                     # optional: required for private GitHub rigs
gt mayor attach

The dashboard port is exposed from the container to the host. Treat it as a trusted local-network surface, and do not point FOLDER at a host workspace that a native gt install is using at the same time.

Quick Start Guide

Getting Started

Run

git config --global user.name "Your Name" &&
git config --global user.email "you@example.com" &&
gt install ~/gt --shell --git &&
cd ~/gt &&
gt up &&
gt doctor --fix &&
gt config agent list &&
gt mayor attach

and tell the Mayor what you want to build!


Basic Workflow

sequenceDiagram
    participant You
    participant Mayor
    participant Convoy
    participant Agent
    participant Hook

    You->>Mayor: Tell Mayor what to build
    Mayor->>Convoy: Create convoy with beads
    Mayor->>Agent: Sling bead to agent
    Agent->>Hook: Store work state
    Agent->>Agent: Complete work
    Agent->>Convoy: Report completion
    Mayor->>You: Summary of progress
Loading

Example: Feature Development

# 1. Start the Mayor
gt mayor attach

# 2. In Mayor session, create a convoy with bead IDs
gt convoy create "Feature X" gt-abc12 gt-def34 --notify --human

# 3. Assign work to an agent
gt sling gt-abc12 myproject

# 4. Track progress
gt convoy list

# 5. Monitor agents
gt agents

Common Workflows

Mayor Workflow (Recommended)

Best for: Coordinating complex, multi-issue work

flowchart LR
    Start([Start Mayor]) --> Tell[Tell Mayor<br/>what to build]
    Tell --> Creates[Mayor creates<br/>convoy + agents]
    Creates --> Monitor[Monitor progress<br/>via convoy list]
    Monitor --> Done{All done?}
    Done -->|No| Monitor
    Done -->|Yes| Review[Review work]
Loading

Commands:

# Attach to Mayor
gt mayor attach

# In Mayor, create convoy and let it orchestrate
gt convoy create "Auth System" gt-x7k2m gt-p9n4q --notify

# Track progress
gt convoy list

Minimal Mode (No Tmux)

Run individual runtime instances manually. Gas Town just tracks state.

gt convoy create "Fix bugs" gt-abc12   # Create convoy (sling auto-creates if skipped)
gt sling gt-abc12 myproject            # Assign to worker
claude --resume                        # Agent reads mail, runs work (Claude)
# or: codex                            # Start Codex in the workspace
gt convoy list                         # Check progress

Beads Formula Workflow

Best for: Predefined, repeatable processes

Formulas are TOML-defined workflows embedded in the gt binary (source in internal/formula/formulas/).

Example Formula (internal/formula/formulas/release.formula.toml):

description = "Standard release process"
formula = "release"
version = 1

[vars.version]
description = "The semantic version to release (e.g., 1.2.0)"
required = true

[[steps]]
id = "bump-version"
title = "Bump version"
description = "Run ./scripts/bump-version.sh {{version}}"

[[steps]]
id = "run-tests"
title = "Run tests"
description = "Run make test"
needs = ["bump-version"]

[[steps]]
id = "build"
title = "Build"
description = "Run make build"
needs = ["run-tests"]

[[steps]]
id = "create-tag"
title = "Create release tag"
description = "Run git tag -a v{{version}} -m 'Release v{{version}}'"
needs = ["build"]

[[steps]]
id = "publish"
title = "Publish"
description = "Run ./scripts/publish.sh"
needs = ["create-tag"]

Execute:

# List available formulas
bd formula list

# Run a formula with variables
bd cook release --var version=1.2.0

# Create formula instance for tracking
bd mol pour release --var version=1.2.0

Manual Convoy Workflow

Best for: Direct control over work distribution

# Create convoy manually
gt convoy create "Bug Fixes" --human

# Add issues to existing convoy
gt convoy add hq-cv-abc gt-m3k9p gt-w5t2x

# Assign to specific agents
gt sling gt-m3k9p myproject/my-agent

# Check status
gt convoy show

Runtime Configuration

Gas Town supports multiple AI coding runtimes. Per-rig runtime settings are in settings/config.json.

{
  "runtime": {
    "provider": "codex",
    "command": "codex",
    "args": [],
    "prompt_mode": "none"
  }
}

Notes:

  • Claude uses hooks in .claude/settings.json (managed via --settings flag) for mail injection and startup.
  • For Codex, set project_doc_fallback_filenames = ["CLAUDE.md"] in ~/.codex/config.toml so role instructions are picked up.
  • For runtimes without hooks (e.g., Codex), Gas Town sends a startup fallback after the session is ready: gt prime, optional gt mail check --inject for autonomous roles, and gt nudge deacon session-started.
  • GitHub Copilot (copilot) is a built-in preset using --yolo for autonomous mode. It uses executable lifecycle hooks in .github/hooks/gastown.json (same events as Claude: sessionStart, userPromptSubmitted, preToolUse, sessionEnd). Uses a 5-second ready delay instead of prompt detection. Requires a Copilot seat and org-level CLI policy. See docs/INSTALLING.md.

Key Commands

Workspace Management

gt install <path>           # Initialize workspace
gt rig add <name> <repo>    # Add project
gt rig list                 # List projects
gt crew add <name> --rig <rig>  # Create crew workspace

Agent Operations

gt agents                   # List active agents
gt sling <bead-id> <rig>    # Assign work to agent
gt sling <bead-id> <rig> --agent cursor   # Override runtime for this sling/spawn
gt mayor attach             # Start Mayor session
gt mayor start --agent auggie           # Run Mayor with a specific agent alias
gt prime                    # Context recovery (run inside existing session)
gt feed                     # Real-time activity feed (TUI)
gt feed --problems          # Start in problems view (stuck agent detection)

Built-in agent presets: claude, gemini, codex, kiro, cursor, auggie, amp, opencode, copilot, pi, omp

The kiro preset launches kiro-cli chat --trust-all-tools, supports Kiro's documented --resume / --resume-id session flags, and does not install Kiro hooks or .kiro project files.

Convoy (Work Tracking)

gt convoy create <name> [issues...]   # Create convoy with issues
gt convoy list              # List all convoys
gt convoy show [id]         # Show convoy details
gt convoy add <convoy-id> <issue-id...>  # Add issues to convoy

Configuration

# Set custom agent command
gt config agent set claude-glm "claude-glm --model glm-4"
gt config agent set codex-low "codex --thinking low"

# Set default agent
gt config default-agent claude-glm

Monitoring & Health

gt escalate -s HIGH "description"  # Escalate a blocker
gt escalate list               # List open escalations
gt scheduler status            # Show scheduler state
gt seance                      # Discover previous sessions
gt seance --talk <id>          # Query a predecessor session

Beads Integration

bd formula list             # List formulas
bd cook <formula>           # Execute formula
bd mol pour <formula>       # Create trackable instance
bd mol list                 # List active instances

Wasteland Federation

gt wl join <remote>            # Join a wasteland
gt wl browse                   # View wanted board
gt wl claim <id>               # Claim work
gt wl done <id> --evidence <url>  # Submit completion

Cooking Formulas

Gas Town includes built-in formulas for common workflows. See internal/formula/formulas/ for available recipes.

Activity Feed

gt feed launches an interactive terminal dashboard for monitoring all agent activity in real-time. It combines beads activity, agent events, and merge queue updates into a three-panel TUI:

  • Agent Tree - Hierarchical view of all agents grouped by rig and role
  • Convoy Panel - In-progress and recently-landed convoys
  • Event Stream - Chronological feed of creates, completions, slings, nudges, and more
gt feed                      # Launch TUI dashboard
gt feed --problems           # Start in problems view
gt feed --plain              # Plain text output (no TUI)
gt feed --window             # Open in dedicated tmux window
gt feed --since 1h           # Events from last hour

Navigation: j/k to scroll, Tab to switch panels, 1/2/3 to jump to a panel, ? for help, q to quit.

Problems View

At scale (20-50+ agents), spotting stuck agents in the activity stream becomes difficult. The problems view surfaces agents needing human intervention by analyzing structured beads data.

Press p in gt feed (or start with gt feed --problems) to toggle the problems view, which groups agents by health state:

State Condition
GUPP Violation Hooked work with no progress for an extended period
Stalled Hooked work with reduced progress
Zombie Dead tmux session
Working Active, progressing normally
Idle No hooked work

Intervention keys (in problems view): n to nudge the selected agent, h to handoff (refresh context).

Dashboard

Gas Town includes a web dashboard for monitoring your workspace. The dashboard must be run from inside a Gas Town workspace (HQ) directory.

# Start dashboard (default port 8080)
gt dashboard

# Start on a custom port
gt dashboard --port 3000

# Start and automatically open in browser
gt dashboard --open

The dashboard gives you a single-page overview of everything happening in your workspace: agents, convoys, hooks, queues, issues, and escalations. It auto-refreshes via htmx and includes a command palette for running gt commands directly from the browser.

Monitoring & Health

Gas Town uses a three-tier watchdog chain to keep agents healthy at scale:

Daemon (Go process) ← heartbeat every 3 min
    └── Boot (AI agent) ← intelligent triage
        └── Deacon (AI agent) ← continuous patrol
            └── Witnesses & Refineries ← per-rig agents

Witness (Per-Rig)

Each rig has a Witness that monitors its polecats. The Witness detects stuck agents, triggers recovery (nudge or handoff), manages session cleanup, and tracks completion. Witnesses delegate work rather than implementing it directly.

Deacon (Cross-Rig)

The Deacon runs continuous patrol cycles across all rigs, checking agent health, dispatching Dogs for maintenance tasks, and escalating issues that individual Witnesses can't resolve.

Escalation

When agents hit blockers, they escalate rather than waiting:

gt escalate -s HIGH "Description of blocker"
gt escalate list                    # List open escalations
gt escalate ack <bead-id>           # Acknowledge an escalation

Escalations route through Deacon -> Mayor -> Overseer based on severity. See Escalation design.

Merge Queue (Refinery)

The Refinery processes completed polecat work through a bisecting merge queue:

  1. Polecat runs gt done -> branch pushed, MR bead created
  2. Refinery batches pending MRs
  3. Runs verification gates on the merged stack
  4. If green: all MRs in batch merge to main
  5. If red: bisects to isolate the failing MR, merges the good ones

This is a Bors-style merge queue — polecats never push directly to main.

Scheduler

The scheduler controls polecat dispatch capacity to prevent API rate limit exhaustion:

gt config set scheduler.max_polecats 5   # Enable deferred dispatch (max 5 concurrent)
gt scheduler status                      # Show scheduler state
gt scheduler pause                       # Pause dispatch
gt scheduler resume                      # Resume dispatch

Default mode (max_polecats = -1) dispatches immediately via gt sling. When a limit is set, the daemon dispatches incrementally, respecting capacity. See Scheduler design.

Seance

Discover and query previous agent sessions:

gt seance                              # List discoverable predecessor sessions
gt seance --talk <id>                  # Full context conversation with predecessor
gt seance --talk <id> -p "Question?"   # One-shot question to predecessor

Seance discovers sessions via .events.jsonl logs, enabling agents to recover context and decisions from earlier work without re-reading entire codebases.

Wasteland Federation

The Wasteland is a federated work coordination network linking multiple Gas Towns through DoltHub:

gt wl join hop/wl-commons              # Join a wasteland
gt wl browse                           # View wanted board
gt wl claim <id>                       # Claim a wanted item
gt wl done <id> --evidence <url>       # Submit completion with evidence
gt wl post --title "Need X"            # Post new wanted item

Completions earn portable reputation via multi-dimensional stamps (quality, speed, complexity). See Wasteland guide.

Telemetry (OpenTelemetry)

Gas Town emits all agent operations as structured logs and metrics to any OTLP-compatible backend (VictoriaMetrics/VictoriaLogs by default):

# Configure OTLP endpoints
export GT_OTEL_LOGS_URL="http://localhost:9428/insert/jsonline"
export GT_OTEL_METRICS_URL="http://localhost:8428/api/v1/write"

Events emitted: session lifecycle, agent state changes, bd calls with duration, mail operations, sling/nudge/done workflows, polecat spawn/remove, formula instantiation, convoy creation, daemon restarts, and more.

Metrics include: gastown.session.starts.total, gastown.bd.calls.total, gastown.polecat.spawns.total, gastown.done.total, gastown.convoy.creates.total, and others.

See OTEL data model and OTEL architecture for the complete event schema.

Advanced Concepts

The Propulsion Principle

Gas Town uses git hooks as a propulsion mechanism. Each hook is a git worktree with:

  1. Persistent state - Work survives agent restarts
  2. Version control - All changes tracked in git
  3. Rollback capability - Revert to any previous state
  4. Multi-agent coordination - Shared through git

Hook Lifecycle

stateDiagram-v2
    [*] --> Created: Agent spawned
    Created --> Active: Work assigned
    Active --> Suspended: Agent paused
    Suspended --> Active: Agent resumed
    Active --> Completed: Work done
    Completed --> Archived: Hook archived
    Archived --> [*]
Loading

MEOW (Mayor-Enhanced Orchestration Workflow)

MEOW is the recommended pattern:

  1. Tell the Mayor - Describe what you want
  2. Mayor analyzes - Breaks down into tasks
  3. Convoy creation - Mayor creates convoy with beads
  4. Agent spawning - Mayor spawns appropriate agents
  5. Work distribution - Beads slung to agents via hooks
  6. Progress monitoring - Track through convoy status
  7. Completion - Mayor summarizes results

Shell Completions

# Bash
gt completion bash > /etc/bash_completion.d/gt

# Zsh
gt completion zsh > "${fpath[1]}/_gt"

# Fish
gt completion fish > ~/.config/fish/completions/gt.fish

Project Roles

Role Description Primary Interface
Mayor AI coordinator gt mayor attach
Human (You) Crew member Your crew directory
Polecat Worker agent Spawned by Mayor
Witness Per-rig agent health monitor Automatic patrol
Deacon Cross-rig supervisor daemon gt patrol
Refinery Merge queue processor Automatic
Hook Persistent storage Git worktree
Convoy Work tracker gt convoy commands

Tips

  • Always start with the Mayor - It's designed to be your primary interface
  • Use convoys for coordination - They provide visibility across agents
  • Leverage hooks for persistence - Your work won't disappear
  • Create formulas for repeated tasks - Save time with Beads recipes
  • Use gt feed for live monitoring - Watch agent activity and catch stuck agents early
  • Monitor the dashboard - Get real-time visibility in the browser
  • Let the Mayor orchestrate - It knows how to manage agents

Design Documentation

For deeper technical details, see the design docs in docs/:

Topic Document
Architecture docs/design/architecture.md
Glossary docs/glossary.md
Molecules docs/concepts/molecules.md
Escalation docs/design/escalation.md
Scheduler docs/design/scheduler.md
Wasteland docs/WASTELAND.md
OTEL data model docs/otel-data-model.md
Witness design docs/design/witness-at-team-lead.md
Convoy lifecycle docs/design/convoy/
Polecat lifecycle docs/design/polecat-lifecycle-patrol.md
Plugin system docs/design/plugin-system.md
Agent providers docs/agent-provider-integration.md
Hooks docs/HOOKS.md
Installation guide docs/INSTALLING.md
Docker guide docs/docker.md

Troubleshooting

Agents lose connection

Check hooks are properly initialized:

gt hooks list
gt hooks repair

Convoy stuck

Force refresh:

gt convoy refresh <convoy-id>

Mayor not responding

Restart Mayor session:

gt mayor detach
gt mayor attach

License

MIT License - see LICENSE file for details

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 85

Releases and announcements

14 total
  1. v1.2.1v1.2.1Jun 6, 20261.6K downloads

    ## Gas Town v1.2.1 Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows. ### Installation **Homebrew (macOS/Linux):** ```bash brew install gastown ``` **npm (Node.js):** ```bash npm install -g @gastown/gt ``` **Manual Install:** Download the appropriate binary for your platform below, extract it, and place it in your PATH. ## Changelog ### Features * 59edd7151e95edae2598887b22ae0f097ca873b3 feat(daemon): per-bead cargo target clean hook (hq-x0v7v) * 5e31df81f66b847774a41a6aef0672720d9a385c feat(witness): detect polecats stuck at startup without heartbeat (gt-uk7) ### Bug Fixes * 64ad5ed95ea071e99a22eaa537d5d199072aee11 Revert "fix: clean standalone formula wisp on hook failure" * 9d47611db25b78080d4da95b5ae72d64e6f4e388 Revert "fix: complete opencode agent logging adapter (gt-gh-3833)" * d16118249cc967f331169afc02e150aa94bbddd8 Revert "fix: parse OpenCode step-finish usage (gt-gh-3833)" * e34cf5a20ebe80df5f03169c1ff85c27f49d78f9 fix(daemon): clean legacy tmux sockets on startup * bf1ec5d49408c63c4c64ef0a8fad5066974d8871 fix(daemon): distinguish Claude usage limits from real crashes (hq-j6hur.4.1, gh#3398) * 306d142f097387b90ce2e3a8fe0e8c9338a8cd60 fix(d

  2. v1.2.0v1.2.0May 30, 2026171 downloads

    ## Gas Town v1.2.0 Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), FreeBSD, and Windows. ### Installation **Homebrew tap (macOS/Linux):** ```bash brew install gastownhall/gastown/gastown ``` **Homebrew core (when autobump lands):** ```bash brew install gastown ``` **Manual Install:** Download the appropriate binary for your platform below, extract it, and place `gt` in your PATH. **npm:** The npm package is not the recommended 1.2.0 install path yet. The `@gastown/gt` package remains behind the GitHub/Homebrew release while npm publisher access is being resolved. ### Compatibility Notes - Dolt 2.0.7 or newer is required. - Beads `bd` v1.0.4 is the supported version for this release. Gas Town now fails fast if it detects a newer unsupported `bd` version, rather than risking schema drift against shared workspaces. - Release archives are built CGO-disabled across the GoReleaser matrix. ## Highlights ### Release and Dependency Hardening Gas Town 1.2.0 tightens the runtime dependency surface around Dolt and beads. CI, Docker, nightly integration, and release builds are pinned to the validated Dolt 2.0.7 baseline, while install and doctor flows validate the Dol

  3. v1.1.0v1.1.0May 7, 2026357 downloads

    ## Gas Town v1.1.0 Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows. ### Installation **Homebrew (macOS/Linux):** ```bash brew install gastown ``` **npm (Node.js):** ```bash npm install -g @gastown/gt ``` **Manual Install:** Download the appropriate binary for your platform below, extract it, and place it in your PATH. ## Changelog ### Features * d709cfc2fc2f15093e8686da6ce7b97d4a671e5e feat: fire notifications for convoy completion and cross-rig dep resolution (gt-wfs-55hsg) (#3838) ### Bug Fixes * 049c0068a63cf7a6fc89a8f2181267a15b28256e fix(beads): avoid copying Beads lock in routed writes * b7096d7107de52d91a140f18075e9e04eea0e224 fix(beads): route Create via BEADS_DIR instead of --repo to prevent pthread deadlock (hq-1uf2) * e341c4ac96ed16faac72db919393add54cfae31d fix(beads): route cross-rig writes by issue id * 84594d118de3c1c299d2f8a9541ac62196c3dabb fix(beads): support bd 1.0+ where init persists issue_prefix (#3829) * f309f423c947e3e345a546b5b4d03f041bb0d516 fix(ci): add --server flag to all bd init calls for v1.0.0 compat * f67fedb78318b22a03bab2e7072c25e2518ba62c fix(ci): upgrade bd CLI to v1.0.0 and fix scheduler integration tests * 82e

  4. v1.0.1v1.0.1Apr 25, 2026374 downloads

    ## Gas Town v1.0.1 Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows. ### Installation **Homebrew (macOS/Linux):** ```bash brew install gastownhall/gastown/gastown ``` **npm (Node.js):** ```bash npm install -g @gastown/gt ``` **Manual Install:** Download the appropriate binary for your platform below, extract it, and place it in your PATH. ## Changelog ### Features * e0cbd517dc95707e4ab5444d99759696e0b78950 feat(bitbucket): add Bitbucket Cloud integration for merge queue (#3600) * 868df8e422f56c3332e3cc5a19f5269c2d033103 feat(config): add custom-groq-opus cost tier (#3553) * 62b911e5603ed74b49b21cb320a2ca29f15020a6 feat(config): per-role effort level in cost-tier system (#3545) * e4fac78048053b35fc7c398fc3b2493cf5fe5f7a feat(daemon): implement stuck-agent-dog auto-restart (#3340) * 79d963a43353c94d258c40d5355675895486a89a feat(deacon): read model-escalation.json to promote agent on re-dispatch (hq-ko4) (#3530) * 5559faaf51df03a10dc483c0ed4c85cf780d81d8 feat(formula): add --set flag and fix bead prefix for convoy formulas (#3613) * da22a592bf06d659a94d2dc09f5ef31fe235f3b2 feat(formula): add interactive step support for workflow formulas (#3529) * c6ae

  5. Gas Town v1.0.0v1.0.0Apr 3, 2026

    # Gas Town v1.0.0 Gas Town reaches 1.0! This milestone release marks production stability after 14 releases (v0.5.0 through v0.13.0) of iterative development with a growing open-source community. ## Highlights - **Windows platform support** — Full platform-specific signal handling, process management, and tmux descendant tracking - **Workflow formula type** — `gt formula run` supports `type = "workflow"` for interactive multi-step execution - **Refinery PR merge strategy** — Native GitHub merge queue integration via `merge_strategy=pr` - **Security hardening** — SQL injection fix in dolt_remotes, polecat PreToolUse guard blocks `sudo` and system package installs, unsigned binary rejection - **Mayor approval gates** — Polecats must get mayor approval before expanding molecule scope - **Rate-limit watchdog plugin** — Auto-estop on API 429 rate limit errors ## Community contributions This release includes contributions from multiple community members across 75 commits. Thank you to everyone who submitted PRs, reported issues, and helped test. ## Full changelog See [CHANGELOG.md](https://github.com/gastownhall/gastown/blob/main/CHANGELOG.md) for the complete list of changes. ##

Code frequency

additions and deletions
+207.4K-207.4KWeek of 2025-12-14: +69,482 linesWeek of 2025-12-14: -21,110 linesWeek of 2025-12-21: +207,439 linesWeek of 2025-12-21: -182,864 linesWeek of 2025-12-28: +202,439 linesWeek of 2025-12-28: -127,270 linesWeek of 2026-01-04: +92,689 linesWeek of 2026-01-04: -48,356 linesWeek of 2026-01-11: +43,510 linesWeek of 2026-01-11: -14,189 linesWeek of 2026-01-18: +15,792 linesWeek of 2026-01-18: -3,551 linesWeek of 2026-01-25: +22,806 linesWeek of 2026-01-25: -4,464 linesWeek of 2026-02-01: +33,359 linesWeek of 2026-02-01: -10,830 linesWeek of 2026-02-08: +60,376 linesWeek of 2026-02-08: -16,198 linesWeek of 2026-02-15: +190,331 linesWeek of 2026-02-15: -119,807 linesWeek of 2026-02-22: +113,198 linesWeek of 2026-02-22: -68,099 linesWeek of 2026-03-01: +47,971 linesWeek of 2026-03-01: -19,862 linesWeek of 2026-03-08: +41,618 linesWeek of 2026-03-08: -15,339 linesWeek of 2026-03-15: +23,633 linesWeek of 2026-03-15: -4,549 linesWeek of 2026-03-22: +12,597 linesWeek of 2026-03-22: -1,411 linesWeek of 2026-03-29: +5,982 linesWeek of 2026-03-29: -1,214 linesWeek of 2026-04-05: +28 linesWeek of 2026-04-05: -10 linesWeek of 2026-04-12: +10,954 linesWeek of 2026-04-12: -2,569 linesWeek of 2026-04-19: +4,645 linesWeek of 2026-04-19: -902 linesWeek of 2026-04-26: +4,908 linesWeek of 2026-04-26: -1,079 linesWeek of 2026-05-03: +4,006 linesWeek of 2026-05-03: -452 linesWeek of 2026-05-10: +13,713 linesWeek of 2026-05-10: -3,075 linesWeek of 2026-05-17: +11,777 linesWeek of 2026-05-17: -3,686 linesWeek of 2026-05-24: +7,236 linesWeek of 2026-05-24: -1,896 linesWeek of 2026-05-31: +1,282 linesWeek of 2026-05-31: -53 linesWeek of 2026-06-07: +5,827 linesWeek of 2026-06-07: -828 linesWeek of 2026-06-14: +7,338 linesWeek of 2026-06-14: -1,356 linesWeek of 2026-06-21: +4,283 linesWeek of 2026-06-21: -1,260 linesWeek of 2026-06-28: +7,657 linesWeek of 2026-06-28: -1,437 linesWeek of 2026-07-05: +8,656 linesWeek of 2026-07-05: -1,987 linesWeek of 2026-07-12: +6,601 linesWeek of 2026-07-12: -889 linesWeek of 2026-07-19: +3,372 linesWeek of 2026-07-19: -653 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesDec 14, 2025Jul 26, 2026
+1.3M lines added, -681.2K removed over the last year.

Commits per week

last 52 weeks
11010Week of 2025-08-02: 0 commitsWeek of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 318 commitsWeek of 2025-12-21: 1101 commitsWeek of 2025-12-28: 705 commitsWeek of 2026-01-04: 322 commitsWeek of 2026-01-11: 240 commitsWeek of 2026-01-18: 161 commitsWeek of 2026-01-25: 126 commitsWeek of 2026-02-01: 209 commitsWeek of 2026-02-08: 418 commitsWeek of 2026-02-15: 583 commitsWeek of 2026-02-22: 624 commitsWeek of 2026-03-01: 394 commitsWeek of 2026-03-08: 338 commitsWeek of 2026-03-15: 215 commitsWeek of 2026-03-22: 118 commitsWeek of 2026-03-29: 77 commitsWeek of 2026-04-05: 2 commitsWeek of 2026-04-12: 79 commitsWeek of 2026-04-19: 40 commitsWeek of 2026-04-26: 35 commitsWeek of 2026-05-03: 37 commitsWeek of 2026-05-10: 132 commitsWeek of 2026-05-17: 71 commitsWeek of 2026-05-24: 69 commitsWeek of 2026-05-31: 9 commitsWeek of 2026-06-07: 42 commitsWeek of 2026-06-14: 41 commitsWeek of 2026-06-21: 21 commitsWeek of 2026-06-28: 35 commitsWeek of 2026-07-05: 43 commitsWeek of 2026-07-12: 22 commitsWeek of 2026-07-19: 13 commitsWeek of 2026-07-26: 0 commitsAug 2, 2025Jul 26, 2026
6.6K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 32 commitsSun 1:00 — 47 commitsSun 2:00 — 21 commitsSun 3:00 — 8 commitsSun 4:00 — 4 commitsSun 5:00 — 1 commitsSun 6:00 — 4 commitsSun 7:00 — 7 commitsSun 8:00 — 14 commitsSun 9:00 — 43 commitsSun 10:00 — 58 commitsSun 11:00 — 37 commitsSun 12:00 — 21 commitsSun 13:00 — 49 commitsSun 14:00 — 90 commitsSun 15:00 — 87 commitsSun 16:00 — 117 commitsSun 17:00 — 53 commitsSun 18:00 — 72 commitsSun 19:00 — 46 commitsSun 20:00 — 53 commitsSun 21:00 — 84 commitsSun 22:00 — 72 commitsSun 23:00 — 55 commitsMon 0:00 — 66 commitsMon 1:00 — 24 commitsMon 2:00 — 53 commitsMon 3:00 — 17 commitsMon 4:00 — 8 commitsMon 5:00 — 8 commitsMon 6:00 — 5 commitsMon 7:00 — 14 commitsMon 8:00 — 16 commitsMon 9:00 — 16 commitsMon 10:00 — 18 commitsMon 11:00 — 17 commitsMon 12:00 — 75 commitsMon 13:00 — 47 commitsMon 14:00 — 59 commitsMon 15:00 — 54 commitsMon 16:00 — 67 commitsMon 17:00 — 45 commitsMon 18:00 — 48 commitsMon 19:00 — 23 commitsMon 20:00 — 65 commitsMon 21:00 — 90 commitsMon 22:00 — 65 commitsMon 23:00 — 94 commitsTue 0:00 — 82 commitsTue 1:00 — 49 commitsTue 2:00 — 19 commitsTue 3:00 — 13 commitsTue 4:00 — 17 commitsTue 5:00 — 7 commitsTue 6:00 — 8 commitsTue 7:00 — 10 commitsTue 8:00 — 4 commitsTue 9:00 — 22 commitsTue 10:00 — 39 commitsTue 11:00 — 33 commitsTue 12:00 — 77 commitsTue 13:00 — 95 commitsTue 14:00 — 63 commitsTue 15:00 — 45 commitsTue 16:00 — 68 commitsTue 17:00 — 48 commitsTue 18:00 — 65 commitsTue 19:00 — 108 commitsTue 20:00 — 70 commitsTue 21:00 — 76 commitsTue 22:00 — 118 commitsTue 23:00 — 53 commitsWed 0:00 — 45 commitsWed 1:00 — 22 commitsWed 2:00 — 9 commitsWed 3:00 — 11 commitsWed 4:00 — 18 commitsWed 5:00 — 10 commitsWed 6:00 — 15 commitsWed 7:00 — 14 commitsWed 8:00 — 26 commitsWed 9:00 — 9 commitsWed 10:00 — 24 commitsWed 11:00 — 22 commitsWed 12:00 — 43 commitsWed 13:00 — 43 commitsWed 14:00 — 46 commitsWed 15:00 — 40 commitsWed 16:00 — 41 commitsWed 17:00 — 50 commitsWed 18:00 — 32 commitsWed 19:00 — 33 commitsWed 20:00 — 60 commitsWed 21:00 — 74 commitsWed 22:00 — 49 commitsWed 23:00 — 38 commitsThu 0:00 — 20 commitsThu 1:00 — 36 commitsThu 2:00 — 20 commitsThu 3:00 — 12 commitsThu 4:00 — 3 commitsThu 5:00 — 8 commitsThu 6:00 — 4 commitsThu 7:00 — 13 commitsThu 8:00 — 14 commitsThu 9:00 — 21 commitsThu 10:00 — 46 commitsThu 11:00 — 50 commitsThu 12:00 — 41 commitsThu 13:00 — 33 commitsThu 14:00 — 45 commitsThu 15:00 — 35 commitsThu 16:00 — 28 commitsThu 17:00 — 50 commitsThu 18:00 — 77 commitsThu 19:00 — 84 commitsThu 20:00 — 52 commitsThu 21:00 — 68 commitsThu 22:00 — 71 commitsThu 23:00 — 50 commitsFri 0:00 — 31 commitsFri 1:00 — 25 commitsFri 2:00 — 16 commitsFri 3:00 — 9 commitsFri 4:00 — 4 commitsFri 5:00 — 7 commitsFri 6:00 — 9 commitsFri 7:00 — 6 commitsFri 8:00 — 15 commitsFri 9:00 — 30 commitsFri 10:00 — 35 commitsFri 11:00 — 21 commitsFri 12:00 — 52 commitsFri 13:00 — 46 commitsFri 14:00 — 46 commitsFri 15:00 — 63 commitsFri 16:00 — 68 commitsFri 17:00 — 62 commitsFri 18:00 — 70 commitsFri 19:00 — 54 commitsFri 20:00 — 44 commitsFri 21:00 — 44 commitsFri 22:00 — 57 commitsFri 23:00 — 51 commitsSat 0:00 — 39 commitsSat 1:00 — 23 commitsSat 2:00 — 17 commitsSat 3:00 — 17 commitsSat 4:00 — 14 commitsSat 5:00 — 7 commitsSat 6:00 — 6 commitsSat 7:00 — 17 commitsSat 8:00 — 56 commitsSat 9:00 — 36 commitsSat 10:00 — 36 commitsSat 11:00 — 40 commitsSat 12:00 — 43 commitsSat 13:00 — 54 commitsSat 14:00 — 45 commitsSat 15:00 — 48 commitsSat 16:00 — 42 commitsSat 17:00 — 51 commitsSat 18:00 — 48 commitsSat 19:00 — 49 commitsSat 20:00 — 50 commitsSat 21:00 — 47 commitsSat 22:00 — 43 commitsSat 23:00 — 48 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
  • avelino/awesome-go

    A curated list of awesome Go frameworks, libraries and software

    180.4K stars · Go

  • kubernetes/kubernetes

    Production-Grade Container Scheduling and Management

    124.3K stars · Go

  • usememos/memos

    Open-source, self-hosted note-taking tool built for quick capture. Markdown-native, lightweight, and fully yours.

    62K stars · Go

  • hashicorp/terraform

    Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

    49.4K stars · Go

  • router-for-me/CLIProxyAPI

    Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini 3.1 Pro, GPT 5.6 Series, Grok 4.5, Claude model through API

    46.3K stars · Go

  • multica-ai/multica

    Assign issues to Claude Code, Codex, Cursor, and 17 more coding agents like teammates — open-source and self-hostable.

    44.7K stars · Go