New note-taking workflow with Emacs Org-mode

The new workflow looks like it works better for me. Or rather, it’s an old workflow with new tools. Now, instead of using Windows Live Writer or ScribeFire to post my notes directly to my blog, I’m back to using M-x remember and Emacs, keeping a superset of my notes in text files and publishing selected parts of it.

  • The new workflow
    • M-x remember saves quick notes into a large text file (~/personal/, possibly with tags, with diagrams inserted later.
    • I regularly review and file items into the appropriate sections of ~/personal/
    • I post selected items to my blog using C-u M-x org2blog-post-subtree, scheduling them by adding a timestamp or using the C-c C-s (org-schedule) command.

    I sometimes use Microsoft OneNote on my new tablet to take notes during meetings, but it’s easy enough to convert my handwriting to text and paste it into my Org-mode file. I still have to think of a better way to refer to images while keeping my file manageable, but a filename is probably okay.

  • A worked example

    This is being composed in a M-x remember window. (Well, remember is bound to C-c r on my system, so it’s easy to invoke).

    After I finish braindumping, I’ll use C-c C-c to save it somewhere.

    I may schedule the post immediately (C-c s (org-schedule) and then C-u M-x org2blog-post-subtree), or tag it for later review. (:toblog: – ready to go, but not scheduled? :rough: – needs more thinking?)

    When I review the items, I’ll copy this into the Geek – Emacs section of my

    It feels nice having my notes in plain text, and being able to organize it in more than just chronological order…

  • The history

    From 2001 to about 2006, I kept an Emacs Planner wiki with all of my notes in it. Emacs Remember let me write notes that were automatically hyperlinked to whatever I was looking at, and I added code to Planner that made it easy for me to file the notes both chronologically and topically. Planner rocked. I loved being able to easily hyperlink between topics, and the wiki structure kept pages a mostly manageable size. (My public Planner files are still on the Net, but I need to regenerate the index or enable directory lists so that they’re usable.)

    When I moved to WordPress as a blogging platform in order to make it easier for people to leave comments, I hacked around with RSS to import my posts from Planner into WordPress (ex: Moving to WordPress meant a change in my workflow. I now had two places to store my notes: Planner and my blog.

    I tried Emacs Org because I liked the way it organized information. In Planner, we’d been struggling with elegant ways to manage tasks and notes that needed to be accessed in multiple contexts. The approach we had taken in Planner was to make copies of the information, but Org had a cleaner way to do it using different views. It was intriguing.

    When I started working at IBM, however, my information workflow diverged. I shifted to using a web-based to-do list and Lotus Notes, posting on an internal blog and an external one, and managing multiple sources and repositories of information.

    I wanted to go back to keeping my notes in plain text, encrypted if necessary, and to have a place where I could keep notes that might not be publishable. I still had to manage multiple computers, but synchronizing systems like Dropbox or SpiderOak got rid of some of the hassles I’d encountered with git. When I found out about org2blog thanks to a test link from punchagan, I modified the code to work with subtrees instead of new buffers, and that solved the blog publishing part of it.

One Pingback/Trackback

  • Hi Sacha. Why do you use remember, but not the new org-capture?

  • Aha! That is because I was an old fogey who didn’t know about org-capture. I will now go and check that out.

    (I love it when I post something and someone suggests an even better way to do things… Thanks, Pavel!)

  • Sacha,
    I just had to leave a comment for you. Your blog immediately persuaded me that you are a delightful person. I found it by searching on “emacs organize”. I’m learning to be a web developer and one of the tools I’m learning to master is Emacs. I will try out Emacs Org-mode immediately.

    Thank you for your blog and the way you are sharing your self!

  • Craig: How wonderful! Emacs is a very deep, very powerful tool. I’ve got plenty of blog posts about that, so feel free to go through my archive .You might also really like the Emacs Wiki and Planet Emacsen. Good luck, and have tons and tons of fun!

  • I’ve spent the last week reworking my workflow as well and found the following tutorial a goldmine of tweeks and code snippets for org-mode:

    Until a week ago I hadn’t heard of capture-mode either but it’s really powerful. I especially like the approach used in the link above where he has all captured TODO and NOTES saved to a singe file and then once a week you refile items to different files and subtrees using C-c C-w.

    I was a diehard Planner-Muse person for a long time. But with a few tweaks you can get org-mode to behave a lot like muse (especially being able to follow links by hitting return). It was a bit of a pain to convert all of my planner day pages (well over 600) to org-mode but since then it’s all been smooth sailing.

  • Oh, how wonderful! Thank you for sharing that! =)

    I’m looking forward to tweaking my workflow based on those suggestions. I do the once-a-week refiling and reorganizing too, although I make a copy of the notes in a chronological archive before doing so, and I’m currently working with just one big outline master file. I’ll keep people posted – it seems to be the best way to hear about even awesomer ways to do things! ;)

  • Having switched from remember-mode to org-capture, I noticed no changes or improvements. In the future, when org-capture matures, it’s functionality might change, making it better fit for org-mode, but as yet, the differences with remember-mode are minimal. So, I see no reasons to leave remember-mode except for simple curiosity.

  • Dmitri: I’m curious about the ability to clock into a task, and I wonder if that will let me capture the total time it takes for me to write something. I could do the same with hooks and remember, of course. The other feature that might be interesting for people is the ability to quickly refile notes with C-c C-w (refiling in Org is pretty powerful). In my current workflow, I refile notes once a week so that I can keep a weekly archive, but the refiling org-capture might be handy for people who file right away.

  • I rarely, if ever, use the clocking features of Org-mode and do not know whether it works with Remember. As for refiling, it was available in some form even in Remember-mode. So, pressing C-1 C-c C-c allows you to select the file and the header under which the note should be filed.

  • rjh

    Don’t overlook the date-tree option. It’s much tidier with the “capture” implementation. A lot of crufty lisp got fixed. I find that I have a mix of random notes (that I just dump into one place for re-filing) and date-tree’s that are excellent for capturing meeting minutes. With capture, I can do both at once without too many problems. I have files for meeting minutes, and the refile for the rest.

    Also worth noticing are the improvements for agenda display. I recently noticed that I can control when a todo item shows up in the agenda. So for some I can say “start showing this 5 days before it is due” while others can be “show this the day before it is due”. The “habit” module is also rather nice for reinforcing habits that you are trying to build.

    I switched from planner/muse about a year and a half ago when they got the tagging and links sufficiently fixed to be useable. Planner/muse was causing lots of git breakage. The improvements since then have been really nice.

    For some cuteness, look at:

  • Hmm, date-tree looks like a great fit for the weekly archiving of my entries. I copy the entries into a date-tree-ish thing, and then copy them into the right places in my If I get it to automatically make a copy of my entries in a date tree at the end of the week, that would be pretty cool…

  • Great! Thanks for posting your workflow. I’m presently using a similar workflow, though I don’t write as much as you do. :P

    Thanks again for the org2blog-post-subtree function. :) I love the way the Open source community works!

  • hmw


    I recently switched from planner mode to org mode. And as Brad Collins mentioned I too searched for a way to bring all the information from several thousand planner files into something usable with org mode. I ended up with a perl script that converts the project pages and some perl one liners and regexps that grep all the information, mostly notes, that is only available on the day pages. As a result my org mode directory contains much less files with hopefully the same information than my planner mode directory did.


  • Pingback: org-mode + wordpress = org2blog awesomeness at rlazo's blog()

  • Joe

    Hi Sacha,
    first of all i would like to thank you for that wonderful blog.
    I have one question – what solution do you use to encrypt plain text files ?


  • Emacs has pretty good support for GPG encryption, and can decrypt and re-encrypt files on the fly. Check out the options on EmacsWiki!

  • Chia-Hua Yu

    Hello Sacha,
    First of all, happy birthday!

    I’ve been reading your blog articles on Org-mode and I’ve benefitted greatly. I’m trying to grasp your note taking system. I really like Org for managing my GTD lists, but I was wondering about using Org as your “reference library”. I’d found myself going back to Evernote for meeting notes and reference notes, mainly for the easy search function.
    I was curious if there was a trick that you use for easy searching in Emacs, esp for a bigger project for which there is an ever growing amount of meeting notes.


    • Incremental search (C-s isearch-forward) plus keeping my notes organized (M-x org-refile, or C-c C-r) have met most of my needs, although there are some specialized Org commands for searching subtrees too. =)