Monorepo

November 30, 2025 ยท View on GitHub

This repository contains multiple independent projects.

Projects

ProjectStatusNotes
dissectbetaGo tool for structural code refactoring; feature set continues to grow.
markdown-formatalphaMarkdown formatter; command surface and formatting rules are still evolving.
prrundeprecatedWas designed to run binaries from PR releases; PR releases are no longer created.
printpdfbetaMarkdown/web-to-PDF tool; rendering pipeline has known gaps documented in project issues.
beads-mergemergedMerged into beads. See #240.
ingestpre-alphaData ingestion orchestrator; schema and connectors change frequently.
diagram-dslpre-alphaTypeScript DSL for diagrams; layout system under active refactor.
mdbook-commentsalphamdbook preprocessor for paragraph-level commenting with Supabase backend.
wantalphaPlanning/fulfilment assistant; core design still in flux.
confalphaSmart configuration manager; command coverage incomplete.
tkbetaSystem-wide event-sourced task tracker; v0 implements basic claims and authority lattice.
jj-runalphaJujutsu subcommand to execute shell commands against multiple revisions.
jj-run-pydeprecatedOld version of jj-run written in Python.
tk-vscodealphaVS Code extension that lists tk tasks by running tk ls --json.
aihookalphaClaude Code hook validator that enforces shell scripting best practices.
lionalphaDocumentation extraction tool that generates markdown from special comments in Go code.

Libraries

LibraryStatusNotes
configschemaalphaCentralized schema registry for configuration tools (jj, mise, starship, claude); schemas updated via mise task.
ghclientalphaGitHub API client helper; used by ghrelease and other tools.
ghreleasebetaHelper for fetching GitHub release assets; API may change without notice.
svghatchalphaReplaces solid colors in SVG files with line patterns for black and white printing.
tomlbetaSurgical TOML editor with comment preservation; used by conf.
versionstableShared version command implementation for CLI tools.
clistableUnified CLI color/styling utilities for all tools.
linters/uselesswrapperalphaStatic analysis tool that detects useless function wrappers; integrated via Dagger and mise.

Infrastructure

ProjectStatusNotes
.daggeralphaDagger module for building, testing, and linting all Go projects.

Installing Tools

Quick Install

Use the install script to easily download and install the latest version:

# Install latest version from main
curl -fsSL https://raw.githubusercontent.com/neongreen/mono/main/install.sh | bash -s dissect

# Install specific version
curl -fsSL https://raw.githubusercontent.com/neongreen/mono/main/install.sh | bash -s dissect main.5

Or download the script and run it locally:

wget https://raw.githubusercontent.com/neongreen/mono/main/install.sh
chmod +x install.sh
./install.sh dissect main.1

Manual Install

  1. Go to the Releases page
  2. Find the release you want (e.g., dissect--main.1)
  3. Download the binary for your platform
  4. Make it executable and move to your PATH:
# Linux/macOS
chmod +x <binary-name>
sudo mv <binary-name> /usr/local/bin/<tool-name>

Supported Platforms

  • Linux: amd64, arm64
  • macOS: amd64 (Intel), arm64 (Apple Silicon)

Releases

Go projects in this repository are automatically released:

  • Main branch releases: Created on every push to main (e.g., dissect--main.1, dissect--main.2)

Main channel releases are considered unstable snapshots unless explicitly tagged. Stable channels are being defined (see bd-313).

Homebrew formulas for the Go CLIs (ingest, want, printpdf, conf, dissect, markdown-format, prrun, tk) are published to neongreen/homebrew-mono. Tap it with brew tap neongreen/mono and install what you need:

brew tap neongreen/mono
brew install ingest
brew install want
brew install printpdf
brew install conf
brew install dissect
brew install markdown-format
brew install prrun
brew install tk

See Release Workflow Documentation for more details.

Testing Changes

To test changes before they're merged:

  1. Check out the branch locally
  2. Build and test the tool manually

For testing released versions, see the Releases section above.

Development

Each project has its own development workflow and documentation. See the individual project directories for details.

Issue Tracking with tk

This repository uses tk for issue tracking. tk is an event-sourced task tracker with claims-based status, metadata support, and multi-machine sync.

Quick Reference:

# List tasks
tk ls                        # All tasks
tk ls -p want                # Want tool tasks
tk ls -p mono                # Repo-wide tasks

# Create task
tk new "Fix bug" --project want
tk new "Update CI" --project mono

# Update status
tk mark want-1 wip           # Mark as in progress
tk mark want-1 done          # Complete

# View details
tk show want-1

# Add metadata
tk meta set want-1 priority 1
tk meta set want-1 labels '["bug"]'

Tasks are tracked in ~/.tk/tk.db (event-sourced SQLite database).

Custom database location:

export TK_DB_PATH=/custom/path/tk.db
tk ls  # Uses custom database

See AGENTS.md for complete documentation.

CI/CD

  • Each project has its own test workflow
  • All Go projects are automatically released via .github/workflows/release.yml
  • See CI Guidelines for workflow structure

Contributing

See individual project READMEs for contribution guidelines.