Skip to main content

Bd

@maphew/bdv2026.10.07.2· 1d agoMODELS
01README

Beads (bd) issue tracker bridge — list, ready, show, create, update, close, reopen, dep, reclaim, and graph issues via the local bd CLI.

02Release Notes

Adds four methods completing the issue-lifecycle and workflow-orchestration surface: dep (add/remove/list issue dependencies, cycle-checked, typed records), reopen (one or more closed issues with a reason; already-open is a no-op), reclaim (revert in_progress issues with stale leases to open - dead-worker recovery with optional maxAge grace window and id filter), and graph (dependency graph as structured data: nodes, typed edges, layout layers, optional rootId/direction/depth for Mermaid rendering). New dependencyGraph resource. Existing methods unchanged.

03Models1
@maphew/bdv2026.10.07.2src/bd_project.ts

Global Arguments

ArgumentTypeDescription
bdCommand?stringPath to the beads CLI
bdDir?stringProject directory containing a .beads/ database (bd auto-discovers from here)
defaultPriority?numberDefault priority for new issues
defaultType?stringDefault type for new issues
fn list(status?: string, type?: string, assignee?: string, limit?: number)
List BD issues with optional filters
ArgumentTypeDescription
status?stringFilter by status
type?stringFilter by type
assignee?stringFilter by assignee
limit?numberMaximum issues to return
fn query(q: string, limit?: number, includeClosed?: boolean, sort?: enum, reverse?: boolean)
Filter BD issues with bd\'s query language (e.g. "status=open AND type=bug")
ArgumentTypeDescription
qstringbd query language expression, e.g. "status=open AND type=bug" or "priority<=1 AND label=swarm". Comparisons use =, !=, <, <=, >, >= with AND/OR/NOT and parentheses; bd\
limit?numberMaximum issues to return
includeClosed?booleanInclude closed issues (bd excludes them by default; needed for status=closed queries)
sort?enumSort by field (bd's default order otherwise)
reverse?booleanReverse sort order (has no effect unless sort is set)
fn ready(assignee?: string, limit?: number)
List BD issues ready to work (no active blockers)
ArgumentTypeDescription
assignee?stringFilter to issues assigned to this actor
limit?numberMaximum issues to return
fn show(id: string)
Show details for a BD issue by ID
ArgumentTypeDescription
idstringIssue ID (e.g., bd-mhw-1)
fn create(title: string, description?: string, type?: string, priority?: number, labels?: array, assignee?: string, due?: string, externalRef?: string, parentId?: string)
Create a new BD issue
ArgumentTypeDescription
titlestringIssue title
description?stringIssue description
type?stringIssue type (bug|feature|task|epic|chore|decision)
priority?numberPriority (0-4, 0=highest)
labels?arrayLabels
assignee?stringAssignee
due?stringDue date
externalRef?stringExternal reference
parentId?stringParent issue ID
fn update(id: string, title?: string, description?: string, status?: string, priority?: number, assignee?: string, claim?: boolean, addLabels?: array, removeLabels?: array)
Update a BD issue (fields, labels, or atomic claim via claim: true)
ArgumentTypeDescription
idstringIssue ID (e.g., bd-mhw-1)
title?stringNew title
description?stringNew description
status?stringNew status (open|in_progress|blocked|closed|deferred)
priority?numberNew priority (0-4, 0=highest)
assignee?stringNew assignee
claim?booleanAtomically claim the issue (sets assignee to you, status to in_progress)
addLabels?arrayLabels to add
removeLabels?arrayLabels to remove
fn close(id: string, reason?: string)
Close a BD issue by ID, preserving its real fields
ArgumentTypeDescription
idstringIssue ID (e.g., bd-mhw-1)
reason?stringClosure reason
fn reopen(ids: array, reason?: string)
Reopen one or more closed BD issues, optionally with a reason
ArgumentTypeDescription
idsarrayIssue IDs to reopen
reason?stringReason for reopening
fn dep(action?: enum, issueId: string, dependsOnId?: string, direction?: enum)
Manage BD dependencies: add, remove, or list them for an issue
ArgumentTypeDescription
action?enumDependency action: add makes issueId depend on dependsOnId, remove unlinks them, list returns the dependency issues
issueIdstringIssue ID (e.g., bd-mhw-1); for add/remove the side that depends on dependsOnId
dependsOnId?stringThe issue that issueId depends on (required for add/remove)
direction?enumList direction: down = what issueId depends on, up = what depends on issueId (list only)
fn reclaim(ids?: array, maxAge?: string)
Revert stale in_progress BD issues (expired lease recovery) back to open
ArgumentTypeDescription
ids?arrayOnly reclaim these issue IDs
maxAge?stringGrace window past lease expiry, e.g. 10m or 1h; defaults to bd's own (10m)
fn graph(rootId?: string, direction?: enum, depth?: number)
Return a BD dependency graph as structured nodes, typed edges, and layers (renderable as Mermaid)
ArgumentTypeDescription
rootId?stringAnchor the graph at this issue; omit to graph all open issues
direction?enumdownstream = what the root depends on, upstream = what depends on the root (requires rootId), both = the union
depth?numberMaximum hops from rootId to include (-1 = unlimited; ignored when rootId is omitted)

Resources

issue(30d)— A BD (beads) issue/task
dependencyGraph(30d)— A BD dependency graph: nodes (id, title, status), typed edges (from depends on to), and optional layers
04Previous Versions7
2026.10.07.1

Add query method: filter issues with bd's query language (comparisons =, !=, <, <=, >, >= with AND/OR/NOT and parentheses; e.g. "status=open AND type=bug"), with limit (default 50) and honest truncation flagging, includeClosed (--all, needed for status=closed queries since bd excludes closed by default), and --sort/--reverse. Read-only; emits the same normalized issue resources as list/ready. Note: bd itself does not accept colon syntax (status:open) — use field=value.

Modified 1 models

2026.10.02.3

Republish from maphew/swamp-extensions with honest truncation reporting.

  • Issue spec gains a truncated boolean; list and ready set it on every returned issue when more matched than limit allowed
  • list and ready now pass --limit <limit + 1> to bd, so the flag reflects bd's real cap instead of its own 50/100-row default (a limit: 200 request previously returned 50)
  • Completion logs include the limit and truncation state
  • New test covers both the capped and uncapped paths
  • Adversarial review recorded (3 non-blocking findings: unguarded JSON.parse error context, create is not idempotent, no delete/sync by design)

Sources live at https://github.com/maphew/swamp-extensions/tree/main/extensions/bd (AGPL-3.0).

2026.10.02.2

Align the model type version with the extension version (2026.10.02.2) so swamp model type describe and model instances report the published release. Adds a no-op upgrade entry for the relocation; no method or schema changes.

2026.10.02.1

Package moved from maphew/myswamp to maphew/swamp-extensions (AGPL-3.0).

  • Source of truth is now https://github.com/maphew/swamp-extensions under extensions/bd/
  • Relicensed from MIT to AGPL-3.0 to match the hosting repository
  • Model behaviour unchanged: list, ready, show, create, update, close
2026.09.29.3

Modified 1 models

2026.09.29.2
2026.09.29.1
05Stats
A
100 / 100
Downloads
14
Archive size
29.5 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License declared1/1earned
  • Verified public repository2/2earned
06Platforms
07Labels