К основному содержанию
скилл CX Codex

anki-connect — скилл для Claude Code: что делает и как установить

Скилл связывает ИИ-агента с десктопным приложением Anki через локальный API. Он помогает искать колоды, добавлять заметки и управлять карточками.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add intellectronica/agent-skills --skill anki-connect -a claude-code
Открыть на GitHub

Что делает anki-connect

Скилл переводит команды пользователя в HTTP-запросы к локальному сервису AnkiConnect на порту 8765. Агент формирует JSON-полезную нагрузку с версией API 6 и отправляет её через curl и jq. Поддерживается чтение колод, поиск карточек по синтаксису Anki, добавление медиафайлов и пакетное выполнение действий через метод multi.

В скилле действует строгое правило безопасности. Перед любым изменением, удалением, сбросом расписания или сменой колоды агент обязан запросить подтверждение пользователя через AskUserQuestion или в чате. Запрос делается один раз на всю логическую операцию с указанием объёма изменений.

Для работы требуется запущенный десктопный Anki с активным расширением AnkiConnect. Изменение полей или тегов карточки сорвётся, если эта заметка открыта прямо сейчас в окне браузера самой программы.

Какие задачи решает

  • найти забытые или просроченные карточки в колоде
  • добавить новые заметки и теги без ручного ввода в приложении
  • проверить список колод и запустить синхронизацию
  • пакетно перенести карточки в другую колоду

Примеры запросов агенту

  • Найди все карточки с тегом verbs в колоде French и покажи их поля
  • Добавь новую заметку в колоду English со словом resilient и примером использования
  • Проверь статус синхронизации и покажи список доступных колод

Как установить anki-connect

1Через Skills CLI (Vercel)

npx skills add intellectronica/agent-skills --skill anki-connect -a claude-code

2Вручную: положить файлы

~/.claude/skills/anki-connect/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/anki-connect/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о anki-connect

Как установить anki-connect в Claude Code?

Выполните команду npx skills add intellectronica/agent-skills --skill anki-connect -a claude-code в терминале. Файл навыка сохранится по пути ~/.claude/skills/anki-connect/SKILL.md.

Что делает anki-connect?

Скилл отправляет структурированные JSON-запросы к локальному API AnkiConnect через curl и jq. С его помощью агент читает колоды, ищет карточки, создаёт заметки и загружает медиафайлы.

Что нужно запустить перед началом работы со скиллом?

Необходимо запустить десктопный Anki с установленным дополнением AnkiConnect, слушающим порт 8765. Если программа закрыта, агент не сможет подключиться к локальному серверу.

Исходный текст

SKILL.md · CC0-1.0
---
name: anki-connect
description: 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.
---

# 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:8765` should return `Anki-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 name
- `version`: API version (use `6` unless user specifies otherwise)
- `params`: object of parameters (optional)

### Response Format

Every response is JSON with:

- `result`: return value
- `error`: `null` on success or a string describing the error

Always check `error` before using `result`.

### Permissions

- Use `requestPermission` first when interacting from a non-trusted origin; it is the only action that accepts any origin.
- Use `version` to ensure compatibility; older versions may omit the `error` field in responses when `version` ≤ 4.

## curl + jq Patterns

Prefer `jq` to build JSON and parse responses. Keep requests explicit and structured.

### Minimal request template

```bash
jq -n --arg action "deckNames" --argjson version 6 '{action:$action, version:$version}' \
| curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @-
```

### With params

```bash
jq -n \
	--arg action "findNotes" \
	--argjson version 6 \
	--arg query "deck:French tag:verbs" \
	'{action:$action, version:$version, params:{query:$query}}' \
| curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @-
```

### Handling result/error

```bash
curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @- \
| jq -e 'if .error then halt_error(1) else .result end'
```

### Batching multiple actions

Use `multi` to reduce round-trips and to group actions under a single confirmation when modifying data.

```bash
jq -n --argjson version 6 --arg query "deck:French" \
	'{action:"multi", version:$version, params:{actions:[
		{action:"findNotes", params:{query:$query}},
		{action:"notesInfo", params:{notes:[]}} 
	]}}' \
| curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @-
```

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 `version` to confirm the API level and use `version: 6` in requests.

### 2) Discover supported actions

- Use `apiReflect` with `scopes: ["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`/`cardsInfo` for previews before modification.

### 4) Execute and validate

- Execute the call(s) in order.
- Check `error` for 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 `canAddNotes` or `canAddNotesWithErrorDetail` for preflight checks.

### Update note fields or tags

