Skip to content

Task management and productivity tracker with priorities, categories, and daily planning

License

Notifications You must be signed in to change notification settings

DonkRonk17/TaskFlow

Repository files navigation

image

πŸ“‹ TaskFlow - Smart CLI Todo & Project Manager

Simple. Fast. Git-friendly.

A lightweight task management system that lives in your project directory. Perfect for developers who want todo lists without leaving the terminal.


🎯 Why TaskFlow?

Problem: Most task managers are either:

  • 🐌 Heavy GUI applications (Trello, Asana, Jira)
  • ☁️ Cloud-based (requires account, internet, privacy concerns)
  • πŸ’° Expensive subscriptions
  • πŸ”€ Not integrated with development workflow

Solution: TaskFlow gives you:

  • βœ… CLI-first - Fast, keyboard-driven workflow
  • βœ… Per-project - Tasks live in .taskflow.json in project root
  • βœ… Git-friendly - JSON format, easy to track and merge
  • βœ… Zero dependencies - Pure Python, no external packages
  • βœ… Cross-platform - Works on Windows, macOS, Linux
  • βœ… Markdown export - Share tasks in TASKS.md
  • βœ… Priority & tags - Organize however you want
  • βœ… Lightweight - < 500 lines of code

πŸš€ Quick Start

Installation

# Clone or download
cd TaskFlow

# Make executable (Unix/Linux/Mac)
chmod +x taskflow.py

# Run directly
python taskflow.py init

First Time Setup

# Navigate to your project
cd ~/my-project

# Initialize TaskFlow
python path/to/taskflow.py init

# βœ… TaskFlow initialized!
#    Task file: .taskflow.json

πŸ“– Usage Guide

Add Tasks

# Simple add
python taskflow.py add "Implement user authentication"

# With priority
python taskflow.py add "Fix critical bug" --priority high

# With tags
python taskflow.py add "Write tests" --tags testing,important

# With due date
python taskflow.py add "Deploy v2.0" --due 2026-01-15

# Everything
python taskflow.py add "Refactor database" --priority medium --tags backend,refactor --due 2026-01-20

List Tasks

# List all tasks
python taskflow.py list

# Output:
# πŸ“‹ TaskFlow - 5 task(s)
#
# πŸ”„ πŸ”΄ [1] Fix critical bug
# ⬜ 🟑 [2] Implement user authentication
# ⬜ 🟑 [3] Refactor database
# ⬜ 🟒 [4] Write tests
# βœ… 🟑 [5] Deploy v2.0

# Filter by status
python taskflow.py list --status todo
python taskflow.py list --status in_progress
python taskflow.py list --status done

# Filter by priority
python taskflow.py list --priority high

# Filter by tag
python taskflow.py list --tag urgent

# Show details
python taskflow.py list --details

Update Task Status

# Mark as in progress
python taskflow.py start 1
# πŸ”„ Task started: [1] Fix critical bug

# Mark as done
python taskflow.py done 1
# βœ… Task completed: [1] Fix critical bug

# Mark as blocked
python taskflow.py block 3
# 🚫 Task blocked: [3] Refactor database

Edit Tasks

# Change title
python taskflow.py edit 2 --title "Implement OAuth authentication"

# Change priority
python taskflow.py edit 2 --priority high

# Update tags
python taskflow.py edit 2 --tags auth,security,urgent

# Update due date
python taskflow.py edit 2 --due 2026-01-12

# Multiple updates
python taskflow.py edit 2 --title "New title" --priority high --tags new,tags

Delete Tasks

# Delete task
python taskflow.py delete 4
# πŸ—‘οΈ  Task deleted: [4] Write tests

Export to Markdown

# Export all tasks
python taskflow.py export

# Custom output file
python taskflow.py export --output TODO.md

# Creates formatted TASKS.md with all tasks organized by status

View Statistics

# Show task stats
python taskflow.py stats

# Output:
# πŸ“Š TaskFlow Statistics
#
# Total Tasks: 10
#
# By Status:
#   ⬜ Todo: 5 (50.0%)
#   πŸ”„ In Progress: 2 (20.0%)
#   🚫 Blocked: 1 (10.0%)
#   βœ… Done: 2 (20.0%)
#
# By Priority:
#   πŸ”΄ High: 3 (30.0%)
#   🟑 Medium: 5 (50.0%)
#   🟒 Low: 2 (20.0%)

