Skip to main content

Overview

Display a visualization of issue dependency graphs. Shows execution order, blocking relationships, and parallel work opportunities.

Syntax

Display Formats

Default: Terminal DAG

Box-drawing characters with columns showing execution order:

Box Format

ASCII boxes grouped by layer:

Compact Format

Tree format, one line per issue, most scannable:

Graphviz DOT

Export to DOT format for rendering with Graphviz:

Interactive HTML

Self-contained HTML with D3.js visualization:

Graph Interpretation

Execution Order

The graph shows topological ordering:
  • Layer 0 / Leftmost: No dependencies, can start immediately
  • Higher layers: Depend on lower layers
  • Same layer: Can run in parallel

Status Icons

Icons indicate issue state:
  • open
  • in_progress
  • blocked
  • closed
  • deferred

Relationships

The graph shows:
  • Blocking dependencies: Arrows from blocker to blocked
  • Parent-child: Epic/subtask hierarchies
  • Connected components: Issues grouped by dependency relationships

Flags

Examples

Visualize Epic Dependencies

For an epic with multiple subtasks:
Output:

View All Open Issues

See connected components of all open work:
Shows separate subgraphs for disconnected work.

Generate SVG Diagram

Create a visual diagram for documentation:

Interactive Browser View

Create interactive HTML with zoom and pan:

Compact Tree View

Quick scannable overview:
Output:

Check for Parallel Work

Identify tasks that can run simultaneously:
Issues in Layer 0 can all start immediately. Issues in the same higher layer can run in parallel once their dependencies complete.

When to Use Graph

Use bd graph when:
  • Planning work: Identify parallel work opportunities
  • Understanding blockers: See what’s blocking critical work
  • Reviewing epic scope: Visualize all subtasks and dependencies
  • Communicating status: Share visual diagrams with stakeholders
  • Finding ready work: Layer 0 shows unblocked tasks

Graph Types

Single Issue Mode

For a specific issue:
  • Shows the issue and all connected issues
  • Traverses both directions (dependencies AND dependents)
  • Includes all dependency types (blocks, parent-child, related)

All Issues Mode (—all)

For all open issues:
  • Groups issues by connected components
  • Shows multiple subgraphs if work is disconnected
  • Sorted by size (largest first) and priority
  • Each component chooses best “root” (epics preferred)

Understanding Layers

Layer Assignment

Layers are computed using topological sort:
  1. Layer 0: Issues with no blocking dependencies
  2. Layer N: Issues that depend on Layer N-1
  3. Parent-child lifting: Children appear in same layer as blocked parent

Parallel Work Detection

Issues in the same layer:
  • Have no dependencies between them
  • Can be worked on simultaneously
  • May still share a common parent (epic)

Critical Path

The longest path from Layer 0 to completion:
  • Determines minimum project duration
  • Issues on this path are bottlenecks
  • Prioritize resolving blockers on critical path

Troubleshooting

”Issue not found”

Cause: Invalid issue ID Solution: Verify ID with bd list or bd show <id>

Graph is empty

Cause: Issue has no dependencies or dependents Solution:
  • This is normal for independent issues
  • Use --all to see other work
  • Add dependencies with bd deps add

Too many issues in —all mode

Cause: Large project with many open issues Solution:
  • Filter to specific epic: bd graph epic-id
  • Use --compact for more scannable output
  • Use --html for interactive exploration

Graphviz command not found

Cause: Graphviz not installed Solution: Install with package manager:
  • bd deps - Manage dependencies directly
  • bd ready - Find unblocked work (Layer 0)
  • bd blocked - Show blocked issues and blockers
  • bd list - List issues with blocker annotations

See Also