Skip to content

w3dev33/pair-dist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PaiR

Visit Website

A lightweight desktop application for managing tasks and issues directly inside your codebase.

PaiR ships with its own CLI (pair) β€” no external tool to install. The CLI manages issues across multiple independent projects, and the application aggregates them all in a single window, updated in real time. The CLI does the heavy lifting β€” AI agents use it to create, update, and close issues programmatically β€” while the app gives you a unified view and control over everything. Issues live in your project directory, tracked by git, and visible to both humans and AI agents.

Why PaiR?

AI-assisted development is moving fast. Multi-agent orchestration, autonomous task management, swarms of AI workers β€” the tools are impressive, but they're racing ahead of most developers' reality.

We believe the transition to AI autonomy should be progressive. Today, most developers work with AI β€” pair programming, reviewing suggestions, steering decisions. They need to see what's happening, understand it, and stay in control. Jumping straight to full autonomy means losing the ability to learn, verify, and course-correct.

PaiR is built for this transition. Start with pair programming β€” one human, one AI, full visibility. As trust builds, delegate more. But at every step, you can see what's going on, step in, and redirect. It's not just a workflow β€” it's a learning process.

The name says it all: PaiR β€” the human and the AI, working side by side.

Installation

Download PaiR for macOS, Linux and Windows:

Download PaiR

The pair CLI is bundled with the application and a symlink is created automatically during installation, making it available from any terminal.

Features

Core

  • Multi-project dashboard β€” All your projects in one window, with real-time updates, charts, and per-project settings
  • Built-in CLI β€” pair ships with the app. Full issue lifecycle from the terminal: create, update, close, pin, comment, attach, search
  • Git-synced β€” Issues live in .pair/ inside your repo, tracked by git, visible to humans and AI agents alike

Issue Management

  • Epics & children β€” Parent/child hierarchy with ordered subtasks
  • Dependencies β€” Blocks/blocked-by relationships with visual indicators
  • Pinned issues β€” Pin important issues for quick access β€” stored in the DB, synced via git, with undo support (⌘Z)
  • Specs & campaigns β€” Dedicated dashboard sections for specifications and ongoing tracking
  • Attachments β€” Images, markdown, and PDF files attached to issues, previewed in-app
  • Full-text search β€” FTS5-powered search across titles, descriptions, and notes

Integrated Terminal

  • Multi-session terminals β€” Run multiple terminal sessions per project with a tabbed interface, directly inside PaiR. No need to switch to an external terminal
  • tmux mode β€” Persistent sessions that survive app restarts. Access your sessions from any external terminal (Zed, iTerm, VS Code) via tmux attach. Sessions are automatically named after issue IDs
  • Smart session close β€” Detects when a tmux session is attached in another terminal and warns before killing. Defaults to detach when used elsewhere, so your external terminal keeps working
  • Launch AI from issues β€” Click Play on any issue to open a terminal tab and start Claude Code with /run-issue automatically. Closing an issue automatically closes its terminal session
  • Split view β€” Pin tabs to display terminals side by side. A built-in multiplexer experience for monitoring several AI sessions in parallel
  • Smart notifications β€” When an AI agent running inside PaiR needs your attention, the terminal tab flashes and turns red with a sound alert. Click the notification to jump directly to the right tab
  • AI Text Transform β€” Transform text in any input field using AI: reformulate, translate, or summarize. Works with any Claude subscription

AI Integration

  • AI-native workflow β€” Designed for AI coding assistants (Claude Code, Cursor, Codex, Gemini CLI). AI agents use the CLI to manage issues autonomously
  • Live activity tracking β€” AI activity LED per project, events panel (βŒ˜β‡§A), focus AI session window (βŒ˜β‡§F)
  • Sound alerts β€” Per-project notification sounds when AI agents interact with your issues. Internal sessions (PaiR terminal) get visual tab alerts, external sessions (Zed, Cursor, VS Code) get toast notifications
  • Real-time push β€” CLI mutations and AI events pushed instantly via Unix socket

Activity Journal

  • Live activity feed β€” Every project has a journal that logs issue events, decisions, and progress notes β€” auto-generated and manually authored
  • Readable by agents β€” AI agents read the journal to understand what happened since their last session
  • Cross-project view β€” In workspace mode, the journal panel merges entries from all associated projects into a single chronological view

Cross-project Orchestration

  • Project associations β€” Link related projects together (via pair associate or app settings). Associations are bidirectional and stored in a global catalog
  • Shared context β€” AI agents automatically read associated projects' journals at session start, so they know what's happening across codebases
  • Reply-to protocol β€” Agents can reply to journal entries from associated projects, enabling asynchronous agent-to-agent communication
  • Workspace mode β€” Pin terminal sessions from multiple projects side by side. The journal panel shows a merged view of all associated projects

