intellectronica/agent-skills/anki-connect
Claude Code and agent skill by intellectronica/agent-skills
- community
Checking that the SKILL.md file is still in the repository.
This skill is for interacting with Anki through AnkiConnect, and should be used whenever a user asks to interact with Anki, including to read or modify decks, notes, cards, models, media, or sync operations.
Install
npx vskill@latest install intellectronica/agent-skills/anki-connectSKILL.md
AnkiConnect
Overview
Enable reliable interaction with Anki through the AnkiConnect local HTTP API. Use this skill to translate user requests into AnkiConnect actions, craft JSON requests, run them via curl/jq (or equivalent tools), and interpret results safely.
Preconditions and Environment
- If Anki is not running, launch Anki, then wait until the AnkiConnect server responds at
http://127.0.0.1:8765(default). Verify readiness using curl, e.g.curl -sS http://127.0.0.1:8765should returnAnki-Connect.
Safety and Confirmation Policy (Critical)
CRITICAL — NO EXCEPTIONS
Before any destructive or modifying operation on notes or cards (adding, updating, deleting, rescheduling, suspending, unsuspending, changing deck, or changing fields/tags), request confirmation from the user. Use the AskUserQuestion tool if available; otherwise ask via chat. Only request confirmation once per logical operation, even if it requires multiple API calls (e.g., search + update + verify). Group confirmation by intent and scope (e.g., “Update 125 notes matching query X”).
Treat the following as confirmation-required by default:
- Notes:
addNote,addNotes,updateNoteFields,updateNoteTags,updateNote,updateNoteModel,deleteNotes,removeEmptyNotes,replaceTags,replaceTagsInAllNotes,clearUnusedTags. - Cards:
setEaseFactors,setSpecificValueOfCard,suspend,unsuspend,forgetCards,relearnCards,answerCards,setDueDate,changeDeck. - Deck or model modifications that materially change cards/notes (deck deletion, model edits). Ask even if the action is not explicitly listed above.
API Fundamentals
Request Format
Every request is JSON with:
action: string action nameversion: API version (use6unless user specifies otherwise)params: object of parameters (optional)
Response Format
Every response is JSON with:
result: return valueerror:nullon success or a string describing the error
Always check error before using result.
Permissions
- Use
requestPermissionfirst when interacting from a non-trusted origin; it is the only action that accepts any origin. - Use
versionto ensure compatibility; older versions may omit theerrorfield in responses whenversion≤ 4.
curl + jq Patterns
Prefer jq to build JSON and parse responses. Keep requests explicit and structured.
Minimal request template
With params
Handling result/error
Batching multiple actions
Use multi to reduce round-trips and to group actions under a single confirmation when modifying data.
Replace the empty array with the result of the previous action when chaining; in CLI usage, split into two calls unless using a scripting language.
Core Workflow Guidance
1) Verify connectivity and version
- Call
requestPermission(safe). - Call
versionto confirm the API level and useversion: 6in requests.
2) Discover supported actions
- Use
apiReflectwithscopes: ["actions"]to list supported actions. - Use this list to map user intent to action names.
3) Resolve user request into action sequence
- Identify read-only vs destructive operations.
- For destructive/modifying operations on notes/cards, request confirmation once with the scope and count.
- Prefer
findNotes/findCards+notesInfo/cardsInfofor previews before modification.
4) Execute and validate
- Execute the call(s) in order.
- Check
errorfor each response. - Report summarized results and any IDs returned.
Common Task Recipes (CLI-Oriented)
List decks
- Action:
deckNames
Create deck
- Action:
createDeck - Confirmation required if the deck is being created as part of a card/note modification workflow.
Search notes / cards
- Actions:
findNotes,findCards - Use Anki search syntax (see “Search Syntax Quick Notes” below).
Preview note data
- Action:
notesInfo(note IDs)
Add notes
- Actions:
addNote,addNotes - Confirmation required.
- Use
canAddNotesorcanAddNotesWithErrorDetailfor preflight checks.
Update note fields or tags
- Actions:
updateNoteFields,updateNoteTags, or combinedupdateNote - Confirmation required.
- Warning: Do not have the note open in the browser; updates may fail to apply.
Delete notes
- Action:
deleteNotes - Confirmation required.
Suspend/unsuspend cards
- Actions:
suspend,unsuspend - Confirmation required.
Move cards to a deck
- Action:
changeDeck - Confirmation required.
Set due date or reschedule
- Action:
setDueDate - Confirmation required.
Media upload/download
- Actions:
storeMediaFile,retrieveMediaFile,getMediaFilesNames,getMediaDirPath,deleteMediaFile - Use base64 (
data), file path (path), or URL (url) for upload.
Sync
- Action:
sync
Search Syntax Quick Notes (for findNotes/findCards)
- Separate terms by spaces; terms are ANDed by default.
- Use
or, parentheses, and-for NOT logic. - Use
deck:Name,tag:tagname,note:ModelName,card:CardName. - Use
front:...or other field names to limit by field. - Use
re:for regex,w:for word-boundary searches,nc:to ignore accents. - Use
is:due,is:new,is:learn,is:review,is:suspended,is:buriedto filter card states. - Use
prop:searches for properties like interval or due date. - Escape special characters with quotes or backslashes as needed.
Action Catalog (Use as a mapping reference)
Card Actions
getEaseFactorssetEaseFactorssetSpecificValueOfCardsuspendunsuspendsuspendedareSuspendedareDuegetIntervalsfindCardscardsToNotescardsModTimecardsInfoforgetCardsrelearnCardsanswerCardssetDueDate
Deck Actions
deckNamesdeckNamesAndIdsgetDeckscreateDeckchangeDeckdeleteDecksgetDeckConfigsaveDeckConfigsetDeckConfigIdcloneDeckConfigIdremoveDeckConfigIdgetDeckStats
Graphical Actions
guiBrowseguiSelectCardguiSelectedNotesguiAddCardsguiEditNoteguiAddNoteSetDataguiCurrentCardguiStartCardTimerguiShowQuestionguiShowAnswerguiAnswerCardguiUndoguiDeckOverviewguiDeckBrowserguiDeckReviewguiImportFileguiExitAnkiguiCheckDatabaseguiPlayAudio
Media Actions
storeMediaFileretrieveMediaFilegetMediaFilesNamesgetMediaDirPathdeleteMediaFile
Miscellaneous Actions
requestPermissionversionapiReflectsyncgetProfilesgetActiveProfileloadProfilemultiexportPackageimportPackagereloadCollection
Model Actions
modelNamesmodelNamesAndIdsfindModelsByIdfindModelsByNamemodelFieldNamesmodelFieldDescriptionsmodelFieldFontsmodelFieldsOnTemplatescreateModelmodelTemplatesmodelStylingupdateModelTemplatesupdateModelStylingfindAndReplaceInModelsmodelTemplateRenamemodelTemplateRepositionmodelTemplateAddmodelTemplateRemovemodelFieldRenamemodelFieldRepositionmodelFieldAddmodelFieldRemovemodelFieldSetFontmodelFieldSetFontSizemodelFieldSetDescription
Note Actions
addNoteaddNotescanAddNotescanAddNotesWithErrorDetailupdateNoteFieldsupdateNoteupdateNoteModelupdateNoteTagsgetNoteTagsaddTagsremoveTagsgetTagsclearUnusedTagsreplaceTagsreplaceTagsInAllNotesfindNotesnotesInfonotesModTimedeleteNotesremoveEmptyNotes
Statistic Actions
getNumCardsReviewedTodaygetNumCardsReviewedByDaygetCollectionStatsHTMLcardReviewsgetReviewsOfCardsgetLatestReviewIDinsertReviews
Notes and Pitfalls
- Keep Anki in the foreground on macOS or disable App Nap to prevent AnkiConnect from pausing.
- When updating a note, ensure it is not being viewed in the browser editor; updates may not apply.
importPackagepaths are relative to the Ankicollection.mediafolder, not the client.deleteDecksrequirescardsToo: trueto delete cards along with decks.
Resources
No bundled scripts or assets are required for this skill.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/anki-connect/SKILL.md
Popularity
- Repository stars
- 231
- Repository forks
- 18
- 7-day trend score
- 27
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 28 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/intellectronica/agent-skills/anki-connect)