← All tools

edimatt/task-manager

Popularity 75 Updated Development & Build

Self-hosted task manager with a FastAPI API, Python CLI, SQLite storage, RPM packaging, Docker image, and automated CI/CD.

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

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.com

CLI usage

Start the server before using the client:

TASK_DB_PATH=./task_manager.db task_server

Common 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