Skip to content
/

BeadsViewer

beadsviewer · jeremyconkin/BeadsViewer · ★ 0 · last commit 2026-05-01

Primitive shape
No installable primitives
00

Summary

BeadsViewer — Summary

BeadsViewer (jeremyconkin/BeadsViewer) is a local Next.js 14 web application that provides a kanban board and tree view for Beads (bd) task graphs. It is a community tool (not from the Beads maintainers), reads all data via the bd CLI (bd list --json, bd show, bd update), and has no database of its own. The app exposes a Next.js API layer that shells out to bd commands, making it purely a read/write UI over the existing .beads/ Dolt database. Stack: Next.js 14 (App Router), TypeScript, shadcn/ui (Radix + Tailwind), react-dnd for kanban drag-and-drop, Sonner for toasts. Runs on port 3000. This is a Tier B framework — it has no prompts, no hooks, no agent instructions, only a UI specification and a working Next.js codebase. Compared to seeds, it is closest to claude-conductor's dashboard concept but focused exclusively on Beads issue visualization rather than agent orchestration.

01

Overview

BeadsViewer — Overview

Origin

Community tool by jeremyconkin, built on the BeadsViewer specification (SPEC.md). Not affiliated with the Beads maintainers (gastownhall / steveyegge). 0 GitHub stars, created as a personal utility.

Philosophy

"Browse to any project directory with a .beads/ folder and interact with your issues through a kanban board or tree view." No agent integration, no memory, no prompts — pure visualization layer.

Why bd CLI instead of direct Dolt access

From SPEC.md:

The bd CLI is the supported interface; all commands accept --json for machine-readable output.
Avoids importing Dolt as a dependency or reverse-engineering the schema.
The CLI handles validation, defaults, and business logic.

Features

  • Kanban board with drag-and-drop to change task status
  • Tree view for compact list of all tasks
  • Filtering by status, priority, type, labels, and free-text search
  • Task editing via detail dialog (title, description, status, priority, type, labels, assignee, due date, notes)
  • Directory picker to switch between beads projects
  • Persists last-used directory in localStorage
02

Architecture

BeadsViewer — Architecture

Distribution

Standalone Next.js application. No npm package, no plugin.

Install

git clone https://github.com/jeremyconkin/BeadsViewer.git
cd BeadsViewer
npm install
npm run dev

Open http://localhost:3000, paste path to beads-enabled project.

Prerequisites

  • Node.js 18+
  • bd (Beads CLI) installed and on PATH
  • At least one project with bd init already run

Architecture

Browser (React Client)
  ├── KanbanView (react-dnd drag-and-drop)
  ├── TreeView (filtered flat list)
  └── TaskDetailDialog (inline editing)
            ↕ fetch()
