Skip to content
Doom Emacs · Org-mode · Denote

doomemacs-config

A house to write, think, and return to. Agents open the same Org files and leave traces of their work beside the human’s plans. The editor is not replaced by an agent: it becomes the meeting point between their work.

Code and usage Steward's report · 한국어

An agent writing for me is not the same as making writing comfortable

Connecting notes, reading books, writing Korean, entering equations: even when an agent can produce a document, the comfort of following a thought with your own hands is a separate concern. A human editor remains at the centre of this configuration.

Built on Doom Emacs, it brings Org-mode and Denote together with Korean input, Evil keybindings, search, citations, and terminals. GUI and TTY are both daily working surfaces, without pretending that remote clipboard transport or image support is identical everywhere. This is a public example of interfaces repaired through long use, not a turnkey distribution to copy unchanged.

Human and agent work on one timeline

lisp/workflow-shared.el is the data contract shared by the user’s Emacs, the agent RPC daemon, and the export daemons. Tags, TODO states, agenda files, and attachment paths must not work correctly only in the GUI. Themes and keybindings may differ; the rules for reading and writing the same records must agree.

The working surfaces are separated: user is the GUI editor, pi is full Doom shared by multiple TTY clients, and server is the agent RPC daemon. Here, pi is an Emacs socket name, not a Pi agent identity. Separate daemons isolate execution; they do not automatically coordinate concurrent edits to the same Org file.

From files to a garden, and back to thought

Org · Denote → ox-hugo Markdown export → Quartz digital garden
      ↑                                         ↓
 Next human and agent work ← retrieval followed by source reading

This house also owns the note-export pipeline. Emacs daemons convert Org to Markdown; link, figure, and content checks support publication to the digital garden. ox-hugo owns conversion; Quartz in the separate garden repository owns publication. Published tags pass through the vocabulary defined by meta notes, rather than an arbitrary allowlist.

geworfen brings the same agenda into the browser as a public timeline. The website and the retrieval engine live in their own repositories.

What the neighbours own

  • agent-config keeps shared skills and working principles across harnesses. This house provides the Emacs functions those skills can call.
  • Entwurf opens independent sibling sessions and delivers messages by garden id. The ghostel/tmux surface here can hold those sessions without taking ownership of their authentication, transcripts, or delivery.
  • andenken retrieves earlier decisions from conversations and public garden writing. This house owns the Org sources and garden export; a retrieval index does not become the owner of memory.

Inside Emacs, gptel-agent, pilish (a Pi RPC client), and agent-shell (an ACP client) offer additional working surfaces. Not every sibling has to move inside an Emacs buffer. Attaching to tmux through ghostel lets the human return to terminal sessions running independently of Emacs.

Boundaries that make a long-lived house maintainable

config.el stays a loader; concerns live in separate lisp/ modules. Pure logic is tested without Doom under emacs -Q where possible. Keybindings layer individual keys onto Doom’s existing prefix maps instead of replacing entire groups. When upstream changes, this configuration adapts first. The rule is executable: test-keybinding-lint.el rejects named-prefix forms that would replace an existing map.

Current Neomacs validation and workarounds belong to neomacs-config. This repository retains a minimal comparison profile and reproducible probes that run under both Neomacs and GNU Emacs.

This page is the front door. The README owns installation, commands, and current implementation; the steward’s report keeps dated judgments and boundaries in Korean. Rather than copying operational logs onto the homepage, each surface links to the place where its record lives.