Noteleaf is a unified personal productivity CLI that combines task management, note-taking, and media tracking in one place. It provides TaskWarrior-inspired task management with additional support for notes, articles, books, movies, and TV shows, all built with Golang & Charm.sh libs. Inspired by TaskWarrior & todo.txt CLI applications.
Why?
- Fragmented Ecosystem: Instead of juggling multiple apps for tasks, notes, reading lists, and media queues, Noteleaf provides a single CLI interface
- Terminal-native: For developers and power users who prefer staying in the terminal, Noteleaf offers rich TUIs without leaving your command line
- Lightweight: No desktop apps or web interfaces, just a fast, focused CLI tool
- Unified data model: Tasks, notes, and media items can reference each other, creating a connected knowledge and productivity system
Getting Started
Quick Install
git clone https://github.com/stormlightlabs/noteleaf
cd noteleaf
go build -o ./tmp/noteleaf ./cmd
go installFirst Steps
For a comprehensive walkthrough including task management, time tracking, notes, and media tracking, see the Quickstart Guide.
Development
Noteleaf uses Task for build automation. Development builds include additional tooling commands not available in production builds.
Building
# Production build task build # Development build (with version info and dev tools) task build:dev # Run tests task test task cov # ...with coverage
Development Tools
Dev builds (task build:dev) include a tools subcommand with maintenance utilities:
Documentation Generation:
# Generate Docusaurus documentation noteleaf tools docgen --format docusaurus --out website/docs/manual # Generate man pages noteleaf tools docgen --format man --out docs/manual
Data Synchronization:
# Fetch Leaflet lexicons from GitHub noteleaf tools fetch lexicons # Fetch from a specific commit noteleaf tools fetch lexicons --sha abc123def # Generic GitHub repository archive fetcher noteleaf tools fetch gh-repo \ --repo owner/repo \ --path schemas/ \ --output local/schemas/
Production builds (task build:rc, task build:prod) use the -tags prod flag to exclude dev tools.