Next.js API Routes (/api/beads/*)
  ├── GET  /api/beads?dir=...      → bd list --json
  ├── GET  /api/beads/:id?dir=...  → bd show --json
  ├── PUT  /api/beads/:id          → bd update
  └── POST /api/directory/validate
            ↕ child_process.execFile
bd CLI (beads)
  └── .beads/embeddeddolt/ (Dolt database, source of truth)

Tech Stack

Layer Technology
Framework Next.js 14 (App Router)
Language TypeScript
UI shadcn/ui (Radix + Tailwind CSS)
Drag & Drop react-dnd
Icons lucide-react
Toasts sonner
Backend Next.js API routes shelling out to bd CLI

State Management

React state + context (no Redux, no Zustand). Sufficient for single-user local app.

Port

3000 (Next.js default dev server)

03

Components

BeadsViewer — Components

Views (2)

View Features
Kanban Columns: Open, In Progress, Blocked, Deferred, Closed; drag-and-drop to change status
Tree Flat list with status + priority badges; filterable by any criteria

API Routes (4)

Route bd command
GET /api/beads?dir=... bd list --json
GET /api/beads/:id?dir=... bd show <id> --json
PUT /api/beads/:id bd update <id> --<field>=<value>
POST /api/directory/validate Validates .beads/ exists in directory

Task Detail Dialog

Editable fields: title, description, status, priority, type, labels, assignee, due date, notes.

No Hooks / Skills / Agents

This is a pure UI application. No agent integration.

05

Prompts

BeadsViewer — Prompts

No prompt files. BeadsViewer is a UI application with no agent instructions, no Claude Code skills, and no system prompts.

The only "prompt-like" content is from FIGMA_DESIGN_INSTRUCTIONS.md (design spec for the Figma Make wireframes used during development), which is not agent-relevant.

09

Uniqueness

BeadsViewer — Uniqueness

Differs From Seeds

No analog in the 11 seeds. It is the only pure local web dashboard in this batch, and it is a companion app to beads-yegge rather than a standalone framework. The closest conceptual analog is the claude-mem web viewer (port 37777) but that is bundled into a memory plugin; BeadsViewer is a separate, standalone application.

Positioning

BeadsViewer demonstrates the ecosystem effect of a well-designed CLI-first tool: because bd outputs --json, any developer can build a UI without reverse-engineering the storage format. The app has zero dependencies on Dolt internals.

Observable Failure Modes

  1. bd CLI dependency: If bd is not on PATH, all API routes fail.
  2. Port conflict: Port 3000 may be occupied by other Next.js projects.
  3. Dev server only: No production build optimization; intended for personal local use only.
04

Workflow

BeadsViewer — Workflow

Usage Flow

  1. Start Next.js dev server (npm run dev)
  2. Open http://localhost:3000
  3. Enter path to beads-enabled project
  4. Browse issues in Kanban or Tree view
  5. Drag cards to change status
  6. Click to edit details
  7. Changes write back to Dolt via bd update

No Agent Workflow

BeadsViewer has no agent workflow. It is a human-facing UI for the Beads task graph.

Data Flow

User action → React state update
           → fetch() to Next.js API
           → child_process.execFile('bd', args)
           → Dolt database updated
           → Updated JSON returned
           → React state re-rendered
06

Memory Context

BeadsViewer — Memory & Context

No memory system. BeadsViewer reads from the existing Beads Dolt database via bd CLI. It does not store any state of its own beyond localStorage (last-used directory).

State lives in Beads (beads-yegge framework), not in BeadsViewer.

07

Orchestration

BeadsViewer — Orchestration

No orchestration. Single-user local web application.

08

Ui Cli Surface

BeadsViewer — UI & CLI Surface

Local Web Dashboard

Yes — this IS the UI. Next.js app on http://localhost:3000.

Features: Kanban board (drag-and-drop), Tree view (filterable), Task detail dialog (editable), Directory picker.

CLI Binary

None.

IDE Integration

None.

The Entire Value Proposition

BeadsViewer IS the UI layer. It is the only component in this batch that exists purely as a local web dashboard with no agent features.

Related frameworks

same archetype · same primary tool · same memory type

MemPalace ★ 53k

Verbatim local-first AI memory with 96.6% R@5 retrieval on LongMemEval using zero API calls — structured into a palace hierarchy…

Beads (Yegge) ★ 24k

Dolt-powered distributed graph issue tracker where AI agents track tasks with hierarchical IDs and dependency edges, claim work…

deepagents (LangChain) ★ 23k

Opinionated Python agent harness on top of LangGraph with sub-agents, filesystem, memory, and context compaction bundled in

agentmemory ★ 18k

Persistent, searchable memory for AI coding agents that captures every tool interaction, compresses it via LLM, and injects…

Open Multi-Agent ★ 6.3k

Give a natural-language goal to a coordinator agent and get a dynamically decomposed, parallelized task DAG executed by…

Basic Memory ★ 3.1k

Gives AI agents a persistent, human-readable knowledge graph of project decisions, observations, and relations stored as plain…