Show HN: Cc-md – Zero-cost Obsidian sync across iPhone, Mac, and GitHub
github.comHere's something I realized: the most AI-native knowledge base isn't a SaaS product with an API. It's a folder of markdown files on your disk.
Obsidian stores everything as plain .md files. That means Claude Code (or any AI tool) can grep, read, write, and traverse your entire knowledge base with zero setup. No API keys. No OAuth. No middleware. Just local file I/O.
The only missing piece was sync. I wanted my vault on iPhone (iCloud), on Mac (local), and on GitHub (backup + version history) — without paying $4/mo for Obsidian Sync.
cc-md is ~400 lines of bash. iCloud handles Apple device sync in seconds. A launchd job runs git add/commit/push every 5 minutes. That's it.
One command to install:
bash <(curl -sL https://raw.githubusercontent.com/yuukiLike/cc-md/main/insta...)
The installer auto-discovers your vault, inits git, creates a GitHub repo (if you have gh CLI), and starts syncing. Zero prompts in the best case.
I built this in a weekend, solo, with AI assistance from first line to last. A year ago I couldn't have shipped this. Now I can.
I feel genuinely lucky to be alive in the AI era. It's making childhood
dreams come true — one project at a time. Interesting - I think this can go with Voiden. We are an offline API Client built around Markdown Try it here : https://voiden.md/ Thanks for the reply — first time posting on HN, so this really means a lot. Just checked out Voiden. Same philosophy, different layer: plain text, git-native, composable. You made API requests executable Markdown. We made dev workflows executable Markdown. I'm also building a cross-platform `.md` viewer (Tauri + Mermaid). All-in on this format. I think `.md` is quietly becoming an *interactive runtime* — not just docs. Your work is proof of that. Excited to see where this direction goes. If there's ever a way I can help or collaborate, I'm all in. What a time to be building. Let's see what unfolds. Can you explain how you achieved it? I don't find it in your repo, I am too tired probably? However, I tried something different but stuck eventually with the receiving part on Android. One cannot just pull files from somewhere and put them into the Obsidian folder. I mean, not without efforts. Thanks for being my very first HN reply — genuinely appreciate it. The short answer: I cheated by staying in the Apple ecosystem. The sync has two layers: - *macOS ↔ iOS*: iCloud handles it natively. Obsidian's iCloud vault is just a folder, both devices read/write the same files, syncs in seconds.
- *macOS ↔ GitHub*: A launchd job runs `git add + commit + pull --rebase + push` every 5 minutes. That's the entire mechanism — it's in `scripts/sync.sh`. So there's no magic — iCloud does the heavy lifting for mobile, Git handles versioning and cross-platform backup. Your Android problem is real and hard. Android doesn't give apps transparent filesystem access the way iCloud vaults work on iOS. I haven't solved that yet. The closest path I can think of: Termux + git clone + symlink into Obsidian's storage, but that's far from "zero effort." This is worth thinking about more deeply. If I find a clean solution, I'll come back and share it here.