Skip to content

sparkles:dman — Development Manager

Working codename dman (D1). These are living design documents, not yet a normative spec — they state what to build, in what order, and why. Foundational decisions are recorded in the decision log.

What dman is

v1 (near-term): a Git-first repository / worktree / branch management tool — a scriptable core plus an interactive TUI, on a single machine. It discovers repositories on disk, catalogs them, and gives fast, safe branch and worktree operations, navigated as a repo → worktree → branch tree.

Long-term: a distributed development manager — host registry and SSH remote hosts, repository sync across machines, remote Nix builds, and ultimately a headless remote terminal-session multiplexer (tmux/zellij-like) whose sessions outlive clients, with a GPU (Vulkan/WebGPU) client that owns all windowing and layout. Transport grows from SSH to peer-to-peer QUIC (iroh / QUIC-over-WireGuard). Jujutsu (jj) joins as a second VCS backend after the Git-first foundation lands.

Documentation map

PageWhat it covers
Overview (this page)what dman is · navigation
Feature requirementswhat dman does for its users — v1 capabilities and the later distributed features; non-goals
Architecturehow dman composes the sparkles stack, the async substrate, the VCS abstraction, the TUI shell, and building-block readiness
Command schemathe bidirectional, wired-based CLI/command pillar — one struct schema for both dman's own CLI and invoking git/jj/…
CLI surfacethe concrete dman command tree — repo/branch/worktree subcommands, scripting, machine output
Configthe settings model — policy-as-data, overrides for every auto-detected assumption
VCS backendthe per-repo layer — branch/worktree/status data model and the VcsRepo backend
Designing for jjhow jj diverges from git and the capability-based abstraction the P3 backend needs
Repo catalogthe cross-repo layer — scan → catalog → registry → selection, and persistence
Workspacesmulti-repo grouping — string[] tags, the directory group, and workspace verbs
TUI shellthe interactive UI — the sparkles:tui immediate-mode framework and the dman shell's interaction model
Milestonesthe phased plan, dependency graph, and key risks
Decisionsthe foundational decision log (ADR-style)

Dependency snapshot

dman composes three existing sparkles libraries; the io_uring dependency stays out of the pure arg-parsing layer:

base  ◀──  wired  ◀──  core-cli          (pure / CTFE; no io_uring)
base  ◀──  event-horizon                  (io_uring; Linux-first)
dman  ──▶  { core-cli, wired, event-horizon }

See Architecture for how these fit together and Decisions for why.