Skip to main content

Modular task manager with a shared core and optional CLI, web UI, and shell completion components.

Project description

RazTodo

PyPI Version PyPI Downloads

CI Codecov

Python Versions

A local-first task manager for developers with a native CLI, optional Web UI, shell completion, and local AI assistance.


Preview

CLI

Web UI

CLI + optional Web UI powered by FastAPI


Why RazTodo

RazTodo is a local-first task manager built around a shared core engine with optional interfaces (CLI, Web UI, and shell completion).

CLI ─┐
     ├── Core Engine ─── SQLite
Web ─┘

All interfaces share a single SQLite database, enabling instant synchronization without external services or accounts.

The design follows three principles:

  • Separation of concerns: core logic is interface-agnostic
  • Local-first storage: all data remains on the user’s machine
  • Composable interfaces: CLI, Web UI, and shell tooling are optional layers

Quick Start

CLI

# Add a task
rt add "Prepare weekly groceries" --priority H --due 2026-12-31

# List all tasks
rt list

# Mark as done
rt done 1

# Search
rt search "groceries"

# Get AI explanation of a task
rt explain 1 --short

# Update
rt update 1 --title "Weekly groceries: milk, vegetables, essentials"

# Delete
rt remove 1

Web UI

Start the server:

rt-web

Then open http://127.0.0.1:8000.

[!NOTE] Runs locally only (not exposed to the internet)
Single-user design with no authentication layer
CLI and Web UI share one SQLite database (real-time sync)
Local-first architecture optimized for personal use
Built with FastAPI + lightweight static frontend AI-powered task explanations (Summary / Deep Analysis / Action Plan) via Ollama

Shell Completion

# Requires raztodo[completion]
eval "$(rt completion bash)"

Supports bash, zsh, and fish. For permanent setup see the Completion Guide.


Installation

# Recommended (pipx)
pipx install raztodo

# No-install (uv)
uvx --from raztodo rt

# Standard install
pip install raztodo

# Web UI (optional)
pip install "raztodo[web]"

# Shell completion (optional)
pip install "raztodo[completion]"

# Everything (web + completion)
pip install "raztodo[all]"

For virtual environment and source installation, see the Installation Guide


Commands

Command Description Example
add Create a new task rt add "Task" --priority H
list List tasks with filters rt list --pending --priority H
update Update a task rt update 1 --title "New title"
done Toggle task done/undone rt done 1
remove Delete a task rt remove 1
search Search tasks by keyword rt search "keyword"
export Export tasks to JSON rt export backup.json
import Import tasks from JSON rt import backup.json
migrate Run database migrations rt migrate
clear Delete all tasks rt clear --confirm
completion Output shell completion script rt completion bash
explain Get an AI explanation of a task rt explain 1 --plan
rt --help
rt add --help

📖 See the Usage Guide for full command documentation.


Configuration

Variable Description Default
RAZTODO_DB Database filename or path tasks.db
LOG_LEVEL Logging level ERROR
export RAZTODO_DB="/path/to/custom.db"
export LOG_LEVEL="DEBUG"

[!TIP] 📖 See the Configuration Guide


Docker

docker build -t raztodo:local .
docker run --rm -it -v "$HOME/raztodo-data:/data" raztodo:local add "My first task"

[!NOTE] kept CLI-only to minimize image size and dependencies

[!TIP] 📖 See the Docker Guide


Documentation

Core:

Advanced:


Ecosystem

RazTodo is part of the RazBuild ecosystem of open-source developer tools.

  • RazTint — Zero-dependency ANSI colors, icons, and terminal formatting utilities powering RazTodo's CLI output.

Contributing

git clone https://github.com/razbuild/raztodo
cd raztodo
uv sync

Quality checks

uv run pytest
uv run ruff check src/ tests/
uv run ruff format src/ tests/
uv run ty check src/

Workflow

  1. Create feature branch
  2. Implement changes
  3. Ensure tests pass
  4. Submit PR

See CONTRIBUTING guide for details.


License

License

Made by RazBuild

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

raztodo-0.7.1.tar.gz (45.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

raztodo-0.7.1-py3-none-any.whl (72.5 kB view details)

Uploaded Python 3

File details

Details for the file raztodo-0.7.1.tar.gz.

File metadata

  • Download URL: raztodo-0.7.1.tar.gz
  • Upload date:
  • Size: 45.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for raztodo-0.7.1.tar.gz
Algorithm Hash digest
SHA256 c137717c4fd68da9067bbdf5a536221ae27e5c407a372c6ce9c2828be66701c8
MD5 0248d7c18a92a01c9ae0060e76d7425c
BLAKE2b-256 793278c77375c1dbeb3333f76b05b9e919815529b4e68c58380515594b1922a0

See more details on using hashes here.

File details

Details for the file raztodo-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: raztodo-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 72.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for raztodo-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 374da1cf64a12b1fd726b045d82c9dbadd3318e097eb6b14f43a7a3a1e1ba4de
MD5 bf584df87fd8a303e79a1acfcd074893
BLAKE2b-256 bd2548ebcc8bf2884cf40d93cd6fdac1f220d98de493ab49285fcd8bd0c2e482

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page