Skip to main content

A robust, fast, and feature-rich CLI for syncing Obsidian vault to Anki.

Project description

Arete (formerly o2a)

Pro-grade synchronization from Obsidian to Anki.

arete is a robust, fast, and feature-rich tool that adheres to a strict One-Way Sync philosophy: Obsidian is the Source of Truth.

graph TD
    subgraph "Obsidian Vault"
        MD["Markdown Files"]
        Media["Images/Files"]
    end

    subgraph "Sync Component (Arete)"
        CLI["Python CLI"]
        Plugin["Obsidian Plugin (GUI wrapper)"]
        Cache[("SQLite Cache")]
    end

    subgraph "Anki"
        AC["AnkiConnect / apy"]
        CollectionMedia["collection.media (Filesystem)"]
        Cards["Anki Decks"]
    end

    MD --> Plugin
    Plugin -- "Invokes" --> CLI
    CLI <--> Cache
    CLI -- "Pushes Notes" --> AC
    CLI -- "Copies Media" --> CollectionMedia
    AC --> Cards

📚 Documentation


Quick Start

1. Install CLI (Python)

Ensure you have uv installed.

git clone https://github.com/Adanato/obsidian_2_anki
cd obsidian_2_anki
uv sync

2. Install Plugin (Optional)

Download main.js, manifest.json, styles.css from Releases and place in .obsidian/plugins/obsidian-2-anki.

3. Initialize & Sync

uv run arete init   # Set up your vault path
uv run arete sync   # First sync (will scan and link cards)

Key Features

  • Fast: SQLite caching skips unchanged files, making syncs near-instant.
  • 🧹 Prune Mode: Automatically removes cards from Anki that you've deleted in Obsidian.
  • 🩹 Self-Healing: Fixes duplicate IDs or broken links automatically.
  • 📐 MathJax/LaTeX: Native protection for complex mathematical notation.
  • 📸 Media Support: Full synchronization of local images and attachments.
  • 💻 WSL Friendly: Specialized bridge for Windows Subsystem for Linux users.

License

MIT

Roadmap

  • Community Plugin: Official Obsidian Community Plugins list submission.
  • PyPI Release: Publish as obsianki via uv publish.
  • Cloud Sync: Research remote sync strategies.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arete-1.0.0.tar.gz (112.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arete-1.0.0-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file arete-1.0.0.tar.gz.

File metadata

  • Download URL: arete-1.0.0.tar.gz
  • Upload date:
  • Size: 112.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for arete-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a483b8baec7ce5458f87309ae247a8f1cd414d4e87f8ed0e2fd08cc553a62757
MD5 72bdbd0e6d7a926e8399a551da4349ab
BLAKE2b-256 5e8235bee1a1b05114bd05067c8ab76dfbcc97abddc26dff68fd44a4fc66e7f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for arete-1.0.0.tar.gz:

Publisher: release.yml on Adanato/obsidian_2_anki

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arete-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: arete-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 38.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for arete-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bef03648a87330314d828aec791fa140617f943fbb3c2d519c1d6c8a9a50fbda
MD5 5b0bfc4211355c802ab470d9a5e6a767
BLAKE2b-256 819793aaaf478deb85c98568668143b8905ca5a26b1e42912efea81493e129c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for arete-1.0.0-py3-none-any.whl:

Publisher: release.yml on Adanato/obsidian_2_anki

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page