Skip to main content

Quickstart Guide

Get up and running with Beads in 2 minutes.
This guide assumes you’ve already installed Beads. If not, install it first:

Initialize Beads

1

Navigate to your project

2

Initialize Beads

The wizard will:
  • Create .beads/ directory and Dolt database
  • Prompt for your role (maintainer or contributor)
  • Import existing issues from git (if any)
  • Offer to install git hooks (recommended)
  • Auto-start Dolt server for database operations
3

Choose your role

When prompted: “Contributing to someone else’s repo? [y/N]”
  • Answer N if you’re the maintainer or have push access
  • Answer Y if you’re contributing to a fork
For team workflows with protected main branches, use:
This commits Beads data to a separate branch instead of main.

Create Your First Issues

Let’s create a few issues to get started:
Issue IDs are hash-based (e.g., bd-a1b2, bd-f14c) to prevent collisions when multiple agents/branches work concurrently.

With Descriptions

Add context with the --description flag:
For descriptions with special characters (backticks, quotes), use stdin:

View Your Issues

List all issues:
Output:
Symbol meanings:
  • - Open
  • - In progress
  • - Closed
  • - Done
  • - Deferred

Add Dependencies

Create a dependency chain - API needs database, auth needs API:
Dependency syntax: bd dep add <child> <parent>The first ID (child) is blocked by the second ID (parent).

Visualize Dependencies

View the dependency tree:
Output:
You can see that bd-g25d is blocked by the entire chain!

Find Ready Work

Beads automatically identifies unblocked tasks:
Output:
Only bd-a1b2 shows up because bd-f14c and bd-g25d are blocked!
bd ready uses blocker-aware semantics. It excludes:
  • Issues with open blocking dependencies
  • In-progress issues (already claimed)
  • Deferred issues
  • Blocked or hooked statuses

Work on a Task

1

Claim the task atomically

This sets:
  • assignee to your git user
  • status to in_progress
The operation is atomic (compare-and-swap) to prevent race conditions.
2

Do the work

Implement the feature, fix the bug, write the code!
3

Complete the task

The task is now marked as closed.

Check Ready Work Again

Now that bd-a1b2 is closed:
Output:
bd-f14c is now unblocked! 🎉
This is the core workflow: find ready work → claim → complete → next task becomes ready.

Working with Hierarchical Issues

For large features, organize work as epics:
View the hierarchy:
Output:

By Priority

By Type

By Label

By Assignee

Track Progress

View Blocked Issues

Shows all blocked issues and what’s blocking them.

View Statistics

Output:

Sync with Team

If you installed git hooks during bd init, Beads auto-syncs on:
  • git pull
  • git push
  • git checkout
  • git merge

Manual Sync

Push changes to Dolt remote:
Pull changes from team:
Dolt handles version control natively - no JSONL export/import needed!

AI Agent Workflow

For AI agents, use --json flag for programmatic access:
JSON output example:

Next Steps

Installation Guide

Detailed installation for all platforms and package managers

Essential Commands

Complete CLI reference with examples

Agent Instructions

Detailed guide for integrating Beads with AI agents

Advanced Features

Compaction, hierarchy, gates, and more

Common Patterns

Discovered Work Pattern

When implementing a feature, you often discover new work:

Planning Pattern

Break down a large feature:

Bug Triage Pattern

Don’t use bd edit in automated scripts - it opens an interactive editor. Use bd update with flags instead.

Tips

  1. Always add descriptions - Future you (or your agent) will thank you
  2. Use labels liberally - They make filtering much easier
  3. Set up git hooks - Auto-sync saves manual work
  4. Use bd ready not bd list --ready - bd ready is blocker-aware
  5. Link discovered work - Use --deps discovered-from: to track context