- Actions: `updateNoteFields`, `updateNoteTags`, or combined `updateNote`
- 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:buried` to 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

- `getEaseFactors`
- `setEaseFactors`
- `setSpecificValueOfCard`
- `suspend`
- `unsuspend`
- `suspended`
- `areSuspended`
- `areDue`
- `getIntervals`
- `findCards`
- `cardsToNotes`
- `cardsModTime`
- `cardsInfo`
- `forgetCards`
- `relearnCards`
- `answerCards`
- `setDueDate`

### Deck Actions

- `deckNames`
- `deckNamesAndIds`
- `getDecks`
- `createDeck`
- `changeDeck`
- `deleteDecks`
- `getDeckConfig`
- `saveDeckConfig`
- `setDeckConfigId`
- `cloneDeckConfigId`
- `removeDeckConfigId`
- `getDeckStats`

### Graphical Actions

- `guiBrowse`
- `guiSelectCard`
- `guiSelectedNotes`
- `guiAddCards`
- `guiEditNote`
- `guiAddNoteSetData`
- `guiCurrentCard`
- `guiStartCardTimer`
- `guiShowQuestion`
- `guiShowAnswer`
- `guiAnswerCard`
- `guiUndo`
- `guiDeckOverview`
- `guiDeckBrowser`
- `guiDeckReview`
- `guiImportFile`
- `guiExitAnki`
- `guiCheckDatabase`
- `guiPlayAudio`

### Media Actions

- `storeMediaFile`
- `retrieveMediaFile`
- `getMediaFilesNames`
- `getMediaDirPath`
- `deleteMediaFile`

### Miscellaneous Actions

- `requestPermission`
- `version`
- `apiReflect`
- `sync`
- `getProfiles`
- `getActiveProfile`
- `loadProfile`
- `multi`
- `exportPackage`
- `importPackage`
- `reloadCollection`

### Model Actions

- `modelNames`
- `modelNamesAndIds`
- `findModelsById`
- `findModelsByName`
- `modelFieldNames`
- `modelFieldDescriptions`
- `modelFieldFonts`
- `modelFieldsOnTemplates`
- `createModel`
- `modelTemplates`
- `modelStyling`
- `updateModelTemplates`
- `updateModelStyling`
- `findAndReplaceInModels`
- `modelTemplateRename`
- `modelTemplateReposition`
- `modelTemplateAdd`
- `modelTemplateRemove`
- `modelFieldRename`
- `modelFieldReposition`
- `modelFieldAdd`
- `modelFieldRemove`
- `modelFieldSetFont`
- `modelFieldSetFontSize`
- `modelFieldSetDescription`

### Note Actions

- `addNote`
- `addNotes`
- `canAddNotes`
- `canAddNotesWithErrorDetail`
- `updateNoteFields`
- `updateNote`
- `updateNoteModel`
- `updateNoteTags`
- `getNoteTags`
- `addTags`
- `removeTags`
- `getTags`
- `clearUnusedTags`
- `replaceTags`
- `replaceTagsInAllNotes`
- `findNotes`
- `notesInfo`
- `notesModTime`
- `deleteNotes`
- `removeEmptyNotes`

### Statistic Actions

- `getNumCardsReviewedToday`
- `getNumCardsReviewedByDay`
- `getCollectionStatsHTML`
- `cardReviews`
- `getReviewsOfCards`
- `getLatestReviewID`
- `insertReviews`

## 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.
- `importPackage` paths are relative to the Anki `collection.media` folder, not the client.
- `deleteDecks` requires `cardsToo: true` to delete cards along with decks.

## Resources

No bundled scripts or assets are required for this skill.

© intellectronica · CC0-1.0 · intellectronica/agent-skills

Похожие скиллы

Всё по теме «Заметки, задачи и проекты» →
anki terkelg Собирает карточки Anki из заметок и кода через AnkiConnect. Пригодится, когда нужно превратить материал в колоду для повторения. CX Codex +1 509установок hackernews okou-ai Скилл запрашивает новости, комментарии и профили с Hacker News через официальный API. Помогает отслеживать тренды индустрии прямо в окне терминала. CX Codex +1 3 200установок yc-reader himself65 Скилл ищет компании и батчи Y Combinator через публичный API yc-oss: профили, отрасли, теги, найм, статистика портфеля. Только чтение, ключи не нужны. CX Codex +1 2 800установок context7 Netresearch DTT GmbH Ищет справку по библиотекам и примеры API через Context7 REST API, когда MCP-сервер не настроен. Пригодится для вопросов по фреймворкам и их версиям. CX Codex +1 1 900установок gif-search Hermes Agent Ищет и скачивает GIF-анимации через Tenor API с помощью curl и jq. Пригодится, когда агенту нужно подобрать реакцию для чата или найти медиафайл. CX Codex +1 379установок flashcards официальный anthropics Скилл делает карточки из конспекта или заметок и прогоняет их в режиме опроса с самооценкой. Пригодится, когда нужно запомнить формулировки правил наизусть. CX Codex +1 772установок

Из того же набора20

ultrathink Скилл выводит цветную ANSI-надпись «ultrathink» прямо в терминале. Срабатывает по ключевому слову или по вызову /ultrathink. CX Codex +1 1 900установок beautiful-mermaid Рендерит диаграммы Mermaid в векторные SVG и растровые PNG через библиотеку Beautiful Mermaid. Пригодится для визуализации архитектуры, баз данных и рабочих процессов. CX Codex +1 1 800установок todoist-api Скилл учит агента работать с Todoist через консольный инструмент td: задачи, проекты, секции, метки и комментарии. Пригодится, когда надо навести порядок в списках прямо из чата. CX Codex +1 1 700установок markdown-converter Скилл преобразует файлы и медиа в Markdown через утилиту markitdown. Помогает подготовить документы, таблицы, презентации и аудио для анализа в нейросетях. CX Codex +1 1 700установок nano-banana-2 Скилл запускает генерацию и редактирование изображений через API Nano Banana 2: задаёте промпт, разрешение и соотношение сторон. CX Codex +1 869установок gog-cli Учит ИИ-агента управлять Google Workspace через утилиту gog: искать письма в Gmail, создавать встречи в Calendar и выгружать файлы из Drive. CX Codex +1 807установок promptify Превращает краткие запросы пользователя в строгие markdown-спецификации для нейросетей без лишней вежливости и вступительных комментариев. CX Codex +1 643установок tavily Находит данные в сети, извлекает текст со страниц, строит карту сайта и запускает глубокие исследования через REST API Tavily. CX Codex +1 627установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой