I've used Apple Notes for years because it syncs fast and stays out of the way. But when I'm writing in the terminal, there's always been friction getting Markdown into Apple Notes.
Existing tools were either bloated or read-only. So I built Stash: push a Markdown file to Apple Notes, pull changes back. It uses YAML frontmatter to track which note belongs to which file.
Built with Bash, AppleScript, and Pandoc. No databases, no daemons, no config files. Install via Homebrew.
Happy to take suggestions and answer questions about the quirks I ran into along the way.
I love Apple Notes, but I also love writing in vim; looks like I can finally reconcile those two things thanks to your project. Nice work!
> questions about the quirks
I've used a decent amount of AppleScript to automate things on my Mac, so I know it's a powerful tool but not easy to just jump into, even when you're already familiar with that bizarre syntax. What kinds of quirks did you run into?
It's a mix of the lack of documentation for the response payloads and the integration with the shell commands. My tip would be to wrap everything in shell, handle errors on the AppleScript end, and keeping it incredibly simple.
For example, the errors raised from the AppleScript without printing the error inside a try-catch are incredibly dim. So instead I've opted to wrap them on the AppleScript level, print the error and return an empty string. Kinda reminded me of old-school shitty C code.
>Happy to take suggestions and answer questions about the quirks I ran into along the way.
Got up out of bed from doomscrolling to play with/implement this! My less-technical partner tends to reach for Apple Notes and I have offered/threatened to make something, but they've kept (begrudgingly) relaunching VSCode after a "oof, I know it was just real quick." Thanks for the inspiration/headstart.
Yea, it was a bummer they don't have access to it on the AppleScript side. I considered using an x-callback for it but it's not that stable either which is what I was going for. Maybe in the future
Oooh not yet, I've thought about it, as well as some other ideas of bulk syncing and diffs. I'd love for open issues—or better so PR's—on the repo!
What I tend to do—you can also see in the readme—is that I push it to Notes, then pull if I've made any changes. When you already have the id on the note, you can move your note anywhere you'd like (:
This is awesome! I’ve been looking for a way to batch export my notes out of Apple notes, will this work for that purpose?
I totally agree with you that most notes apps miss the mark. I’m working on one now which I hope satisfies the same requirements as Apple notes(dead simple, iCloud sync, free) but has some things I want (improved search, first class markdown support).
I’ve been using it as my daily driver for a while, but it’s not quite ready for other users yet. I wrote a bit about it in my year in review[1] under the section “Not Another Notes App!”.
Question: is there a way to make this automatic on state changes? I had an issue recently where a child accidentally overwrote my huge Apple notes and I couldn’t undo the change, or restore my history
Damn! I'm so sorry to hear that :((
Happened to me too and I also find it kinda frustrating.
As you can see on the README, my first backlog item is to add a diff mechanism. Would also love for help but either way I'm going to add it.
In the meanwhile all I can offer is to buy you a coffee and apologize <3
Even though: "Forecasts may tell you a great deal about the forecaster; they tell you nothing about the future". But historically speaking, AppleScript is pretty stable.
The big benefit is that you get to use the Apple Notes app. I prefer Apple Notes on my phone, to be honest. I haven't used Obsidian's app on iOS in over a year.
I personally put all my work-related dev notes in Obsidian, and all my life-related quick notes in Apple Notes.
Obsidian still does not support iOS widgets. I use the app, but it's honestly still a major annoyance, since I cannot add to-dos with one swipe as I would be able to do with Apple Notes.
I've used Apple Notes for years because it syncs fast and stays out of the way. But when I'm writing in the terminal, there's always been friction getting Markdown into Apple Notes.
Existing tools were either bloated or read-only. So I built Stash: push a Markdown file to Apple Notes, pull changes back. It uses YAML frontmatter to track which note belongs to which file.
Built with Bash, AppleScript, and Pandoc. No databases, no daemons, no config files. Install via Homebrew. Happy to take suggestions and answer questions about the quirks I ran into along the way.
I love Apple Notes, but I also love writing in vim; looks like I can finally reconcile those two things thanks to your project. Nice work!
> questions about the quirks
I've used a decent amount of AppleScript to automate things on my Mac, so I know it's a powerful tool but not easy to just jump into, even when you're already familiar with that bizarre syntax. What kinds of quirks did you run into?
It's a mix of the lack of documentation for the response payloads and the integration with the shell commands. My tip would be to wrap everything in shell, handle errors on the AppleScript end, and keeping it incredibly simple.
For example, the errors raised from the AppleScript without printing the error inside a try-catch are incredibly dim. So instead I've opted to wrap them on the AppleScript level, print the error and return an empty string. Kinda reminded me of old-school shitty C code.
>Happy to take suggestions and answer questions about the quirks I ran into along the way. Got up out of bed from doomscrolling to play with/implement this! My less-technical partner tends to reach for Apple Notes and I have offered/threatened to make something, but they've kept (begrudgingly) relaunching VSCode after a "oof, I know it was just real quick." Thanks for the inspiration/headstart.
That's so great to hear! I'd love to see your next project
“Fun”. In the latest MacOS, Apple Notes supports markdown export (https://support.apple.com/en-md/guide/notes/not201900c07/mac), but not through its AppleScript dictionary.
So yes, it seems you do need Pandoc to do html-to-markdown and vice versa.
Yea, it was a bummer they don't have access to it on the AppleScript side. I considered using an x-callback for it but it's not that stable either which is what I was going for. Maybe in the future
This looks cool, so obviously I have questions!
Does it support pushing to personal/home/this-is-my-note.md, or does everything wind up in the Notes root?
It appears notes have to start out externally in order to "stash pull" them, is that the case?
thanks!
Oooh not yet, I've thought about it, as well as some other ideas of bulk syncing and diffs. I'd love for open issues—or better so PR's—on the repo!
What I tend to do—you can also see in the readme—is that I push it to Notes, then pull if I've made any changes. When you already have the id on the note, you can move your note anywhere you'd like (:
How hard would it be to extend this to support bulk export of Apple Notes?
That's a great idea! Could you open an issue-or better so, PR—for this? I've had some additional backlog ideas.
Sounds very useful! Does it handle images in both directions ?
Unfortunately not yet, but that's a great idea! Could you open an issue-or better so, PR—for this?
This is awesome! I’ve been looking for a way to batch export my notes out of Apple notes, will this work for that purpose?
I totally agree with you that most notes apps miss the mark. I’m working on one now which I hope satisfies the same requirements as Apple notes(dead simple, iCloud sync, free) but has some things I want (improved search, first class markdown support).
I’ve been using it as my daily driver for a while, but it’s not quite ready for other users yet. I wrote a bit about it in my year in review[1] under the section “Not Another Notes App!”.
1. https://emmettmcdow.com/posts/2025-in-review
What an awesome project! That's a great idea and it could easily incorporate it, I'd love to help out, let's talk(:
Came here to find out exactly this!
This is an awesome tool. Would love to get started in 2026 with all my notes (without an id) being synced to a markdown folder / repo
Maybe consider a name change. There is another very popular app with the same name which does some other stuff...
I find this quite amusing
on my iphone the readme ascii art title gets truncated to just "STASI" :-)
been looking for something like this! will definitely check it out.
Great! Looking forward to getting some issues and reviews :)
I will have to try this.
Question: is there a way to make this automatic on state changes? I had an issue recently where a child accidentally overwrote my huge Apple notes and I couldn’t undo the change, or restore my history
I lost a lot of work
Damn! I'm so sorry to hear that :(( Happened to me too and I also find it kinda frustrating. As you can see on the README, my first backlog item is to add a diff mechanism. Would also love for help but either way I'm going to add it. In the meanwhile all I can offer is to buy you a coffee and apologize <3
I think the name is not unique enough
Any ideas?
Yeah there's a popular self hosted media server designed for... other purposes
Nice idea, although I fear it will break due to AppleScript. I might take some time to investigate doing it all as a Swift CLI.
Even though: "Forecasts may tell you a great deal about the forecaster; they tell you nothing about the future". But historically speaking, AppleScript is pretty stable.
How is this different to Obsidian which has a nice UI, supports importing Apple Notes and iCloud Sync works and is free.
I was about to say "Obsidian is free as long as you don't use it for work."
But it turns out that that is no longer the case. https://obsidian.md/blog/free-for-work/
Obsidian is now actually free for everyone.
The big benefit is that you get to use the Apple Notes app. I prefer Apple Notes on my phone, to be honest. I haven't used Obsidian's app on iOS in over a year.
I personally put all my work-related dev notes in Obsidian, and all my life-related quick notes in Apple Notes.
Exactly that, I completely agree. I don't want to stop using apple notes, I just want to be able to use vim as well.
Obsidian still does not support iOS widgets. I use the app, but it's honestly still a major annoyance, since I cannot add to-dos with one swipe as I would be able to do with Apple Notes.
Widgets are in the current insider build, so they should be available to everyone soon.
Awesome will try this for sure!