p2

p2

Coming Soon

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/project

Basic 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 schedule

TUI 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 server

The 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: true

Web Interface

Launch the web UI for browser-based access:

p2 web

Opens your default browser to a local web server with the same task management capabilities.

Authentication

Generate Ed25519 keys for secure sync:

p2 genkeys

This creates public/private key pairs for authenticating with the sync server.

© 2012–2025 October Swimmer.