Sync & Collaboration

  • GitHub / GitLab sync β€” Bidirectional issue sync with external providers, comment push/pull
  • Conflict resolution β€” Detects and resolves merge conflicts when multiple collaborators edit the same issue

Cross-platform

  • macOS, Linux, Windows β€” with dark, light, flat, and neon themes

Background & Compatibility

PaiR is inspired by Beads, the AI-native issue tracker created by Steve Yegge, which stores issues directly in the codebase using a SQLite + JSONL structure. Our first take was Beads Task-Issue Tracker, a desktop app built as a frontend for the existing Beads CLIs (bd, br). But as those CLIs evolved in diverging directions β€” Dolt migration, server mode, breaking changes β€” depending on external tools became a liability. PaiR was built from scratch with its own CLI, its own schema, and its own features to move at its own pace.

For existing Beads projects, the app handles migration automatically. The migration is non-destructive β€” your .beads/ directory is left untouched. PaiR creates its own .pair/ directory alongside it, so you can try PaiR without any risk to your existing data.

  • bd (Go) projects up to version 0.49.x (before the Dolt migration)
  • br (beads_rust) projects up to version 0.1.20+

For AI agents

PaiR is designed to be driven by AI coding assistants (Claude Code, Cursor, Codex, Gemini CLI, etc.). The pair CLI is bundled β€” agents use it to manage issues, and the app reflects every change in real time.

Setup

  1. Initialize the project: from the app (add a folder) or via pair init
  2. Read the reference: an AGENTS.md is generated in .pair/ with the full CLI documentation β€” commands, flags, workflows, and expected behaviors
  3. Install notification hooks (Claude Code): add pair notify --hook hooks in .claude/settings.json so the app gets real-time AI activity notifications (sound, tab flash, toast). The setup instructions are in AGENTS.md

Cross-project awareness

If a project has associated projects (pair associations), the generated AGENTS.md includes instructions for cross-project reading. AI agents automatically check associated projects' journals at session start, flag breaking changes, and communicate via the reply-to protocol. No manual setup needed β€” just link the projects.

Teaching the agent

Add these rules to your project's CLAUDE.md or equivalent agent configuration:

## Issue tracking

- Use `pair` CLI for all issue management (create, update, close, comment, search)
- Before starting work: `pair list -s open` to check existing issues, then `pair update <id> -s in_progress`
- Before creating an issue: `pair search "keyword"` to avoid duplicates
- When done: `pair comments add <id> "Summary of what was done"` then `pair close <id>`
- Commit `.pair/issues.jsonl` separately from code: `chore(pair): update issues`
- Never ignore `.pair/` β€” it is the project's issue tracker

The key point: the agent should treat pair like git β€” not optional, part of the workflow. Every task starts with checking issues, every completion ends with closing one.

CLI reference

The full command reference is in .pair/AGENTS.md. Key commands:

pair list -s open              # Find available work
pair show <id>                 # Read full context (description, comments, children)
pair create "Title" -t bug     # Create an issue (-t bug/feature/task/epic, -d, -p, --parent)
pair update <id> -s in_progress
pair comments add <id> "Progress update"
pair close <id>
pair search "keyword"          # Full-text search across all issues
pair attach <id> file.png      # Attach images, markdown, PDFs
pair journal "Decision note"   # Write to the project journal
pair associations              # List associated projects
pair associate <prefix>        # Link two projects together

Integrated terminal

Instead of running agents in an external terminal, launch them directly from PaiR:

  • Click Play on any issue β€” opens a terminal tab named after the issue and starts the AI assistant with the right context
  • tmux mode β€” sessions persist across app restarts. Attach from any external terminal via tmux attach -t pair-<issue-id> to monitor or intervene while the agent works
  • Real-time notifications β€” when the agent needs attention, the tab flashes red with a sound alert. Click to jump to the right session
  • Split view β€” pin tabs to monitor multiple agents side by side

Real-time push

Every CLI mutation triggers a push event β€” the app refreshes instantly. On macOS and Linux, this uses a Unix socket for real-time push. On Windows, the app polls for changes. Agents running inside PaiR's terminal are automatically detected, and their activity is routed to the correct project and tab.

No special integration needed β€” agents just use the pair CLI, and the app reacts.

Links

Disclaimer

PaiR is free to use. The software is provided as-is, with no warranty. Your data stays local β€” issues are stored in your project directory β€” but as with any tool, regular backups are your responsibility. See LICENSE for details.

License

MIT β€” Laurent Chapin

About

PaiR β€” An issue tracker, driven by AI, and Human πŸ˜‰

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors