p2
p2
Project Planning and Task Management
p2 is an interactive CLI/TUI task planner with Gantt charts, real-time collaboration, and optional remote synchronization.
Key Features
- Interactive TUI - Terminal-based UI with list and Gantt chart views
- Task Dependencies - Link tasks and visualize critical paths
- Due Dates - Set deadlines with visual indicators for overdue or on-track tasks
- Time Estimates - Confidence intervals for realistic scheduling
- Packages - Group related tasks and see rolled-up estimates
- Real-time Collaboration - CRDT-based sync for team coordination
- On Hold Status - Temporarily pause tasks without losing context
- PDF Export - Generate professional Gantt charts
- Web Interface - Browser-based UI for viewing and editing
Quick Start
# Start interactive TUI
p2
# Start with specific file
p2 tasks.rec
# Start with remote sync
p2 --remote-url https://sync.example.com/projectBasic Commands
# Task management
p2 tasks list # List all tasks
p2 tasks add # Add a new task
p2 tasks edit <id> # Edit a task
p2 tasks done <id> # Mark task complete
# Package management
p2 packages list # List packages
p2 packages add # Create a package
# Export
p2 export # Export to gantt_chart.pdf
p2 export --output plan.pdf # Custom filename
p2 export --include-done # Include completed tasks
# Collaboration
p2 sync # Sync with remote
p2 project share # Generate invite link
p2 project accept <invite> # Join a project
# Status
p2 status # Show project stats
p2 work # Show task scheduleTUI Keyboard Shortcuts
| Key | Action |
|---|---|
n |
Create new task |
x |
Toggle task completion |
h |
Toggle on hold status |
e |
Edit task (all fields) |
E |
Edit estimates only |
u |
Edit assigned user |
d |
Edit dependencies |
j/k |
Navigate up/down |
J/K |
Move task up/down |
A |
Toggle show/hide completed tasks |
Tab/Shift+Tab |
Switch between List, Gantt, and Package views |
q |
Quit |
Task Fields
- Name - Task description
- Estimates - Low and high hour estimates for scheduling
- User - Optional assignee
- Package - Group the task belongs to
- Dependencies - Tasks that must complete first
- Due Date - Target completion date (YYYY-MM-DD)
- On Hold - Temporarily paused tasks
- Done - Completion status
Due Date Indicators
Tasks with due dates show visual indicators in the Gantt chart:
- ▼ (Warning triangle) - Task is overdue
- ✓ (Checkmark) - Task on track to meet due date
- → (Arrow) - Due date beyond visible chart range
Remote Synchronization
Enable team collaboration with a sync server:
# Set remote URL via environment
export P2_REMOTE_URL=https://sync.example.com/project
p2
# Or pass as flag
p2 --remote-url https://sync.example.com/project
# Run your own sync server
p2 serverThe sync uses CRDT (Conflict-free Replicated Data Type) for reliable offline-first collaboration. Changes sync automatically when connected.
File Format
p2 uses the recfile format for human-readable, version-control-friendly task storage:
Name: Implement authentication
Package: Backend
User: alice
Estimate_Low: 4
Estimate_High: 8
Dependencies: Setup database
Name: Setup database
Package: Backend
User: bob
Estimate_Low: 2
Estimate_High: 4
Done: trueWeb Interface
Launch the web UI for browser-based access:
p2 webOpens your default browser to a local web server with the same task management capabilities.
Authentication
Generate Ed25519 keys for secure sync:
p2 genkeysThis creates public/private key pairs for authenticating with the sync server.