Task Manager
Task Manager is a small self-hosted task tracker with a command-line client, a FastAPI service, and SQLite storage. It supports task status, ownership, due dates, work notes, and text or date-based searches.
Features
- Create, inspect, update, search, and delete tasks from the CLI.
- Track todo, inprogress, and completed tasks.
- Store task descriptions, owners, due dates, and timestamped work notes.
- Edit long descriptions with $EDITOR.
- Run the API as a systemd service or a Docker container.
- Persist data in a configurable SQLite database.
Requirements
- Python 3.10 or newer for Python installation and development.
- uv for the reproducible development workflow.
- Fedora tooling when building the RPM locally.
Python installation
Install both console commands from a checkout:
uv tool install .This provides:
- task: the command-line client.
- taskserver: the FastAPI server.
The client connects to http://localhost:8000 by default. To use another server, create ~/.taskrc:
[default]
api_url = https://tasks.example.comCLI usage
Start the server before using the client:
TASK_DB_PATH=./task_manager.db task_serverCommon commands:
task ping
task add --title "Review pull request" --description "Review API changes"
task list
task show --id 1
task update --id 1 --status in_progress
task note --id 1 --note "Finished the API review"
task search --text "pull request"
task delete --id 1