Skip to main content
RazTodo

RazTodo

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


PyPI Version Python Versions CI Codecov (with branch)


Preview

CLI

Local AI assistance powered by Ollama

Web UI

CLI + optional Web UI powered by FastAPI


Why RazTodo

Most task managers are either web-first, cloud-dependent, or tied to a single interface. RazTodo keeps everything local while letting you manage the same tasks from a native CLI or an optional Web UI.

Highlights

  • 💻 Native CLI built for daily terminal workflows
  • 🌐 Optional Web UI backed by the same local database
  • 🤖 Local AI assistance powered by Ollama
  • 🗄️ Single SQLite database shared across all interfaces
  • 🔒 No cloud services, accounts, or telemetry
  • ⚡ Fast startup with zero background services

Architecture

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

Both the CLI and Web UI use the same core engine and SQLite database, so every interface stays synchronized automatically.

The architecture follows three design principles:

  • Separation of concerns core logic is independent of the user interface.
  • Local-first storage all data stays on your machine.
  • Composable interfaces use only the interfaces you need.

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"

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


LLM Integration

RazTodo integrates with Ollama to provide optional local AI assistance for your tasks. Every explanation runs locally using your own LLM, keeping your data private.

Available explanation modes:

  • --short — concise summary of the task
  • --plan — actionable step-by-step plan
  • --deep — detailed analysis and recommendations

Example:

rt explain 1 --short
rt explain 1 --plan
rt explain 1 --deep

[!NOTE] Requires Ollama with a compatible local model. All AI processing is performed locally.

📖 See the Explain Guide for installation, configuration, supported models, and usage examples.


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

An optional Docker image covers the CLI and the Web UI with persistent SQLite storage.

docker build -t raztodo:local .

CLI:

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

Web UI (via Compose):

docker compose up -d web
# open http://localhost:8000

[!NOTE] The image stores the database in /data; mount a host folder or use the Compose named volume to persist data. CLI and Web UI share the same database when they use the same /data volume.

[!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

Contributions are welcome! Whether it's bug reports, feature requests, documentation improvements, or code changes, check the contribution guide before getting started.

See the Contributing Guide for development setup, testing, coding standards, and pull request guidelines.


License

License

Made by RazBuild

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.10.0.tar.gz (82.6 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.10.0-py3-none-any.whl (117.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: raztodo-0.10.0.tar.gz
  • Upload date:
  • Size: 82.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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.10.0.tar.gz
Algorithm Hash digest
SHA256 78e592ace688ed20fc52da733bc38d015d06d5fcfcc693f7beda3ad78cfd9cf1
MD5 e906f7e8121f0c87e0b5311eabdfe3fd
BLAKE2b-256 23ba9bd4281485a5ce14c6c26879ea0e76e35b7291bea83e47ec7e5508dfa266

See more details on using hashes here.

File details

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

File metadata

  • Download URL: raztodo-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 117.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12b37f85513e36ee7e9a1594f027da8976e706d9f92e9b9284dedfafded90980
MD5 5e65cddf9ec6e57a51ef6db8a0832137
BLAKE2b-256 473c446427fd35f0cd05ea79081f8bad3419c496d2db3fe8cdc3feba612ed40d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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