Files
beads/website/docs/getting-started/quickstart.md
2026-01-20 19:49:12 -08:00

168 lines
3.3 KiB
Markdown

---
id: quickstart
title: Quick Start
sidebar_position: 2
---
# Beads Quick Start
Get up and running with Beads in 2 minutes.
## Initialize
First time in a repository:
```bash
# Basic setup
bd init
# Dolt backend (version-controlled SQL database)
bd init --backend dolt
# For AI agents (non-interactive)
bd init --quiet
# OSS contributor (fork workflow)
bd init --contributor
# Team member (branch workflow)
bd init --team
# Protected main branch (GitHub/GitLab)
bd init --branch beads-sync
```
The wizard will:
- Create `.beads/` directory and database
- Import existing issues from git (if any)
- Prompt to install git hooks (recommended)
- Prompt to configure git merge driver (recommended)
- Auto-start daemon for sync (SQLite backend only)
Notes:
- SQLite backend stores data in `.beads/beads.db`.
- Dolt backend stores data in `.beads/dolt/` and records `"database": "dolt"` in `.beads/metadata.json`.
- Dolt backend runs **single-process-only**; daemon mode is disabled.
Notes:
- SQLite backend stores data in `.beads/beads.db`.
- Dolt backend stores data in `.beads/dolt/` and records `"database": "dolt"` in `.beads/metadata.json`.
## Your First Issues
```bash
# Create a few issues
bd create "Set up database" -p 1 -t task
bd create "Create API" -p 2 -t feature
bd create "Add authentication" -p 2 -t feature
# List them
bd list
```
**Note:** Issue IDs are hash-based (e.g., `bd-a1b2`, `bd-f14c`) to prevent collisions when multiple agents/branches work concurrently.
## Hierarchical Issues (Epics)
For large features, use hierarchical IDs to organize work:
```bash
# Create epic (generates parent hash ID)
bd create "Auth System" -t epic -p 1
# Returns: bd-a3f8e9
# Create child tasks (automatically get .1, .2, .3 suffixes)
bd create "Design login UI" -p 1 # bd-a3f8e9.1
bd create "Backend validation" -p 1 # bd-a3f8e9.2
bd create "Integration tests" -p 1 # bd-a3f8e9.3
# View hierarchy
bd dep tree bd-a3f8e9
```
Output:
```
Dependency tree for bd-a3f8e9:
> bd-a3f8e9: Auth System [epic] [P1] (open)
> bd-a3f8e9.1: Design login UI [P1] (open)
> bd-a3f8e9.2: Backend validation [P1] (open)
> bd-a3f8e9.3: Integration tests [P1] (open)
```
## Add Dependencies
```bash
# API depends on database
bd dep add bd-2 bd-1
# Auth depends on API
bd dep add bd-3 bd-2
# View the tree
bd dep tree bd-3
```
Output:
```
Dependency tree for bd-3:
> bd-3: Add authentication [P2] (open)
> bd-2: Create API [P2] (open)
> bd-1: Set up database [P1] (open)
```
## Find Ready Work
```bash
bd ready
```
Output:
```
Ready work (1 issues with no blockers):
1. [P1] bd-1: Set up database
```
Only bd-1 is ready because bd-2 and bd-3 are blocked!
## Work the Queue
```bash
# Start working on bd-1
bd update bd-1 --status in_progress
# Complete it
bd close bd-1 --reason "Database setup complete"
# Check ready work again
bd ready
```
Now bd-2 is ready!
## Track Progress
```bash
# See blocked issues
bd blocked
# View statistics
bd stats
```
## Database Location
By default, the database is in `.beads/beads.db` (gitignored).
The JSONL file `.beads/issues.jsonl` is git-tracked and syncs automatically.
## Next Steps
- Add labels: `bd create "Task" -l "backend,urgent"`
- Filter ready work: `bd ready --priority 1`
- Search issues: `bd list --status open`
- Detect cycles: `bd dep cycles`
- See [CLI Reference](/cli-reference) for all commands