notion · imoonkey — скилл для Claude Code: поиск, чтение и создание страниц
Скилл даёт агенту доступ к рабочему пространству Notion: искать страницы, читать содержимое, запрашивать базы данных и создавать записи.
npx skills add imoonkey/openweb --skill notion -a claude-codeЧто делает notion
Скилл работает через CLI openweb и набор операций над Notion. Сначала getSpaces возвращает spaceId — идентификатор рабочего пространства, с ним дальше идут все остальные вызовы. searchPages ищет по тексту и отдаёт id, заголовок и оценку релевантности; getPage читает дерево блоков страницы, queryDatabase вытягивает строки базы с их свойствами.
Запись тоже есть: createPage создаёт страницу на верхнем уровне или вложенную через parentId, updatePage меняет заголовок, deletePage отправляет страницу в корзину. Все три помечены как write-операции — createPage создаёт настоящую страницу, и если вы просто тестируете, удалять её придётся вручную.
Есть подвох с базами данных. collectionId лежит в блоках типа collection_view_page внутри recordMap.block из результатов поиска, и у системных баз вроде «Home views» или «My Tasks» его может не оказаться — работает только с базами, созданными пользователем. Без collectionId и viewId вызов queryDatabase не соберётся.
Какие задачи решает
- найти страницу по текстовому запросу в рабочем пространстве
- прочитать содержимое страницы и её свойства
- выгрузить строки пользовательской базы данных
- создать страницу или вложенную подстраницу
- переименовать страницу или отправить её в корзину
Примеры запросов агенту
- Найди в Notion страницы про встречи за последний месяц
- Прочитай страницу
<pageId>и покажи её блоки - Создай в Notion страницу «План на неделю»
Как установить notion
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill notion -a claude-code2Вручную: положить файлы
~/.claude/skills/notion/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/notion/
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill notion -a codex2Вручную: положить файлы
.agents/skills/notion/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill notion -a cursor2Вручную: положить файлы
.cursor/skills/notion/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install imoonkey/openweb notion2Вручную: положить файлы
.github/skills/notion/SKILL.md1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill notion -a gemini-cli2Командой платформы
gemini skills install https://github.com/imoonkey/openweb --path src/sites/notionВручную: положить файлы
.devin/skills/notion/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill notion -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о notion
Как установить notion в Claude Code?
Выполните npx skills add imoonkey/openweb --skill notion -a claude-code. Скилл встанет в ~/.claude/skills/notion/SKILL.md.
Что делает скилл notion?
Даёт агенту операции над Notion: поиск страниц, чтение блоков, запрос баз данных, создание, переименование и удаление страниц.
Почему queryDatabase не находит мою базу?
collectionId берётся из блоков collection_view_page в результатах поиска, и у системных баз вроде «Home views» или «My Tasks» его нет. Запрашивать можно только базы, созданные пользователем.
Исходный текст
SKILL.md · MIT
# Notion
## Overview
Productivity and collaboration workspace. Enterprise archetype.
## Workflows
### Search pages
1. `getSpaces` → pick workspace → `spaceId`
2. `searchPages(query, spaceId)` → results with page `id`, `title`, `score`
### Read a page
1. `searchPages(query, spaceId)` → find page `id` in results
2. `getPage(pageId)` → blocks in `recordMap.block`, properties in root block's `value.properties`
### Query a database
1. `searchPages(query, spaceId)` → find `collection_view_page` blocks in `recordMap.block` → `collection_id`, `view_ids`
2. `queryDatabase(collectionId, viewId)` → rows with property values
**Note:** `collection_id` is found in blocks of type `collection_view_page` within search results' `recordMap.block`. It may not appear in system databases ("Home views", "My Tasks") — only user-created databases.
### Create a page
1. `getSpaces` → `spaceId`
2. `createPage(title, spaceId)` → new `pageId`
- Optionally pass `parentId` to nest under an existing page
### Update a page
1. `searchPages(query, spaceId)` → find page → `pageId`
2. `updatePage(pageId, title, spaceId)` → updated page info
### Delete a page
1. `searchPages(query, spaceId)` → find page → `pageId`
2. `deletePage(pageId, spaceId)` → `deleted: true`
- Moves page to trash — recoverable from Notion UI
- Reverse of `createPage`
## Operations
| Operation | Intent | Key Input | Key Output | Notes |
|-----------|--------|-----------|------------|-------|
| getSpaces | list workspaces | — | userId, spaceId | entry point for spaceId |
| searchPages | full-text search | query, spaceId | results[].id, score, recordMap | paginated via limit |
| getPage | read page content | pageId | recordMap.block (page tree), cursor | paginated via chunkNumber |
| queryDatabase | filter/sort database rows | collectionId, viewId | blockIds, recordMap.block (rows) | needs collectionId from search |
| createPage | create page | title, spaceId, parentId? | pageId | write op — adapter-based |
| deletePage | delete (trash) page | pageId, spaceId | deleted: true | write op — reverse of createPage |
| updatePage | update page title | pageId, title, spaceId | updated: true | write op — adapter-based |
### Write Operations Safety
| Operation | Level | Notes |
|-----------|-------|-------|
| createPage | CAUTION | Creates a real page in workspace — delete manually if testing |
| deletePage | CAUTION | Moves page to trash — recoverable from Notion UI |
| updatePage | CAUTION | Overwrites page title — reversible by updating again |
## Quick Start
```bash
# Get workspace spaceId
openweb notion exec getSpaces '{}'
# Search pages
openweb notion exec searchPages '{"x-notion-space-id":"<spaceId>","type":"BlocksInSpace","query":"meeting","spaceId":"<spaceId>","limit":20,"source":"quick_find","filters":{"isDeletedOnly":false,"excludeTemplates":false,"navigableBlockContentOnly":false,"requireEditPermissions":false,"includePublicPagesWithoutExplicitAccess":false,"ancestors":[],"createdBy":[],"editedBy":[],"lastEditedTime":{},"createdTime":{},"inTeams":[],"excludeSurrogateCollections":false,"excludedParentCollectionIds":[]},"sort":{"field":"relevance"},"peopleBlocksToInclude":"all"}'
# Read a page's content
openweb notion exec getPage '{"x-notion-space-id":"<spaceId>","page":{"id":"<pageId>"},"limit":100,"cursor":{"stack":[]},"chunkNumber":0,"verticalColumns":false}'
# Query a database (requires collectionId and viewId from search results)
openweb notion exec queryDatabase '{"x-notion-space-id":"<spaceId>","collection":{"id":"<collectionId>"},"collectionView":{"id":"<viewId>"},"loader":{"type":"reducer","reducers":{"collection_group_results":{"type":"results","limit":50}},"searchQuery":"","userTimeZone":"America/Los_Angeles"}}'
# Create a new page at workspace top level
openweb notion exec createPage '{"x-notion-space-id":"<spaceId>","title":"My New Page"}'
# Create a subpage under an existing page
openweb notion exec createPage '{"x-notion-space-id":"<spaceId>","title":"Child Page","parentId":"<parentPageId>"}'
# Update a page's title
openweb notion exec updatePage '{"x-notion-space-id":"<spaceId>","pageId":"<pageId>","title":"New Title"}'
# Delete (trash) a page
openweb notion exec deletePage '{"x-notion-space-id":"<spaceId>","pageId":"<pageId>"}'
```
© imoonkey · MIT · imoonkey/openweb
Похожие скиллы
Все скиллы по теме «Заметки, задачи и проекты» →Сначала — notion от других авторов.