A command line todo application for managing tasks in a local CSV data store.
This project provides a terminal-based task manager with support for:
- adding new tasks
- listing uncompleted tasks
- listing all tasks with a
--allflag - marking tasks complete
- deleting tasks
- storing tasks in
~/.tasks/tasks.csv - file locking to prevent concurrent read/write access
go install github.com/your-username/your-cli@latestMake sure $(go env GOPATH)/bin is in your PATH.
Create a new task with a description:
$ tasks add "My new task"Show incomplete tasks:
$ tasks listShow all tasks, including completed ones:
$ tasks list --allMark a task as done by its ID:
$ tasks complete <taskid>Remove a task from the store:
$ tasks delete <taskid>Tasks are stored in a CSV file at ~/.tasks/tasks.csv with the following columns:
IDDescriptionCreatedAtCompleted
The application resolves ~ to the current user home directory and creates the store directory automatically when needed.
encoding/csvfor CSV storagestrconvfor parsing and formatting numeric and boolean valuestext/tabwriterfor aligned command outputosfor file and path operationsgithub.com/spf13/cobrafor the CLI interfacegithub.com/mergestat/timedifffor friendly relative timestamps
From the repository root:
go build -o tasks .Then run the CLI:
./tasks <command>- the file store is locked during write operations to avoid concurrent access issues