πŸ’‘ Examples

Example 1: Starting a New Project

# Initialize TaskFlow
$ cd ~/new-project
$ python taskflow.py init
βœ… TaskFlow initialized!

# Add initial tasks
$ python taskflow.py add "Setup project structure" --priority high
$ python taskflow.py add "Write README" --priority medium
$ python taskflow.py add "Configure CI/CD" --priority low --tags devops

# View all tasks
$ python taskflow.py list

πŸ“‹ TaskFlow - 3 task(s)

⬜ πŸ”΄ [1] Setup project structure
⬜ 🟑 [2] Write README
⬜ 🟒 [3] Configure CI/CD

πŸ“Š Summary:
   ⬜ Todo: 3

# Start working
$ python taskflow.py start 1
πŸ”„ Task started: [1] Setup project structure

Example 2: Bug Tracking

# Add bugs with tags
$ python taskflow.py add "Login fails on mobile" --priority high --tags bug,mobile,urgent
$ python taskflow.py add "Memory leak in dashboard" --priority high --tags bug,performance
$ python taskflow.py add "Typo in footer" --priority low --tags bug,ui

# List all bugs
$ python taskflow.py list --tag bug

# Mark bug fixed
$ python taskflow.py done 1

Example 3: Sprint Planning

# Add sprint tasks
$ python taskflow.py add "User stories for auth" --priority high --tags sprint-1,planning
$ python taskflow.py add "API endpoint design" --priority high --tags sprint-1,backend
$ python taskflow.py add "UI mockups" --priority medium --tags sprint-1,frontend

# View sprint tasks
$ python taskflow.py list --tag sprint-1

# Export for team
$ python taskflow.py export --output SPRINT_1.md

Example 4: Daily Workflow

# Morning: Check what's in progress
$ python taskflow.py list --status in_progress

# Start new task
$ python taskflow.py start 5

# Complete a task
$ python taskflow.py done 3

# Add new urgent task
$ python taskflow.py add "Hotfix: API rate limiting" --priority high --tags hotfix,urgent

# Evening: Check stats
$ python taskflow.py stats

πŸ”§ Advanced Usage

Git Integration

TaskFlow stores tasks in .taskflow.json - a Git-friendly JSON file.

# Track tasks in Git
git add .taskflow.json
git commit -m "Update project tasks"

# Share with team
git push

# Team members pull and see your tasks
git pull
python taskflow.py list

Pro tip: Add .taskflow.json to .gitignore if you want personal-only tasks, or commit it for team visibility.

Alias Setup

Make TaskFlow even faster:

# Bash/Zsh (~/.bashrc or ~/.zshrc)
alias tf='python /path/to/taskflow.py'

# Now use:
tf add "Quick task"
tf list
tf done 3
# PowerShell ($PROFILE)
function tf { python C:\path\to\taskflow.py $args }

# Now use:
tf add "Quick task"
tf list
tf done 3

Multiple Projects

Each project gets its own .taskflow.json:

# Project A
cd ~/project-a
python taskflow.py list  # Shows Project A tasks

# Project B
cd ~/project-b
python taskflow.py list  # Shows Project B tasks

Export Workflow

# Export tasks every Friday
python taskflow.py export --output WEEKLY_TASKS.md

# Commit to Git
git add WEEKLY_TASKS.md
git commit -m "Weekly task update"

πŸ“Š Task File Format

TaskFlow stores tasks in .taskflow.json:

{
  "tasks": [
    {
      "id": 1,
      "title": "Implement feature X",
      "priority": "high",
      "status": "in_progress",
      "tags": ["feature", "urgent"],
      "due_date": "2026-01-15",
      "created": "2026-01-09T08:00:00",
      "updated": "2026-01-09T10:30:00"
    }
  ],
  "last_updated": "2026-01-09T10:30:00"
}

Fields:

  • id - Unique task identifier (auto-generated)
  • title - Task description
  • priority - high, medium, or low
  • status - todo, in_progress, done, or blocked
  • tags - Array of strings for categorization
  • due_date - ISO format date (optional)
  • created - ISO timestamp
  • updated - ISO timestamp

🎨 Icons & Colors

TaskFlow uses visual indicators for quick scanning:

Status Icons:

  • ⬜ todo - Not started
  • πŸ”„ in_progress - Currently working
  • βœ… done - Completed
  • 🚫 blocked - Waiting on something

Priority Colors:

  • πŸ”΄ high - Urgent, do first
  • 🟑 medium - Normal priority
  • 🟒 low - Do when time permits

Special Indicators:

  • ⚠️ - Task is overdue

πŸ“‹ Commands Reference

Command Description Example
init Initialize TaskFlow in current directory taskflow init
add Add new task taskflow add "Task title" --priority high
list List all tasks taskflow list --status todo
start Mark task as in progress taskflow start 3
done Mark task as done taskflow done 5
block Mark task as blocked taskflow block 2
edit Edit task properties taskflow edit 4 --priority high
delete Delete task taskflow delete 7
export Export to Markdown taskflow export --output TASKS.md
stats Show task statistics taskflow stats

πŸ” Use Cases

For Developers

  • Track bugs and features per project
  • Sprint planning and management
  • Daily task lists synced with Git
  • Personal TODO alongside codebase

For Teams

  • Commit .taskflow.json for shared visibility
  • Export to Markdown for status updates
  • Tag-based organization (sprints, epics)
  • Lightweight alternative to Jira

For Students

  • Track assignments per course
  • Organize study tasks by priority
  • Export for study group sharing
  • Due date reminders

For Freelancers

  • Per-client task tracking
  • Priority management across projects
  • Quick status updates for clients
  • No subscription costs

❓ FAQ

Q: How is this different from other todo apps?

A:

  • βœ… CLI-first - No GUI overhead, keyboard-driven
  • βœ… Per-project - Tasks live with your code
  • βœ… Git-friendly - JSON format, easy to track
  • βœ… Zero cost - No subscriptions, no accounts
  • βœ… Lightweight - One Python file, no dependencies

Q: Can I use this with a team?

A: Yes! Commit .taskflow.json to Git and your team sees the same tasks. Each person can run taskflow list to see current status.

Q: What about conflicts when multiple people edit?

A: Git handles JSON merges well. For heavy concurrent editing, consider using GitHub Issues or a dedicated tool instead.

Q: Can I have personal tasks AND shared tasks?

A: Yes! Keep .taskflow.json in .gitignore for personal tasks, or create a second file (.taskflow.personal.json) and run TaskFlow with a custom path.

Q: Does this work without Git?

A: Absolutely! TaskFlow doesn't require Git. It just stores tasks in a local JSON file. Git integration is optional.

Q: Can I import from other todo apps?

A: Not built-in yet, but the JSON format is simple. You could write a script to import from CSV, Trello export, etc.

Q: Is there a GUI version?

A: No. TaskFlow is CLI-only by design. For GUI, consider tools like Todoist, Trello, or Things.

Q: How do I back up my tasks?

A: The .taskflow.json file is your backup. Copy it, commit to Git, or sync with cloud storage (Dropbox, OneDrive, etc.).


image

🀝 Contributing

Found a bug? Have a feature idea? Contributions welcome!

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

πŸ“„ License

MIT License - see LICENSE file for details.

TL;DR: Free to use, modify, and distribute. No warranty provided.


πŸ™ Credits

Created by Randell Logan Smith and Team Brain at Metaphy LLC

Part of the HMSS (Heavenly Morning Star System) ecosystem.


Technology:

  • Python 3.6+
  • JSON for storage
  • argparse for CLI
  • Zero external dependencies

πŸš€ Quick Reference

# Initialize
taskflow init

# Add task
taskflow add "Task title" [--priority high|medium|low] [--tags tag1,tag2] [--due YYYY-MM-DD]

# List tasks
taskflow list [--status todo|in_progress|done|blocked] [--priority high|medium|low] [--tag TAG] [--details]

# Update status
taskflow start ID      # Mark as in progress
taskflow done ID       # Mark as done
taskflow block ID      # Mark as blocked

# Edit task
taskflow edit ID [--title "New title"] [--priority high|medium|low] [--tags tag1,tag2] [--due YYYY-MM-DD]

# Delete task
taskflow delete ID

# Export & stats
taskflow export [--output FILENAME]
taskflow stats

πŸ“‹ Stay organized. Stay productive. Stay in the terminal.

About

Task management and productivity tracker with priorities, categories, and daily planning

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages