torudo-0.1.0 is not a library.
Torudo
A terminal-based todo.txt viewer and manager written in Rust with TUI interface.
Features
- Interactive TUI interface for browsing todo.txt files
- Project-based column view for organized task management
- Vim integration for editing individual todo items
- Real-time file watching for automatic updates
- Support for todo.txt format with priorities, projects, and contexts
- Task completion with automatic archiving to done.txt
Installation
Prerequisites
- Rust (latest stable version)
- Git
Build from source
The binary will be available at target/release/torudo.
Configuration
Torudo uses environment variables for configuration:
TODOTXT_DIR: Directory containing your todo.txt file (default:~/todotxt)NVIM_LISTEN_ADDRESS: Neovim socket path for vim integration (default:/tmp/nvim.sock)
Usage
Basic Usage
# Run torudo (looks for todo.txt in $TODOTXT_DIR or ~/todotxt)
Keyboard Controls
j/k: Navigate up/down within a project columnh/l: Switch between project columnsx: Mark selected todo as complete and move to done.txtr: Reload todo.txt fileq: Quit application
Todo.txt Format
Torudo supports the standard todo.txt format:
(A) Call Mom +family @phone
x 2024-01-15 2024-01-10 (B) Review quarterly report +work @office
(C) Buy groceries +personal @errands
Learn Rust programming +learning @coding id:abc123
Features supported:
- Priority levels:
(A),(B),(C) - Completion status:
xprefix with completion date - Creation date:
YYYY-MM-DDformat - Projects:
+project_name - Contexts:
@context_name - Unique IDs:
id:unique_identifier(automatically added if missing)
Vim Integration
If you have Neovim running with a socket, Torudo can automatically open todo detail files when navigating. Each todo item can have an associated markdown file in $TODOTXT_DIR/todos/{id}.md.
File Structure
~/todotxt/
├── todo.txt # Main todo file
├── done.txt # Completed todos
└── todos/ # Individual todo detail files
├── abc123.md
└── def456.md
Development
Running in Development
Running Tests
Code Quality
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request