A simple orgmode editor inspired by nano and k9s
Find a file
2025-11-08 22:21:00 +00:00
.github/workflows fix: enabling building for BSD people (#2) 2025-11-08 20:19:24 +00:00
.imgs readme and keybindings improvements 2025-11-08 14:47:51 +00:00
cmd/org fix: custom states not parsed correctly has been fixed (#4) 2025-11-08 22:21:00 +00:00
internal fix: custom states not parsed correctly has been fixed (#4) 2025-11-08 22:21:00 +00:00
.gitignore remove accidental org file 2025-11-07 21:58:49 +00:00
go.mod fix bug not allowing Q to be typed in settings 2025-11-08 19:01:42 +00:00
go.sum Adding settings view and remappable keybindings and custom states support and tags 2025-11-08 17:33:36 +00:00
LICENSE Create LICENSE 2025-11-08 13:44:11 +00:00
README.md Adding settings view and remappable keybindings and custom states support and tags 2025-11-08 17:33:36 +00:00

Org

A simple terminal-based Org-mode task manager inspired by the simplicity of nano. Manage your TODO items, track time, and stay organized without leaving the command line.

Installation

go install github.com/rwejlgaard/org/cmd/org@latest

Or build from source:

git clone https://github.com/rwejlgaard/org
cd org
go build -o bin/org ./cmd/org

Usage

org [filename]           # Open specific org file
org -f tasks.org         # Open using -f flag
org                      # Opens ./todo.org by default

Features

Task Management

  • Customizable TODO States: Define your own workflow states with custom colors (default: TODO, PROG, BLOCK, DONE)
  • Hierarchical Tasks: Create sub-tasks and organize items with multiple levels
  • Priority Levels: Set priorities (A, B, C) with color-coded indicators
  • Tags: Organize tasks with tags like :work:urgent: with customizable colors
  • Folding: Collapse and expand tasks and notes with Tab key
  • Quick Capture: Press 'c' to quickly capture new TODO items
  • Reorder Mode: Reorganize tasks with shift+up/down arrows

Scheduling & Deadlines

  • Deadlines: Set and track task deadlines with visual indicators
  • Scheduled Dates: Schedule tasks for specific dates
  • Agenda View: View upcoming tasks for the next 7 days
  • Overdue Highlighting: Automatically highlights overdue items in red

Time Tracking

  • Clock In/Out: Track time spent on tasks with 'i' (clock in) and 'o' (clock out)
  • Duration Display: See current and total time tracked per task
  • Effort Estimates: Set estimated effort (e.g., 8h, 2d, 1w)
  • Automatic Logging: All clock entries are logged in LOGBOOK drawer

Notes & Documentation

  • Rich Notes: Add detailed notes to any task with Enter key
  • Syntax Highlighting: Code blocks are automatically highlighted (supports both ```lang and #+BEGIN_SRC formats)
  • Markdown Support: Use markdown-style code blocks in your notes
  • Drawer Management: LOGBOOK and PROPERTIES drawers are automatically filtered in list view

Keybindings

Key Action
↑/k, ↓/j Navigate up/down
←/h, →/l Cycle state backward/forward
t or space Cycle TODO state
tab Fold/unfold item
enter Edit notes
c Capture new TODO
s Add sub-task
D Delete item (with confirmation)
# Add/edit tags
a Toggle agenda view
i Clock in
o Clock out
d Set deadline
p Set priority
e Set effort
r Toggle reorder mode
shift+↑/↓ Move item up/down
, Open settings
ctrl+s Save
? Toggle help
q or ctrl+c Quit

Note: All keybindings can be customized in the configuration file.

Auto-save

Changes are automatically saved when you quit the application.

Screenshots

List view

list view

Editing notes

editing

Prompts

capture delete priority

Configuration

The application can be configured using a TOML configuration file located at:

  • Linux/macOS: ~/.config/org/config.toml
  • Windows: %APPDATA%\org\config.toml

The configuration file is automatically created with default values on first run.

Configuration Structure

Tags

Define custom tags with colors:

[tags]
enabled = true
default_tag = "work"

[[tags.tags]]
name = "work"
color = "99"  # Blue

[[tags.tags]]
name = "personal"
color = "141"  # Purple

[[tags.tags]]
name = "urgent"
color = "196"  # Red

States

Customize TODO states with colors:

[states]
[[states.states]]
name = "TODO"
color = "202"  # Orange

[[states.states]]
name = "PROG"
color = "220"  # Yellow

[[states.states]]
name = "BLOCK"
color = "196"  # Red

[[states.states]]
name = "DONE"
color = "34"   # Green

Colors

Customize UI colors (using ANSI color codes):

[colors]
todo = "202"      # Orange
progress = "220"  # Yellow
blocked = "196"   # Red
done = "34"       # Green
cursor = "240"    # Gray
title = "99"      # Blue
scheduled = "141" # Purple
overdue = "196"   # Red
status = "241"    # Dark gray
note = "246"      # Light gray
folded = "243"    # Medium gray

Keybindings

Customize all keybindings (can specify multiple keys per action):

[keybindings]
up = ["up", "k"]
down = ["down", "j"]
left = ["left", "h"]
right = ["right", "l"]
cycle_state = ["t", " "]
toggle_fold = ["tab"]
edit_notes = ["enter"]
capture = ["c"]
add_subtask = ["s"]
delete = ["D"]
tag_item = ["#"]
settings = [","]
toggle_view = ["a"]
save = ["ctrl+s"]
help = ["?"]
quit = ["q", "ctrl+c"]
# ... and more

Settings UI

Press , (comma) to open the settings interface where you can:

Tags Tab

  • Add new tags with custom colors
  • Edit tag names and colors (format: name,color)
  • Delete tags with D
  • Reorder tags with shift+up/down

States Tab

  • Add new TODO states with custom colors
  • Edit state names and colors (format: name,color)
  • Delete states with D
  • Reorder states with shift+up/down (affects cycling order)

Keybindings Tab

  • View all keybindings
  • Edit keybindings (format: comma-separated keys, e.g., up,k)
  • Multiple keys can be bound to the same action

Navigation: Use left/right arrows to switch between tabs Auto-save: All changes are automatically saved to the config file

File Format

The application uses standard Org-mode file format (.org), making it compatible with Emacs Org-mode and other Org-mode tools. Tags are stored in the standard org-mode format:

* TODO Task title :work:urgent:
* DONE Completed task :personal:

License

MIT