A lightweight, high-performance terminal-based task manager inspired by Emacs Org-mode, written in Zig.
- 📋 Parse
.orgfiles (headlines, TODO/DONE states, timestamps) - 🎮 Terminal UI with Vim-like keybindings
- 📁 Tree navigation with collapse/expand
- ✅ Toggle TODO ↔ DONE states
- 🔍 Live search and agenda view
- 💾 RocksDB-backed state persistence
- 📤 Export to ICS calendar format
- Zig 0.13.0+ (install)
- Linux (developed on Guarda Linux)
- RocksDB development headers (usually:
apt install librocksdb-dev)
git clone <nexus-repo>
cd nexus
make buildmake dev
# or:
./build/nexus examples/test.orgmake install
# Then:
nexus my-tasks.org| Key | Action |
|---|---|
| j/k | Move cursor up/down |
| h/l | Collapse/expand node |
| space | Toggle TODO ↔ DONE |
| t | Toggle TODO ↔ DONE |
| Enter | Edit title |
| x/d | Delete node |
| n | New node |
| Tab/S-Tab | Promote/Demote (indent) |
| Alt+Arrows | Rearrange / Nest |
| / | Enter search mode |
| a | Agenda view (by date) |
| f | File browser (select/create files) |
| n | Create new file (in browser) |
| q | Quit |
src/org.zig– Org file parser (headlines, states, scheduling)src/store.zig– RocksDB key-value store wrappersrc/ui_state.zig– UI state with disk persistencesrc/ui/painter.zig– Component-based terminal renderingsrc/terminal.zig– Raw terminal control (60 FPS)
State is persisted to ~/.nexus/db/ using RocksDB:
ui:expanded:{node_id}→ "true" | "false"ui:metadata→ cursor, scroll, mode, search querynode:{uuid}→ JSON blob (full node data)task:deadline:{date}→ [uuid1, uuid2, ...]tag:{name}→ [uuid1, uuid2, ...]
make test # Unit tests
make test-ui # UI component rendering- Custom field support (properties drawer)
- Task priorities (A/B/C)
- Recurring task templates
- Multi-file support
- Sync to calendar (CalDAV)
- Collaborative editing
- REST API for external integration
- Mobile companion app
MIT
Built with ❤️ in Zig