{"id":17602389,"url":"https://github.com/st3v3nmw/obsidian-synapse","last_synced_at":"2026-02-27T11:13:07.309Z","repository":{"id":258962091,"uuid":"801520890","full_name":"st3v3nmw/obsidian-synapse","owner":"st3v3nmw","description":"Generate flashcard answers with LLMs based on your Obsidian notes and sync them to Anki","archived":true,"fork":false,"pushed_at":"2024-10-21T08:21:33.000Z","size":83,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-24T08:02:15.584Z","etag":null,"topics":["anki","flashcards","llm","obsidian","obsidian-plugin","spaced-repetition"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/st3v3nmw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-16T11:47:56.000Z","updated_at":"2025-05-01T18:47:16.000Z","dependencies_parsed_at":"2024-10-21T11:46:29.947Z","dependency_job_id":null,"html_url":"https://github.com/st3v3nmw/obsidian-synapse","commit_stats":null,"previous_names":["st3v3nmw/obsidian-synapse"],"tags_count":0,"template":false,"template_full_name":"obsidianmd/obsidian-sample-plugin","purl":"pkg:github/st3v3nmw/obsidian-synapse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3v3nmw%2Fobsidian-synapse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3v3nmw%2Fobsidian-synapse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3v3nmw%2Fobsidian-synapse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3v3nmw%2Fobsidian-synapse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/st3v3nmw","download_url":"https://codeload.github.com/st3v3nmw/obsidian-synapse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/st3v3nmw%2Fobsidian-synapse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29892070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T09:48:51.284Z","status":"ssl_error","status_checked_at":"2026-02-27T09:48:43.992Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anki","flashcards","llm","obsidian","obsidian-plugin","spaced-repetition"],"created_at":"2024-10-22T13:08:07.239Z","updated_at":"2026-02-27T11:13:07.291Z","avatar_url":"https://github.com/st3v3nmw.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obsidian Synapse\n\nGenerate flashcard answers with LLMs based on your Obsidian notes and sync them to Anki.\n\n## Context\n\nI tried generating flashcards from my notes where the LLM generates both the questions\nand the answers. One issue with this approach is that the LLM would add questions that I didn't\ncare about, for instance the dates of historical events. Or I didn't like how it phrased the questions.\n\nOf course this can easily be fixed by reviewing the list of generated flashcards to weed out what you don't want. Or you can update your prompt to do exactly what you want. But why do that when we can create a new plugin? :)\n\nThis plugin acts as a middle ground between creating all your flashcards manually and having an LLM generate them for you. You provide the questions and the LLM generates the answers based on your notes.\n\nPlease note that this plugin is a proof of concept. I don't use it in my day-to-day. If you use the [Spaced Repetition](https://github.com/st3v3nmw/obsidian-spaced-repetition) plugin, you can try the [Obsidian Flashcards LLM](https://github.com/crybot/obsidian-flashcards-llm) plugin instead.\n\n## Setup\n\n### Anki\n\n- Install [Anki](https://apps.ankiweb.net/)\n- Install [AnkiConnect](https://ankiweb.net/shared/info/2055492159)\n    -   Add `app://obsidian.md` to the `webCorsOriginList` entry in the add-on's config (`Tools -\u003e Add-ons -\u003e AnkiConnect -\u003e Config`). It should look like this afterwards:\n\n```json\n{\n    \"apiKey\": null,\n    \"apiLogPath\": null,\n    \"ignoreOriginList\": [],\n    \"webBindAddress\": \"127.0.0.1\",\n    \"webBindPort\": 8765,\n    \"webCorsOriginList\": [\"http://localhost\", \"app://obsidian.md\"]\n}\n```\n\n- Next, create a note type called `Synapse` (`Tools -\u003e Manage Notes Type -\u003e Add`). It should have 3 fields: `Front`, `Back`, \u0026 `Topic`. It's basically, a `Basic` note with a `Topic` field to add context on which file the card was generated from.\n\nYou can use this as the template:\n\nFront:\n\n```\n\u003ci\u003e{{Topic}}\u003c/i\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n{{Front}}\n```\n\nBack:\n\n```\n{{FrontSide}}\n\n\u003chr id=answer\u003e\n\n{{Back}}\n```\n\n### Plugin\n\nInstall the plugin using [BRAT](https://github.com/TfTHacker/obsidian42-brat).\n\nIn the plugin's settings, add your [OpenRouter API Key](https://openrouter.ai/docs/api-keys).\n\nIf you wish, you can update the LLM prompt. This is the default:\n\n```\nIn one short sentence, give a concise answer to the question \"${question}\".\nFor math equations, use the format: \u003canki-mathjax\u003eequation\u003c/anki-mathjax\u003e.\nWrap code in italics \u003ci\u003ecode\u003c/i\u003e.\nDO NOT repeat the instructions or question in your answer.\nBase your answer on the following context:\n${context}\n```\n\n## Usage\n\nAdd your question as a one-line [call-out](https://help.obsidian.md/Editing+and+formatting/Callouts):\n\n```markdown\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n\n\u003e [!question] What is X?\n```\n\nClick the plugin's icon on the ribbon bar to generate and sync the flashcards to Anki. Make sure that Anki is running.\n\nDone!\n\nIf you want to regenerate the flashcards, use the `Regenerate flashcards \u0026 sync` command.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fst3v3nmw%2Fobsidian-synapse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fst3v3nmw%2Fobsidian-synapse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fst3v3nmw%2Fobsidian-synapse/lists"}