anki-agent-toolkit 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,150 @@
1
+ Metadata-Version: 2.4
2
+ Name: anki-agent-toolkit
3
+ Version: 0.1.0
4
+ Summary: Local-first, automation-grade Anki collection management CLI
5
+ License-Expression: AGPL-3.0-or-later
6
+ License-File: LICENSE
7
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
8
+ Requires-Python: >=3.11
9
+ Requires-Dist: anki==25.9.2
10
+ Requires-Dist: keyring<26,>=25
11
+ Requires-Dist: pydantic<3,>=2.7
12
+ Requires-Dist: typer<1,>=0.12
13
+ Provides-Extra: dev
14
+ Requires-Dist: pyinstaller<7,>=6.13; extra == 'dev'
15
+ Requires-Dist: pytest<9,>=8.3; extra == 'dev'
16
+ Requires-Dist: pyyaml<7,>=6; extra == 'dev'
17
+ Requires-Dist: ruff<0.12,>=0.11; extra == 'dev'
18
+ Description-Content-Type: text/markdown
19
+
20
+ # ankicli
21
+
22
+ ![ankicli hero](docs/images/ankicli-hero.png)
23
+
24
+ Docs and product site: [takhoffman.github.io/ankicli](https://takhoffman.github.io/ankicli/)
25
+
26
+ Standalone agent skills: [agent skills](https://takhoffman.github.io/ankicli/docs/agent-skills/)
27
+
28
+ Goal-driven study: [learning plans](https://takhoffman.github.io/ankicli/docs/learning-plans/)
29
+
30
+ `ankicli` is a local-first Anki CLI for humans who want to install and supervise a safe, scriptable
31
+ control surface for agent harnesses like Claude, Codex, OpenClaw, and custom automation.
32
+
33
+ Installed by humans. Operated by agents.
34
+
35
+ Supported platforms: macOS, Windows, and Linux.
36
+
37
+ License: AGPL-3.0-or-later.
38
+
39
+ ## Why It Exists
40
+
41
+ Use `ankicli` when you want:
42
+
43
+ - a terminal-native Anki control surface that agents can drive safely
44
+ - a human-friendly install and verification path
45
+ - profile-aware local collection access
46
+ - explicit dry-run, confirmation, backup, and sync-preflight flows
47
+ - stable JSON output for automation instead of fragile desktop UI scripting
48
+
49
+ ## Install
50
+
51
+ macOS and Linux:
52
+
53
+ ```bash
54
+ curl -fsSL https://raw.githubusercontent.com/Takhoffman/ankicli/main/scripts/install.sh | sh
55
+ ```
56
+
57
+ Windows:
58
+
59
+ ```powershell
60
+ irm https://raw.githubusercontent.com/Takhoffman/ankicli/main/scripts/install.ps1 | iex
61
+ ```
62
+
63
+ Fallback package path:
64
+
65
+ ```bash
66
+ pipx install ankicli
67
+ ```
68
+
69
+ ## Verify
70
+
71
+ Run these before handing `ankicli` to an agent:
72
+
73
+ ```bash
74
+ ankicli --version
75
+ ankicli --json doctor env
76
+ ankicli --json doctor backend
77
+ ankicli --json profile list
78
+ ```
79
+
80
+ ## First Steps
81
+
82
+ Inspect the local environment and confirm the target profile before real work:
83
+
84
+ ```bash
85
+ ankicli --json profile default
86
+ ankicli --json --profile "User 1" collection info
87
+ ankicli --json --profile "User 1" search preview --kind notes --query 'deck:Default' --limit 5
88
+ ankicli --json --profile "User 1" note add-tags --id 123 --tag review --dry-run
89
+ ```
90
+
91
+ ## What You Can Do
92
+
93
+ - inspect profiles, collections, decks, models, tags, cards, and media
94
+ - search and preview notes/cards before changing anything
95
+ - mutate notes and card state with explicit dry-run and confirmation paths
96
+ - create local backups and run explicit restore flows
97
+ - inspect auth state and run sync preflight before real sync work
98
+ - run local tutor-style study sessions from the terminal
99
+
100
+ ## Safety Defaults
101
+
102
+ - Prefer `--json` for scripts and agents.
103
+ - Use `--dry-run` first on write-capable commands.
104
+ - Prefer `--profile` for normal local usage and `--collection` for explicit low-level targeting.
105
+ - Use `sync status` as the safe preflight before running a real sync.
106
+ - Sync is not backup. Use `backup create` or the built-in auto-backup flow when rollback matters.
107
+ - Riskier local `python-anki` writes create an automatic pre-mutation backup unless you pass
108
+ `--no-auto-backup`.
109
+ - Real `note delete`, `card suspend`, and `card unsuspend` require `--yes`.
110
+
111
+ ## Docs
112
+
113
+ - Product site: [takhoffman.github.io/ankicli](https://takhoffman.github.io/ankicli/)
114
+ - Agent skills: [agent skills](https://takhoffman.github.io/ankicli/docs/agent-skills/)
115
+ - Learning plans: [learning plans](https://takhoffman.github.io/ankicli/docs/learning-plans/)
116
+ - Recipes: [recipes](https://takhoffman.github.io/ankicli/docs/recipes/)
117
+ - CLI guide: [cli guide](https://takhoffman.github.io/ankicli/docs/cli-guide/)
118
+ - Common tasks: [common tasks](https://takhoffman.github.io/ankicli/docs/common-tasks/)
119
+ - Quickstart: [quickstart](https://takhoffman.github.io/ankicli/docs/quickstart/)
120
+ - Install guide: [install](https://takhoffman.github.io/ankicli/install/)
121
+ - Profiles and collections: [profiles and collections](https://takhoffman.github.io/ankicli/docs/profiles-and-collections/)
122
+ - Sync and backups: [sync and backups](https://takhoffman.github.io/ankicli/docs/sync-and-backups/)
123
+ - Study mode: [study](https://takhoffman.github.io/ankicli/docs/study/)
124
+ - Troubleshooting: [troubleshooting](https://takhoffman.github.io/ankicli/docs/troubleshooting/)
125
+
126
+ Every major docs page is designed to be readable by humans and easy to copy into an LLM chat.
127
+
128
+ ## License
129
+
130
+ `ankicli` is licensed under `AGPL-3.0-or-later`. It depends on the upstream Anki runtime, which is
131
+ also AGPL-licensed. See [LICENSE](/Users/thoffman/ankicli/LICENSE).
132
+
133
+ ## For Contributors And Advanced Backend Work
134
+
135
+ The top-level README is intentionally product-oriented. Contributor and backend-contract detail still
136
+ exists, but it lives in deeper docs and repo files:
137
+
138
+ - CLI and backend contract: [`docs/spec.md`](/Users/thoffman/ankicli/docs/spec.md)
139
+ - Release/install workflows: [product site](https://takhoffman.github.io/ankicli/)
140
+ - Source and workflows: [repository](https://github.com/Takhoffman/ankicli)
141
+
142
+ Common contributor commands:
143
+
144
+ ```bash
145
+ uv sync --extra dev --frozen
146
+ PYTEST_PLUGINS=ankicli.pytest_plugin uv run pytest -c pyproject.toml -m "unit or smoke" --proof-report /tmp/ankicli-proof-report.json
147
+ uv run ruff check .
148
+ uv build
149
+ uv run pytest -m distribution
150
+ ```
@@ -0,0 +1,23 @@
1
+ ankicli/__init__.py,sha256=MBuf1Qb991QenBBPRwZTc1ivQHU5MJm0pn5SWQ2cxCA,74
2
+ ankicli/main.py,sha256=XYHN3Z9SdJ57OuhFauVC6OFK0Vx6KnZ4VcGo6fLmJcg,51880
3
+ ankicli/pytest_plugin.py,sha256=28UAf6_X9r4sGLSSzxSCiA8T7Spwc85qX4T_TeReaXk,3388
4
+ ankicli/runtime.py,sha256=jThMLZnIaqOCmbTQwQVj3ml3MWaES3imFQToTimmwLs,4579
5
+ ankicli/app/catalog.py,sha256=RKjCqJvb7EGdbyGU8hjB67kN1_mM7PvONBY8Wdn2-sg,43980
6
+ ankicli/app/credentials.py,sha256=RDpITdgEb0-Fw3BIVuC7I9_fnfhCxN7Dww69bT1pDno,12565
7
+ ankicli/app/errors.py,sha256=9MtzJ8xyh-BiksyRvDvm9IWIlptmLYkaaH3pevGh6FM,3237
8
+ ankicli/app/ios_audio_migration.py,sha256=ROsGWuKn38kUKSnZyOQF06T1J8iagEh_w3Rfx69DG8w,22527
9
+ ankicli/app/models.py,sha256=2_ZRifwEP8v1QlN0jSq5VgrtDpwgR0lEJOY-4DPadLM,1284
10
+ ankicli/app/output.py,sha256=9_CBq_zbHJh8m3Sjv4R8Kki6lIZdGDYtcQOKn8zIa6Q,1172
11
+ ankicli/app/profiles.py,sha256=dR_TDI_rrA9mLT_KI3b1jic142JWzmHh453Ms8AuGHs,5640
12
+ ankicli/app/quality_matrix.py,sha256=Ik0_WWxaKtcwvDt6AhrkIBQ7uf85jLlJVGSrn61Cqs8,30887
13
+ ankicli/app/releases.py,sha256=oeTlxacauy3nNmhnzW_5UWTu7gr1g1hqCsAq4Oq3Ulk,1456
14
+ ankicli/app/services.py,sha256=sDwaSw2Io3IRUleVX9C_qf3df8R1kn-SvcxPZn0wgo0,63400
15
+ ankicli/app/study.py,sha256=tKx3n5NIM2zt6z7jY21G78S628JOiv8V5su2EzWhNuQ,52529
16
+ ankicli/backends/ankiconnect.py,sha256=Xk0oTApJ7iXJ5UHPWX5r3chUpW4ipDFYPbEpUbDzCY4,21650
17
+ ankicli/backends/base.py,sha256=SCYsvqupQZoNu4kEHOIyosqjDg5jMZ0t5VmwhhK-lyo,7935
18
+ ankicli/backends/python_anki.py,sha256=Ap9WtyyKbxH1QTjmXCoZ4xwNhBy0FpbVc0DdR6WKrgY,63090
19
+ anki_agent_toolkit-0.1.0.dist-info/METADATA,sha256=hrS4sB0_3KQMis8A5zcdVZ0M7K2El5oBW_lMgq2hyXE,5564
20
+ anki_agent_toolkit-0.1.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
21
+ anki_agent_toolkit-0.1.0.dist-info/entry_points.txt,sha256=rS5WVyPO6uT9TmvEGUaSLst8hXi9CLgwNXZcekrPIjQ,45
22
+ anki_agent_toolkit-0.1.0.dist-info/licenses/LICENSE,sha256=W3CLvDwrYdpWB2Gj7TCtfewPryux4v2K7ZYkvF3f4Ak,573
23
+ anki_agent_toolkit-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ ankicli = ankicli.main:run
@@ -0,0 +1,17 @@
1
+ GNU AFFERO GENERAL PUBLIC LICENSE
2
+ Version 3, 19 November 2007
3
+
4
+ SPDX-License-Identifier: AGPL-3.0-or-later
5
+
6
+ Copyright (C) 2026 ankicli contributors
7
+
8
+ This repository is licensed under the GNU Affero General Public License,
9
+ version 3 or, at your option, any later version.
10
+
11
+ `ankicli` depends on and distributes the upstream Anki runtime, which is
12
+ licensed under the GNU Affero General Public License, version 3 or later.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see:
16
+
17
+ https://www.gnu.org/licenses/agpl-3.0.txt
ankicli/__init__.py ADDED
@@ -0,0 +1,6 @@
1
+ """ankicli package."""
2
+
3
+ __all__ = ["__version__"]
4
+
5
+ __version__ = "0.1.0"
6
+