6.8 KiB
Rogue Agenda
Rogue Agenda is a modern terminal reimagining of the ideas behind Lotus Agenda. It captures information first and lets structure emerge later: enter a plain sentence, then use categories, dates, saved views, notes, priorities, and live filters to see it from different angles.
The interface deliberately recalls Agenda's dense blue-and-gray DOS workspace,
including the function-key command strip, while behaving like a current TUI:
it resizes fluidly, supports mouse selection and command clicks, understands
common keyboard conventions, and stores each document as an ordinary SQLite
database with the .agnd extension.
Features
- Free-form items with multiline notes, priority, due dates, done dates, alarms, numeric values, recurring schedules, and prerequisites. Completing a recurring item creates its next dated occurrence and carries its alarm and filing forward.
- Hierarchical categories with inherited membership and explicit many-to-many assignment and negative exclusions: an item exists once but can appear in many contexts.
- Automatic filing from category match phrases and natural date phrases such as
today,tomorrow,next friday,in 3 days, and ISO dates. - Live views for all items, tasks, upcoming work, completed work, and a datebook.
- Full-text search plus composable Boolean filters over text, notes, categories, dates, done state, priority, numeric value, alarms, recurrence, and relative due windows.
- Agenda-style View Manager and Category Manager screens with editable live view definitions, hierarchy, category kinds, match phrases, and exclusivity.
- Persistent per-view columns, custom headings and widths, numeric aggregates, filtered multi-section layouts, collapsed sections, and view reordering.
- User-authored category rules with a live match preview and deterministic actions for assignments, exclusions, priority, value, dates, and completion.
- Marking and bulk completion, soft deletion with Trash recovery, sorting, and dependency visibility.
- View-scoped CSV, JSON, Markdown, HTML, and iCalendar export, text/iCalendar import (including standard recurrence rules), autosave, WAL journaling, and transactional SQLite persistence.
- Responsive compact/wide layouts, keyboard navigation, mouse selection, clickable function-key commands, and an in-app help screen.
Build and run
You need a current stable Rust toolchain and SQLite development libraries.
cargo run -- notes.agnd
If the path has no extension, Rogue Agenda appends .agnd. A new document is
initialized with useful categories and saved views. To explore a populated file:
cargo run -- demo.agnd --demo
Noninteractive transfer commands are also available:
cargo run -- notes.agnd --import inbox.txt
cargo run -- notes.agnd --export csv --output notes.csv
cargo run -- notes.agnd --export json --output notes.json
cargo run -- notes.agnd --export markdown --view Tasks --output tasks.md
cargo run -- notes.agnd --export html --view Datebook --output agenda.html
cargo run -- notes.agnd --export ics --output tasks.ics
cargo run -- imported.agnd --import tasks.ics
Development quality gate
Compiler warnings are denied by project configuration. Before accepting any change, run the complete gate:
./scripts/quality-gate.sh
It requires clean cargo fmt --check output, runs Clippy across every target and
feature with -D warnings, executes all tests, builds warning-free documentation,
and produces the release binary. Any warning, formatting difference, test failure,
or build failure stops the gate.
Essential keys
| Key | Action |
|---|---|
Arrows or h j k l |
Move selection / scroll |
Insert or n |
Add a free-form item |
F2 or e |
Edit the selected item |
F3 or c |
Assign categories |
F4 or d |
Toggle done |
F5 |
Edit the item's note |
F6 or p |
Edit item properties |
F7 or Space |
Mark for bulk operations |
F8 or v |
View Manager |
F9 |
Category Manager |
F10 or m |
Command menu |
r |
Edit prerequisites for the selected item |
/ |
Search the current view |
[ / ] |
Previous / next saved view |
Ctrl-S |
Save/checkpoint |
? or F1 |
Help |
q |
Quit |
Inside forms, Tab moves between fields, Enter accepts, and Esc cancels.
In the F5 note editor, Enter inserts a line, arrows/Home/End move the cursor,
and Ctrl-S saves. Mouse clicks select rows, switch views, and activate the
bottom command strip.
Designing live views
Open the View Manager with F8. Press n to create a view, e to edit one,
Ctrl-Up/Ctrl-Down to reorder it, or Delete to remove it.
Boolean filters use and, or, not, and parentheses. Available predicates
include text~rust, note~budget, category=Work, priority<=2, value>100,
done, open, dated, undated, due<=7d, overdue, has-note, alarm,
recurring, and nonrecurring.
For example:
category=Work and open and (priority<=2 or due<=3d)
Columns use field:width:heading:aggregate, separated by commas. Fields are
item, categories, when, priority, note, value, done, alarm,
recurrence, created, and updated; aggregates are none, sum, avg,
count, min, or max.
item:55:Action:none,when:25:Due:none,value:20:Cost:sum
Sections use heading|filter, separated by semicolons. Add |collapsed to make
a section initially collapsed.
Urgent|priority=1;Upcoming|due<=7d;Someday|undated|collapsed
Automatic category rules
Open the Category Manager with F9, then create or edit a category. In addition
to simple match phrases, each category can have a Boolean rule condition and an
action. The form previews how many existing items match before saving.
Actions use action:value: assign:Category, exclude:Category, priority:1,
value:125.50, when:tomorrow at 3pm, alarm:tomorrow at 2pm,
repeat:weekdays, or done:true. assign: with no value assigns the category
being edited. Rules are reapplied to existing information and whenever an item
changes.
Recurring work
Open item properties with F6 and set a recurrence to daily, weekdays,
weekly, monthly, yearly, or a rule such as every 2 weeks. The item must
have a When date. Marking it done preserves the completed occurrence and creates
the next open occurrence. Rogue Agenda shifts its alarm by the same interval and
copies its note, priority, numeric value, recurrence, and explicit category
assignments. iCalendar import and export maps these schedules to RRULE.
Design notes
Rogue Agenda is not file-format compatible with Lotus Agenda and uses no Lotus code. It reinterprets the interaction model around items, categories, views, automatic assignment, and information sifting. See PROJECT.md for the research record and detailed implementation matrix.
License
MIT. See LICENSE.