2 unstable releases
| 0.3.0 | Sep 18, 2025 |
|---|---|
| 0.2.0 | Sep 11, 2025 |
#1507 in Command line utilities
495KB
6.5K
SLoC
Terminalist - Todoist Terminal Client
π Documentation: Configuration | Keyboard Shortcuts | Development | Architecture
A terminal application for interacting with Todoist, built in Rust with a modern TUI interface.

Features
- β Interactive TUI Interface - Beautiful terminal user interface with ratatui
- β Local Data Caching - Fast, responsive UI with in-memory SQLite storage
- β Smart Sync - Automatic sync on startup and manual refresh with 'r'
- β Project Management - Browse projects with hierarchical display
- β Task Management - View, navigate, complete, and create tasks
- β Task Search - Fast database-powered search across all tasks with '/' shortcut
- β Keyboard & Mouse Navigation - Efficient keyboard operation with mouse support
- β Real-time Updates - Create, complete, and delete tasks/projects
- β Label Support - View task labels with colored badges
- β Responsive Layout - Adapts to terminal size with smart scaling
- β Help System - Built-in help panel with keyboard shortcuts
- β Configuration File - Customizable settings via TOML configuration
Installation
Option 1: Install from Crates.io (Recommended)
cargo install terminalist
Option 2: Build from Source
# Clone the repository
git clone https://github.com/romaintb/terminalist.git
cd terminalist
# Build the project
cargo build --release
# Run the application
cargo run --release
The binary will be available at target/release/terminalist after building.
Setup
1. Get your Todoist API Token
- Go to Todoist Integrations Settings
- Find the "API token" section
- Copy your API token
2. Set Environment Variable
export TODOIST_API_TOKEN=your_token_here
3. (Optional) Generate Configuration File
# Generate a default config file with all available options
terminalist --generate-config
This creates a config file at ~/.config/terminalist/config.toml with customizable settings.
4. Run the Application
terminalist
Configuration
Terminalist supports customization via TOML configuration files.
# Generate a default config file with all available options
terminalist --generate-config
This creates a config file at ~/.config/terminalist/config.toml.
π See Configuration Guide for detailed configuration options.
Quick Start Controls
Essential keyboard shortcuts to get started:
| Key | Action |
|---|---|
j/k |
Navigate tasks up/down |
J/K |
Navigate projects up/down |
Space |
Complete task |
a |
Create new task |
/ |
Search tasks |
r |
Sync with Todoist |
? |
Show help panel |
q |
Quit |
π See Complete Keyboard Shortcuts for all available controls and interface details.
How It Works
Terminalist uses a smart sync mechanism:
- Fast Startup: In-memory SQLite database for instant loading
- Auto Sync: Syncs with Todoist on startup and every 5 minutes
- Manual Sync: Press
rto force refresh from Todoist - Real-time Updates: Create, modify, and delete tasks/projects immediately
π See Architecture Guide for technical details.
Contributing
Contributions are welcome! See Development Guide for setup instructions and coding standards.
License
This project is open source. Feel free to modify and use as needed.
Dependencies
~44β64MB
~1M SLoC