TH
thiswillbeyourgithub/py_ankiconnect
Simple ankiconnect wrapper for CLI and python use
py_ankiconnect
Minimal wrapper to simplify the usage of the awesome ankiconnect anki addon.
I made this in about an hour to make it easy to interact with anki from my many python projects (see my other repos), as well as from the command line.
Installation
python -m pip install py-ankiconnector git clone followed bypython -m pip install -e .
How To
Using the command line
- You can either call it using
py_ankiconnectorpython -m py_ankiconnect. - To see the help:
py_ankiconnect --help(this will either print it usingrichif installed or using the pager.) - Examples:
- Get the list of tags:
py_ankiconnect getTags | jq - Get info about Clozolkor:
py_ankiconnect findModelsByName --modelNames ["Clozolkor"] | jq - You can even use pipes:
py_ankiconnect findNotes --query '*test*' | jq -c '.[0:10]' | py_ankiconnect notesInfo --notes -(you have to use '-', if will be replaced by the content of sys.stdin)
- Get the list of tags:
Using python
from py_ankiconnect import PyAnkiconnect
akc = PyAnkiconnect()
# ^ You can set a different port or host there directly:
# akc = PyAnkiconnect(default_port=your_port)
# trigger a sync:
result = akc("sync")
# Get the list of all tags:
result = akc("getTags")
# Do some more advanced stuff:
akc(
action="changeDeck",
params={
"cards": [
1502098034045,
1502098034048,
1502298033753
],
"deck": "Japanese::JLPT N3"
},
)
# It supports async mode. By default it will try async or sync depending on who calls it, but you can set force_async_mode to always use async.
import asyncio
akc = PyAnkiconnect(force_async_mode=True, limit_concurrency=50)
async def main():
return await akc("getTags")
asyncio.run(main())On this page
Languages
Python100.0%
Contributors
GNU Affero General Public License v3.0
Created July 4, 2024
Updated February 2, 2026