A minimal, filesystem-based project management tool for developers and AI agents
min-pmt stores tickets as Markdown files with YAML frontmatter, making them git-friendly, human-readable, and perfect for AI agent collaboration.
- ποΈ Local-first: All tickets stored as Markdown files in your repository
- π€ AI-friendly: MCP (Model Context Protocol) server for AI agents
- π¨ Visual management: Web UI with Kanban board and drag-drop
- β‘ Fast CLI: Bundled single-file executable with minimal dependencies
- π Git-native: Tickets are versioned alongside your code
- π§ Configurable: Customize fields, statuses, and templates
No installation required! Use with npx:
# Initialize in your project
npx @cmwen/min-pmt init
# Create a ticket
npx @cmwen/min-pmt add "Fix login bug" --priority high
# List tickets
npx @cmwen/min-pmt list
# Start web UI
npx @cmwen/min-pmt web
# Start MCP server for AI clients
npx @cmwen/min-pmt mcpnpm install -g @cmwen/min-pmt
min-pmt init# Initialize min-pmt in current directory
min-pmt init
# Create tickets
min-pmt add "Implement authentication" --priority high --labels security,backend
min-pmt add "Update documentation" --priority medium
# List all tickets
min-pmt list
# Filter tickets
min-pmt list --status in-progress
min-pmt list --priority high
# Move ticket between statuses
min-pmt move ticket-fix-bug-abc123 done
# Start web UI on custom port
min-pmt web --port 8080
# Expose the MCP server over stdio for AI tooling
min-pmt mcpLaunch a local Kanban board to visualize and manage tickets:
min-pmt web
# Opens at http://localhost:3000Features:
- π Kanban board with todo/in-progress/done columns
- π― Drag-and-drop to update ticket status
- βοΈ Click tickets to view/edit details
- π·οΈ Visual priority indicators
Tickets are stored as Markdown files with YAML frontmatter:
---
id: ticket-fix-login-bug-abc123
title: Fix login bug
status: in-progress
priority: high
labels:
- bug
- auth
created: 2024-01-15T10:30:00.000Z
updated: 2024-01-15T14:22:00.000Z
---
## Description
Users are unable to login with valid credentials.
## Steps to Reproduce
1. Navigate to /login
2. Enter valid username/password
3. Click submit
## Notes
- Issue appears to be with session validation
- Affects all users as of deployment #42Create min-pmt.config.js in your project root:
export default {
folder: 'tickets', // Custom folder name (default: 'pmt')
template: {
defaultStatus: 'todo',
idPrefix: 'ticket-',
content: '## Description\n\n## Acceptance Criteria\n'
}
}Tickets work naturally with Git:
# Track ticket changes
git add pmt/
git commit -m "Add feature tickets"
# View ticket history
git log pmt/
# Create feature branch with tickets
git checkout -b feature/auth
min-pmt add "Implement JWT tokens"
git add pmt/ && git commit -m "Add auth tickets"min-pmt includes an MCP (Model Context Protocol) server for AI agents:
# Expose the MCP server over stdio (ideal for GitHub Copilot, custom LLM tools, etc.)
min-pmt mcpAgents that speak MCP can connect over stdio and use the same ticket folder and state configuration as the CLI.
// AI agents can create and manage tickets programmatically
import { TicketManager } from '@cmwen/min-pmt-core';
const tm = new TicketManager();
// Create ticket
const ticket = await tm.createTicket({
title: 'Implement user registration',
priority: 'high',
labels: ['backend', 'auth']
});
// List tickets
const todos = await tm.listTickets({ status: 'todo' });
// Update status
await tm.updateTicketStatus(ticket.id, 'in-progress');This is a monorepo containing:
packages/core- Core ticket management enginepackages/cli- Command-line interface (published as@cmwen/min-pmt)packages/web- Web UI with Kanban boardpackages/mcp- Model Context Protocol server
Only the CLI package is published to npm - it bundles all functionality into a single executable.
- Node.js >= 18.18
- pnpm >= 9
# Clone repository
git clone https://github.com/cmwen/min-pmt.git
cd min-pmt
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Lint and format
pnpm lint
pnpm formatpnpm build- Build all packages (~2 seconds)pnpm test- Run test suite (26 tests)pnpm lint- Run linter with auto-fixpnpm format- Format code with Biomepnpm clean- Clean build artifactspnpm bundle:cli- Bundle CLI for publishingpnpm publish:cli- Publish CLI to npm
The project uses automated CI/CD for publishing:
# 1. Bump version
cd packages/cli && npm version patch && cd ../..
# 2. Update CHANGELOG.md
# 3. Commit and push to main
git add . && git commit -m "chore: Bump version" && git push
# 4. Create and push tag - triggers automated release!
git tag -a v0.2.9 -m "Release 0.2.9"
git push origin v0.2.9The CI/CD pipeline automatically:
- Runs tests and builds
- Bundles CLI with Rolldown
- Publishes to npm as
@cmwen/min-pmt - Creates GitHub Release
For manual publishing, use:
pnpm release # Full publish workflow
pnpm release:dry-run # Test without publishingSee Automated Release Guide for details.
- Design Document - Architecture and technical decisions
- Product Backlog - Feature roadmap
- QA Plan - Testing strategy
- Production Readiness - Pre-launch checklist
- Publishing Guide - Release workflow
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details
min-pmt is designed for developers who want:
- Simple ticket management without heavyweight PM tools
- Tickets that live alongside code in version control
- AI-friendly interfaces for automated project planning
- Local-first data ownership and privacy
- Fast, minimal-dependency tools
Note: Requires Node.js 18+ and uses only 2 runtime dependencies (commander, gray-matter)