From nanoclaw-notion
Configures Notion API access for NanoClaw agents to read and update pages/databases for project management, notes, and tracking. Guides integration setup.
npx claudepluginhub terrifiedbug/nanoclaw-skillsThis skill uses the workspace's default tool permissions.
Configures Notion API access for agent containers, enabling reading and updating Notion pages and databases.
Configures Notion API access for NanoTars agents to read and update pages and databases for project management, notes, and tracking. Guides integration setup including token verification and plugin config.
Installs and configures Notion API SDK for Node.js (@notionhq/client) and Python (notion-client), sets up authentication tokens, shares pages with integration, and verifies connectivity.
Interact with Notion pages and databases via official API using notion-cli (Node.js/Python). Query databases, create/update pages and rows, append blocks, manage schemas.
Share bugs, ideas, or general feedback.
Configures Notion API access for agent containers, enabling reading and updating Notion pages and databases.
Before installing, verify NanoClaw is set up:
[ -d node_modules ] && echo "DEPS: ok" || echo "DEPS: missing"
docker image inspect nanoclaw-agent:latest &>/dev/null && echo "IMAGE: ok" || echo "IMAGE: not built"
(grep -q "ANTHROPIC_API_KEY\|CLAUDE_CODE_OAUTH_TOKEN" .env 2>/dev/null || [ -f ~/.claude/.credentials.json ]) && echo "AUTH: ok" || echo "AUTH: missing"
If any check fails, tell the user to run /nanoclaw-setup first and stop.
Create a Notion internal integration:
ntn_)Add to .env:
echo 'NOTION_API_KEY=YOUR_KEY_HERE' >> .env
Plugin Configuration -- Ask the user which groups should have access to Notion:
mainIf the user wants to restrict access, update plugins/notion/plugin.json after copying (step 4) to set "groups" to the list of group folder names:
"groups": ["main"]
If all groups (or the user doesn't care), leave as "groups": ["*"].
Restricting access means only those groups' agents will have Notion tools. Other groups won't see the Notion API or credentials.
Also ask about channel types. If the user wants this plugin available on all channel types (WhatsApp, Discord, etc.), leave "channels": ["*"]. To restrict, set "channels" to specific types (e.g., ["whatsapp"]). Most users will want the default.
Copy plugin files:
cp -r ${CLAUDE_PLUGIN_ROOT}/files/ plugins/notion/
Rebuild and restart:
npm run build
systemctl restart nanoclaw # or launchctl on macOS
Test the token:
source .env
curl -s "https://api.notion.com/v1/users/me" \
-H "Authorization: Bearer $NOTION_API_KEY" \
-H "Notion-Version: 2022-06-28" | python3 -c "
import sys, json
r = json.load(sys.stdin)
if 'id' in r:
print(f'OK - {r.get(\"name\", \"connected\")}')
else:
print(f'FAILED - {r}')
"
If this plugin is already installed and you want different credentials for a specific group (e.g., a work account for one group, personal for another):
Check which groups exist:
ls -d groups/*/
Ask the user which group should get separate credentials.
Collect the new Notion API key for that group.
Write to the group's .env file (creates if needed):
echo 'NOTION_API_KEY=ntn_...' >> groups/{folder}/.env
These values override the global .env for that group's containers only.
Restart NanoClaw:
sudo systemctl restart nanoclaw
rm -rf plugins/notion/
NOTION_API_KEY from .env