A simple orgmode editor inspired by nano and k9s
Find a file
2025-11-08 23:21:30 +00:00
.github/workflows fix: enabling building for BSD people (#2) 2025-11-08 20:19:24 +00:00
.imgs chore: update readme with settings screenshots (#5) 2025-11-08 22:53:47 +00:00
cmd/org fix: custom states not parsed correctly has been fixed (#4) 2025-11-08 22:21:00 +00:00
internal move latex junk to another file 2025-11-08 23:21:30 +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 chore: update readme with settings screenshots (#5) 2025-11-08 22:53:47 +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

Settings

tags states keybinds

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