Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Sync local workspace directories and files to Notion pages using the notion-sync CLI or programmatic API. Use when the user wants to push files to Notion, mi...
Sync local workspace directories and files to Notion pages using the notion-sync CLI or programmatic API. Use when the user wants to push files to Notion, mi...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
CLI and library for syncing a local directory tree into Notion. Folders become Notion pages, files become sub-pages with content.
npm install -g @kitakitsune/notion-sync Requires Node.js >= 18.
notion-sync init --token ntn_xxx --page <notion-page-id> [--dir <path>] Creates .notion-sync.json in the target directory The Notion integration must be shared with the target root page first
notion-sync sync # sync everything notion-sync sync --dry-run # preview changes notion-sync sync --diff # only sync changed files notion-sync sync --dir /some/path # sync a specific directory notion-sync status # show sync state notion-sync ignore list # list ignore patterns notion-sync ignore add "*.env" # add ignore pattern
node_modules, .git, dist, .notion-sync.json, *.lock, *.log
import { syncWorkspace, initConfig, loadConfig, saveConfig } from '@kitakitsune/notion-sync'; import type { NotionSyncConfig } from '@kitakitsune/notion-sync'; const config = loadConfig(process.cwd()); const result = await syncWorkspace(config, { dryRun: false, diffOnly: true }); // result.pushed - files that were synced // result.skipped - files unchanged (when diffOnly) // result.errors - files that failed
src/ cli.ts - Commander.js CLI (init, sync, ignore, status) sync.ts - Core sync logic, Notion API calls, checksum diffing config.ts - Load/save/init .notion-sync.json types.ts - NotionSyncConfig interface index.ts - Public API exports bin/ notion-sync.js - CLI entry point
Checksums: MD5 hashes stored in .notion-sync.json under checksums field. Used by --diff to skip unchanged files. Content chunking: File content is split into 1800-character blocks for the Notion API. Page upsert: Existing pages are updated by deleting all blocks then re-appending. New pages are created with content inline. Folder hierarchy: Directories are created as Notion pages with folder icon. A folderCache avoids redundant API calls.
.notion-sync.json: { "path": "/absolute/path", "notion": { "token": "ntn_...", "rootPageId": "page-id" }, "ignore": ["node_modules", ".git", "dist", ".notion-sync.json", "*.lock", "*.log"], "checksums": { "src/index.ts": "md5hash" } }
npm run dev # watch mode (tsup) npm run build # production build Build uses tsup to bundle TypeScript to ESM format. Output goes to dist/.
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.