Dew Project Manager
Find a file
Chris Hendrickson 49c6e995a8 fix: tolerate non-string YAML list elements when parsing tickets
YAML values like '1.0' (unquoted) parse as double, not String.
Changed parseStringList to use string interpolation ('$e') instead
of 'e as String', so numeric YAML scalars in labels/milestones
don't crash ticket parsing.

Also quote all '1.0' label values in existing ticket files so they
are unambiguously strings in YAML.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-25 16:05:01 -04:00
.project fix: tolerate non-string YAML list elements when parsing tickets 2026-04-25 16:05:01 -04:00
.vscode Add MCP debug client and VS Code MCP config 2026-04-23 16:13:53 -04:00
docs chore: 1.0 release prep 2026-04-25 15:58:54 -04:00
packages fix: tolerate non-string YAML list elements when parsing tickets 2026-04-25 16:05:01 -04:00
tools chore: 1.0 release prep 2026-04-25 15:58:54 -04:00
.gitignore Compile CLI to .project/toolchain/bin/dew for MCP stdio use 2026-04-23 15:35:44 -04:00
.markdownlint-cli2.mjs Scaffold docs, packages, and command registration 2026-04-23 14:29:09 -04:00
analysis_options.yaml chore: Initial Commit 2026-04-23 13:09:11 -04:00
CHANGELOG.md chore: 1.0 release prep 2026-04-25 15:58:54 -04:00
CONTRIBUTING.md chore: 1.0 release prep 2026-04-25 15:58:54 -04:00
LICENSE chore: 1.0 release prep 2026-04-25 15:58:54 -04:00
pubspec.lock feat(kanban): add dew kanban tui interactive board TUI 2026-04-25 03:02:39 -04:00
pubspec.yaml chore: 1.0 release prep 2026-04-25 15:58:54 -04:00
README.md chore: 1.0 release prep 2026-04-25 15:58:54 -04:00

Dew

pub package

Dew is a git-native project management CLI for developers who want a kanban board that lives in their repository and talks to AI agents. Tickets are plain Markdown files with YAML frontmatter — diff-friendly, grep-able, and version-controlled alongside your code.

Features

Kanban CLI

16 subcommands cover the full lifecycle of a ticket:

create  list    get      update   delete  move
search  comment archive  unarchive link   unlink
stats   board   config   tui

Tickets are stored as .project/kanban/<column>/<ID>.md files. Labels, milestones, typed bidirectional links, and inline comments are all first-class citizens. See the Kanban documentation for the full command reference.

Interactive TUI

dew kanban tui opens a full Trello-style terminal board with three modes:

  • Board — navigate columns and tickets, create/edit/move/archive/delete, live search filter
  • Detail — scrollable view of a ticket's body and comments
  • Editor — in-terminal modal for editing all ticket fields; opens $VISUAL/$EDITOR for the body

The TUI auto-refreshes when ticket files change on disk, so it stays in sync whether you're editing files directly or an AI agent is updating them.

MCP Server

dew mcp serve starts an MCP-compliant stdio server that exposes every kanban command as an MCP tool. AI agents (GitHub Copilot, Claude, etc.) can create tickets, move cards, search, and comment — using the exact same logic as the CLI. No separate tool definitions needed: every command that mixes in DewToolCommand is registered automatically. See the MCP documentation.

Installation

dart pub global activate dew

Requires Dart SDK ^3.11.4.

Quick start

# Scaffold a new project (creates .project/dew.yaml)
dew init .

# Create your first ticket
dew kanban create --title "My first ticket" --type task

# Open the interactive board
dew kanban tui

Configuration

Dew reads .project/dew.yaml for board columns, ticket types, ID prefix, and MCP server settings. Running dew init . generates this file with defaults. See the Configuration documentation for the full schema reference.

Documentation