DeckOps solves this with true bidirectional sync. Edit in either place, sync in both directions. Each deck is one Markdown file. Syntax highlighting and other Markdown features are supported.
It works by embedding Anki's native IDs as HTML comments (`<!-- card_id: 1770487991522 -->`). This tracks identity, detects moves between decks, handles deletions, and resolves conflicts (last-sync-wins). Git auto-commits before every sync.
Workflow:
1. Edit/create/move/delete cards in Markdown
2. `deckops ma` (ma = markdown_to_anki)
3. Edit/create/move/delete and study cards in Anki
4. `deckops am`
5. Repeat
Safe to use with existing collections (only touches DeckOps note types). Available via `pipx install deckops`.