9

I use the current Notes app on my iOS devices. It syncs nicely to my desktop. However there I prefer to work on text files usually in the command line. Particularly I am looking for a way to export notes to a text format and to create or append a note from a text file from the command line.

Is there any information how to interact with these notes? I find it hard finding any information as the name "Notes" is so generic.

Update I found two possible ways to interact, but both turned out useless for my case:

  1. In iOS it is possible to create an action that converts notes to markdown. Unfortunately attachments get converted to links that lead nowhere. My notes contain lots of links from Safari, therefore it is not useful for me. Also wasn't able to find a way to define this action on desktop.

  2. I recalled Notes could also store in email accounts. Tried that. Turns out I can't select this destination from the sharing button. Also despite being HTML in the mail folder formatting text is no longer supported.

Description of my workflow

On desktop I do most coding in vim. This is my preferred way to edit text. Each project is managed by git. Usually in each project I have a markdown files in a folder containing ideas and notes to the code. These files I would like to make in some way available in the Notes app. I don't need to have all features of markdown, but some highlighting and inclusion of links would be nice.

On Mobile I do most research. I prefer to use the notes app as I can add text snippets and URLs quickly to any notes. So any app exporting the notes would need to reasonable export them.

Currently, I copy and paste between the two formats. This is not very satisfying. I imagine if I could get some way to import/export to the Notes app I could write scripts that would allow me to sync my local markdown notes.

4
  • please explain more details on how you work with text files from the command line Jul 28 '20 at 21:19
  • I would run nedit from the command line to edit the file. But that's not really using the command line, I'm just using an editor that is easy to access from command line.
    – Natsfan
    Jul 29 '20 at 17:31
  • 1
    You can access it via AppleScript (e.g. osascript -e 'tell application "Notes"' -e 'get get the body of the note "Thingamajigs" of the folder "Notes"' -e 'end tell'), but unfortunately even though the result is nominally in HTML format, it doesn't seem to contain the full format/link/etc info. But give it a shot and see if you get anything useful. Jul 29 '20 at 21:51
  • @GordonDavisson that seems very promising. Too bad I'm completely new with AppleScript.
    – bdecaf
    Jul 31 '20 at 9:54
1

There is an application called Note2txt which will convert your notes from the Notes app to text files. One file for each note. It creates a file for all your notes and writes them into a directory of your choice. It runs pretty quickly taking about 30 seconds for my 700+ Notes.

2
  • The note2txt app is interesting. Unfortunately it tells me it is not available in my country/region (Europe). I would need to confirm whether Safari links are properly exported. (In the plain text the note-to-markdown action produces they are unusable.)
    – bdecaf
    Jul 29 '20 at 17:17
  • interesting. Don't know why it wouldn't be available. Sorry. I didn't know that.
    – Natsfan
    Jul 29 '20 at 17:27
1

It appears that Notes are stored in a SQLite DB in the folder:

~/Library/Containers/com.apple.notes/Data/Library/Notes

The sqlite3 command is included with MacOS.

Who knows what format the notes are in -- I doubt it's markdown -- so you'll probably have to convert between this internal format and markdown. Also, there are other files in the directory that SQLite might or might not maintain and any files in the directory may be accessed at any time by the system daemons that sync things with iCloud. Not sure if SQLite supports file locking directly.

EDIT:

You seem to have found nothing in those folders. I am on Catalina, and when I look at NotesV7.storedata I see multiple tables:

ATRANSACTION        ZATTACHMENT         ZNOTEBODY           Z_MODELCACHE      
ATRANSACTIONSTRING  ZFOLDER             ZOFFLINEACTION      Z_PRIMARYKEY

And in ZNOTE I see what look like note titles and other info and ZNOTEBODY has HTML-formatted notes. So that would answer the question: it evidently stores notes internally in HTML format.

EDIT2:

OK, I only see notes in those tables that correspond to On My Mac notes, not iCloud notes.

4
  • That is a good idea, but doesn't apper to be useful for me. I investigated with SQLiteStudio. The only tables with more than one row are called ACHANGE and ATRANSACTION - and they don't hold any content - just times and indices that don't make sense to me, the stored blobs are either NULL or just 2 byte long. In frustration grepped the files for the words of a note. I also tried similar folders such as ~/Library/Containers/com.apple.Notes/Data/CloudKit and ~/Library/Containers/com.apple.Notes.datastore - so far couldn't find the location of the content.
    – bdecaf
    Jul 29 '20 at 17:14
  • @bdecaf I've edited with some more details. Works for me. Are you on MacOS Catalina?
    – Wayne
    Jul 29 '20 at 19:01
  • Must be an iCloud thing. I'm also on Catalina. I have these tables - they just contain 0 rows.
    – bdecaf
    Jul 29 '20 at 20:00
  • @bdecaf OK, I'm only seeing "On My Mac" notes in there, not "iCloud" notes. I guess iCloud Notes live in some mysterious place other than iCloud Drive. And I can't figure out where iCloud Drive exists anyhow.
    – Wayne
    Jul 29 '20 at 21:20
1

There's also the mac_apt MacOS Artifact Parsing Tool - It provdides for extraction of Notes, amoungst many other data types. The authour has also written a blog post on extracting Notes from the Notes DB.

1
  • An interesting find. Unfortunately a bit too technical to be useful for me.I worry it suffers from the same problem as the SQLite answer (the storedata file does not contain the notes). The post being from 2018 I'm uncertain how it addresses Big Sur (now) and iCloud .
    – bdecaf
    Nov 19 '20 at 8:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .