Show HN: RazTodo, a local-first task manager for developers RazTodo, a local-first task manager for developers, was released on Hacker News with a native CLI, optional Web UI, and local AI assistance powered by Ollama. The tool stores all data in a single SQLite database, offers commands like add, list, done, search, update, remove, and explain, and supports shell completion for bash, zsh, and fish. It is built with FastAPI and a lightweight static frontend, with no cloud services, accounts, or telemetry. A local-first task manager for developers with a native CLI, optional Web UI, and local AI assistance powered by Ollama. CLI Local AI assistance powered by Ollama Web UI CLI + optional Web UI powered by FastAPI 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. - ๐Ÿ’ป 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 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. 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 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 Requires raztodo completion eval "$ rt completion bash " Supports bash, zsh, and fish. For permanent setup see the Completion Guide https://github.com/razbuild/raztodo/blob/master/docs/COMPLETION.md . 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 https://github.com/razbuild/raztodo/blob/master/docs/EXPLAIN.md for installation, configuration, supported models, and usage examples. 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 https://github.com/razbuild/raztodo/blob/master/docs/INSTALLATION.md . | 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 https://github.com/razbuild/raztodo/blob/master/docs/USAGE.md for full command documentation. | 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 https://github.com/razbuild/raztodo/blob/master/docs/CONFIGURATION.md 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 https://github.com/razbuild/raztodo/blob/master/docs/DOCKER.md Core: Advanced: - โŒจ๏ธ Completion Guide https://github.com/razbuild/raztodo/blob/master/docs/COMPLETION.md - ๐Ÿณ Docker Guide https://github.com/razbuild/raztodo/blob/master/docs/DOCKER.md - ๐Ÿ—๏ธ Architecture https://github.com/razbuild/raztodo/blob/master/docs/ARCHITECTURE.md - ๐Ÿงช Testing https://github.com/razbuild/raztodo/blob/master/docs/TESTING.md - ๐Ÿ“ Changelog https://github.com/razbuild/raztodo/blob/master/CHANGELOG.md RazTodo is part of the RazBuild https://github.com/razbuild ecosystem of open-source developer tools. RazTint https://github.com/razbuild/raztint Zero-dependency ANSI colors, icons, and terminal formatting utilities powering RazTodo's CLI output. We welcome bug reports, feature requests, and pull requests. git clone https://github.com/razbuild/raztodo cd raztodo uv sync uv run pytest uv run ruff check src/ tests/ uv run ruff format src/ tests/ uv run ty check src/ - Create feature branch - Implement changes - Ensure tests pass - Submit PR See the CONTRIBUTING https://github.com/razbuild/.github/blob/main/CONTRIBUTING.md guide for details.