Skip to content

Repository files navigation

TaskPilot

TaskPilot is a small, file-backed task manager for the command line. It supports priorities, due dates, focused list views, completion tracking, and lightweight reporting without requiring an account, database, or hosted service.

The project explores how a compact CLI can still provide predictable behavior, clear errors, portable persistence, and useful tests.

What it demonstrates

  • Command parsing and validation in C#
  • JSON persistence with explicit data models
  • Dependency inversion through a task-store interface
  • Deterministic filtering and sorting
  • Platform-aware application data paths
  • Automated behavior and persistence tests

Quick start

Requirements: .NET 10 SDK

dotnet run -- add "Ship report" --due 2026-09-15 --priority high
dotnet run -- list
dotnet run -- stats

Commands

taskpilot add "Task title" [--due YYYY-MM-DD] [--priority low|medium|high]
taskpilot list [--all] [--today] [--overdue]
taskpilot done <id>
taskpilot remove <id>
taskpilot stats

Example output:

ID  Status  Priority  Due         Title
--  ------  --------  ----------  -----
1   open    High      2026-09-15  Ship report

Storage

TaskPilot writes JSON to the operating system's application-data directory. For scripts, tests, or portable use, set TASKPILOT_DATA_FILE to an explicit path:

TASKPILOT_DATA_FILE=./tasks.json dotnet run -- list

No network request or external service is involved.

Build and test

dotnet build TaskPilot.slnx
dotnet run --project tests/TaskPilot.Tests

The test harness covers command behavior, validation, state transitions, and JSON round trips without relying on a third-party test framework.

Design

CLI arguments
    |
    v
TaskPilotApp ----> ITaskStore
                       |
                       v
                 JsonTaskStore

The storage interface keeps command behavior testable and leaves room for other storage implementations without changing the CLI workflow.

License

MIT

About

A small, tested C# task-tracking CLI with JSON persistence.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages