cli + tui to publish to leaflet (wip) & manage tasks, notes & watch/read lists 馃崈
charm
leaflet
readability
golang
1# Noteleaf
2
3[](https://codecov.io/gh/stormlightlabs/noteleaf)
4[](https://goreportcard.com/report/github.com/stormlightlabs/noteleaf)
5[](LICENSE)
6[](go.mod)
7
8Noteleaf is a unified personal productivity CLI that combines task management, note-taking, and media tracking in one place.
9It provides TaskWarrior-inspired task management with additional support for notes, articles, books, movies, and TV shows, all built with Golang & Charm.sh libs.
10Inspired by TaskWarrior & todo.txt CLI applications.
11
12## Why?
13
14- **Fragmented Ecosystem**: Instead of juggling multiple apps for tasks, notes, reading lists, and media queues, Noteleaf provides a single CLI interface
15- **Terminal-native**: For developers and power users who prefer staying in the terminal, Noteleaf offers rich TUIs without leaving your command line
16 - **Lightweight**: No desktop apps or web interfaces, just a fast, focused CLI tool
17- **Unified data model**: Tasks, notes, and media items can reference each other, creating a connected knowledge and productivity system
18
19## Getting Started
20
21### Quick Install
22
23```sh
24git clone https://github.com/stormlightlabs/noteleaf
25cd noteleaf
26go build -o ./tmp/noteleaf ./cmd
27go install
28```
29
30### First Steps
31
32For a comprehensive walkthrough including task management, time tracking, notes, and media tracking, see the [Quickstart Guide](website/docs/Quickstart.md).
33
34## Development
35
36Noteleaf uses [Task](https://taskfile.dev) for build automation. Development builds include additional tooling commands not available in production builds.
37
38### Building
39
40```sh
41# Production build
42task build
43
44# Development build (with version info and dev tools)
45task build:dev
46
47# Run tests
48task test
49task cov # ...with coverage
50```
51
52### Development Tools
53
54Dev builds (`task build:dev`) include a `tools` subcommand with maintenance utilities:
55
56**Documentation Generation:**
57
58```sh
59# Generate Docusaurus documentation
60noteleaf tools docgen --format docusaurus --out website/docs/manual
61
62# Generate man pages
63noteleaf tools docgen --format man --out docs/manual
64```
65
66**Data Synchronization:**
67
68```sh
69# Fetch Leaflet lexicons from GitHub
70noteleaf tools fetch lexicons
71
72# Fetch from a specific commit
73noteleaf tools fetch lexicons --sha abc123def
74
75# Generic GitHub repository archive fetcher
76noteleaf tools fetch gh-repo \
77 --repo owner/repo \
78 --path schemas/ \
79 --output local/schemas/
80```
81
82Production builds (`task build:rc`, `task build:prod`) use the `-tags prod` flag to exclude dev tools.