Skip to main content

A command-line todo list application with natural language input

Project description

Todo CLI

A command-line todo list application that accepts natural language input.

Features

  • Natural language input - No need to remember exact commands
  • Intent classification - Automatically understands what you want to do
  • Local persistence - Todos saved to ~/.todo/todos.json
  • Simple and fast - Operations complete in under 0.5 seconds

Installation

From PyPI

pip install todo-cli-nl

From Source

Requires Python 3.10+ and uv.

git clone https://gitlab.com/roscom/todo.git
cd todo
uv sync

Usage

# If installed via pip
todo <command>

# If running from source
uv run todo <command>

Add a Todo

uv run todo add buy groceries
uv run todo "remember to call mom"
uv run todo "I need to finish the report"

List Open Todos

uv run todo list
uv run todo "show my todos"
uv run todo "what do I need to do"

Output:

Open todos:
  #1  buy groceries
  #2  call mom
  #3  finish the report

Complete a Todo

By ID:

uv run todo "done #1"
uv run todo "complete #2"

By title:

uv run todo "done buy groceries"
uv run todo "finish the report"

Delete a Todo

uv run todo "delete #1"
uv run todo "remove call mom"

Help

uv run todo
uv run todo help
uv run todo --help

Supported Commands

Intent Keywords
Add add, create, new, remember, need to, todo
List list, show, display, what, todos, tasks
Complete done, complete, finish, finished, check
Delete delete, remove, cancel, drop

Data Storage

Todos are stored in JSON format at ~/.todo/todos.json.

To reset all todos:

rm -rf ~/.todo

Development

Run Tests

# All tests
uv run pytest

# Unit tests only
uv run pytest tests/unit -v

# Integration tests only
uv run pytest tests/integration -v

# With coverage
uv run pytest --cov=src

Lint

uvx ruff check src/ tests/

Project Structure

src/
├── models/todo.py       # TodoItem model + Intent enum
├── services/
│   ├── storage.py       # JSON file persistence
│   └── classifier.py    # Intent classification
├── cli/main.py          # CLI entry point
└── lib/utils.py         # Utilities

tests/
├── unit/                # Unit tests
└── integration/         # CLI integration tests

License

MIT

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

todo_cli_nl-0.1.0.tar.gz (89.9 kB view details)

Uploaded Source

Built Distribution

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

todo_cli_nl-0.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file todo_cli_nl-0.1.0.tar.gz.

File metadata

  • Download URL: todo_cli_nl-0.1.0.tar.gz
  • Upload date:
  • Size: 89.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.04","id":"plucky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for todo_cli_nl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 40f3ed1bb2ca582be9d516214b11f30c33fa16bacfe982c1ef4ed363989eff5a
MD5 413f62ab709c954f8680c77c02cce762
BLAKE2b-256 fccdc6210387a85b8cf75f392ef890894d2c7af36cc1f7b22eeace22fc526ad5

See more details on using hashes here.

File details

Details for the file todo_cli_nl-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: todo_cli_nl-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"25.04","id":"plucky","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for todo_cli_nl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57520d08f548bf90a9a3fc141dc1222bcd64cba639557a3798db55b16cd2a320
MD5 0382154568f8075a28a4db461876e39d
BLAKE2b-256 32ba6c93691d0b1222ed14b21413c18f39a7b2a96cf4848e649ba1fa750ea0ff

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