Noteleaf#
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 install
First 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.