A Clojure library to parse Org mode text into an AST (EDN data).
(require '[bzg.organ :as organ])
(organ/parse-org "* Hello\nSome *bold* text")
;; => {:type :document, :title "Untitled Document", :children [...]}
(organ/format-ast-as-edn (organ/parse-org (slurp "notes.org")))Text fields in the AST preserve raw Org markup. Rendering is left to consumers (see hop).
Filter and clean:
(-> (organ/parse-org org-string)
(organ/filter-ast {:level-limit 2 :title-pattern #"TODO"})
organ/clean-node)As a Clojure CLI dependency:
org.clojars.bzg/organ {:mvn/version "2.0.2"}Works with both Clojure and Babashka (no external deps).
~$ bb test
Set your Clojars credentials in the environment:
export CLOJARS_USERNAME=your-username export CLOJARS_PASSWORD=your-deploy-token
Build the jar and deploy:
clj -T:build deploy
To install locally instead:
clj -T:build install
To just build the jar without deploying:
clj -T:build jar
The version is set in build.clj.
- Send a bug report with
[BUG] organ: <SHORT EXPLICIT BUG DESCRIPTION> - Send a patch with
[PATCH] organ: <COMMIT SUMMARY> - Send a feature request with
[FR] organ: <FEATURE REQUEST> - Share any other question or idea
You can also send me an email and support my work on liberapay.
This project uses Intentional Versioning, here are the three audiences:
Users: Maintainers who rely on organ for their codeIntegrators: N/AMaintainers: maintainers of the codebase
If you like Clojure(script), please consider supporting maintainers by donating to clojuriststogether.org.
Copyright © 2026 Bastien Guerry
Distributed under the Eclipse Public License 2.0.