cli + tui to publish to leaflet (wip) & manage tasks, notes & watch/read lists 馃崈
charm leaflet readability golang
Go 80.4%
HTML 18.8%
TypeScript 0.3%
CSS 0.3%
JavaScript 0.2%
Other 0.1%
114 1 0

Clone this repository

https://tangled.org/desertthunder.dev/noteleaf
git@tangled.org:desertthunder.dev/noteleaf

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Noteleaf#

codecov Go Report Card License Go Version

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.