Skip to content

OpenTodo Engine

 ██████╗ ██████╗ ███████╗███╗   ██╗████████╗██████╗ ██████╗  ██████╗ 
██╔═══██╗██╔══██╗██╔════╝████╗  ██║╚══██╔══╝██╔══██╗██╔══██╗██╔═══██╗
██║   ██║██████╔╝█████╗  ██╔██╗ ██║   ██║   ██║  ██║██║  ██║██║   ██║
██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║   ██║   ██║  ██║██║  ██║██║   ██║
╚██████╔╝██║     ███████╗██║ ╚████║   ██║   ██████╔╝██████╔╝╚██████╔╝
 ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝   ╚═╝   ╚═════╝ ╚═════╝  ╚═════╝ 

OpenTodo is a stateful, developer-first terminal engine. Manage your standard operating procedures, sprint plans, and daily tasks without ever leaving the command line.


Quick Start

Install the engine globally via PyPI:

pip install opentodo

Initialize your local infrastructure:

otodo init

Create a workspace and add a task:

otodo create "sprint-1"
otodo add "Write database migration scripts" -p 10
otodo

Why OpenTodo?

  1. Stateful CLI: The CLI remembers your active workspace. No need to pass --list-id on every command.
  2. Headless Python SDK: Build custom REPLs, Discord bots, or automated scripts seamlessly.
  3. Bring Your Own Database: Run it entirely locally on SQLite, or connect it to a cloud PostgreSQL/Neon database for multi-machine syncing.
  4. Declarative Pipelines: Provision entire task environments instantly using YAML manifests.