shuka
4 days ago
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.
nozzlegear
4 days ago
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?
shuka
a day ago
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.
nemosaltat
3 days ago
>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.
shuka
a day ago
That's so great to hear! I'd love to see your next project
Someone
3 days ago
“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.
shuka
a day ago
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
happyopossum
3 days ago
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!
shuka
a day ago
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 (:
angst_ridden
4 days ago
How hard would it be to extend this to support bulk export of Apple Notes?
shuka
a day ago
That's a great idea! Could you open an issue-or better so, PR—for this? I've had some additional backlog ideas.
d4rkp4ttern
3 days ago
Sounds very useful! Does it handle images in both directions ?
shuka
a day ago
Unfortunately not yet, but that's a great idea! Could you open an issue-or better so, PR—for this?