Outlining - Free Local and Powerful
Using Org-Mode Files Without The Complexity Of Emacs.

An outline-centered editor in the style of Dynalist and Workflowy, built on the robust org-mode format. Your data stays in standard .org files on your own machine — readable and editable in Emacs, any text editor, or epicorg itself.

Runs as a small local web server on your own computer — you use it through your regular web browser, the way you'd use a Jupyter notebook. Nothing is native-installed, nothing leaves your machine, and no internet connection is required.

↓ Download nightly View on GitHub
Epicorg outline view
Epicorg agenda view

Everything you need, nothing you don't.

📄

Plain org files

Your data lives in standard .org files. Open them in Emacs, edit them with any text editor, commit them to git — no lock-in.

Keyboard-first

Navigate, create, indent, move, and fold without touching the mouse. A command palette puts every action one keystroke away.

Drag-and-drop reorder

Drag any bullet to move it — the entire subtree travels with it. A drop-line shows exactly where it will land before you release.

Flexible bullet styles

Choose bullets, numbers, or letters (a–z / A–Z) globally or per depth level. Preference is saved into the org file and survives across machines.

🔍

Full-text search

Search across every org file in your workspace instantly. Jump straight to any matching item.

🔗

Wiki-links & backlinks

Type [[ in any body note to pick a note by title and insert a [[Note Title]] link. Click it in preview to navigate there. A Linked References panel at the bottom of each note shows every other note that links to it.

📅

Agenda view

All dated items sorted chronologically with overdue and today indicators — a lightweight daily agenda without leaving the browser.

🏷

Tags & bookmarks

Tag items and filter the outline by tag. Bookmark any item for instant cross-file navigation. Both can live in dedicated org files.

Fold to level

Alt+1 through Alt+9 collapses the entire outline to that depth in one keystroke. Hoist any node to focus on just that subtree.

Git-backed conflict merge

External edits are detected via SHA-256 hash and merged automatically with git merge-file. Conflicts surface as standard markers in the UI.

💾

Single binary

One Go binary embeds the entire frontend. No npm, no Node.js, no runtime dependencies. Drop it anywhere and run it.

🌎

HTML export

Export any document as a self-contained HTML file with navigation, tag filter, dark/light toggle, and your chosen bullet style and accent color.

🕐

TODO & due dates

Clickable TODO/DONE badges stored as standard org keywords. Date picker writes DEADLINE properties — fully Emacs-compatible.

Undo / redo

Document-wide undo and redo. Typing coalesces per pause so Ctrl+Z steps back at a natural granularity.

Up and running in seconds.

Download a binary

Pre-built binaries for Linux, macOS, and Windows are published automatically as nightly releases. Download the binary for your platform, make it executable, and run it.

# Linux example
chmod +x epicorg-linux-amd64
./epicorg-linux-amd64 ~/org

Opens ~/org in your browser. The directory is created if it doesn't exist.

Build from source

Go 1.21 or later required. No other build-time dependencies.

git clone https://github.com/cassiusamicus/epicorg
cd epicorg
go build -o epicorg .
./epicorg ~/org

Or try the included example: ./epicorg examples/ — opens automatically.

Standard org-mode, start to finish.

epicorg reads and writes plain .org files with no proprietary extensions. Bullet-style preferences are stored as a #+EPICORG_FORMAT: keyword so they travel with the file. When format is numbers, epicorg also writes #+STARTUP: num so Emacs org-num-mode activates automatically.

#+TITLE: My Notes
#+EPICORG_FORMAT: numbers
#+STARTUP: num

* TODO Inbox
** DONE Buy milk
  :PROPERTIES:
  :DEADLINE: <2026-04-15 Wed>
  :END:
** Write README
  Body text goes right here, under the headline.
* Projects
** Build epicorg
*** Design the API
*** Implement frontend

Fast by default.

Navigation

Move focus
New sibling itemEnter
Delete empty itemBackspace
Edit body noteShift+Enter
Return to titleEscape
Command paletteCtrl+H

Structure

Outdent (promote)Alt+←
Indent (demote)Alt+→
Move item upAlt+↑
Move item downAlt+↓

Folding

Fold / unfoldTab
Fold to level NAlt+1Alt+9

Formatting

BoldCtrl+B
ItalicCtrl+I
UnderlineCtrl+U
Undo / RedoCtrl+Z / Ctrl+Shift+Z