AgentStack
SKILL verified MIT Self-run

Banana Sync To Notion

skill-treydong-banana-skills-banana-sync-to-notion · by TreyDong

>

No reviews yet
0 installs
17 views
0.0% view→install

Install

$ agentstack add skill-treydong-banana-skills-banana-sync-to-notion

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README — it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-treydong-banana-skills-banana-sync-to-notion)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Banana Sync To Notion? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Banana Sync to Notion

Automatically sync local Markdown files to Notion while preserving directory structure and full Markdown formatting.

Setup

Before using this skill:

  1. Install dependencies in the skill directory:

``bash cd banana-sync-to-notion npm install ``

  1. Configure environment variables by creating a .env file:

``bash NOTION_TOKEN=your_notion_integration_token NOTION_ROOT_PAGE_ID=target_page_id ``

  • NOTION_TOKEN: Get from Notion Integrations
  • NOTION_ROOT_PAGE_ID: The parent page ID where files will be synced
  • Ensure the integration has read/write permissions to the target page

Usage

Sync Files to Notion

Run from the skill directory:

npm run sync:notion

This command:

  • Recursively scans the source directory (default: Files/ in project root)
  • Converts Markdown files to Notion blocks
  • Preserves directory hierarchy as nested pages
  • Assigns emoji icons based on filenames
  • Skips existing pages (incremental sync)
  • Shows detailed progress and statistics

Clean Notion Pages

Remove all child pages under the target page:

npm run clean:notion

Use this before a fresh re-sync.

Re-sync Everything

Clean existing content and sync fresh:

npm run resync:notion

Combines clean:notion + sync:notion.

Markdown Support

All standard Markdown syntax is converted to native Notion blocks:

| Syntax | Notion Output | |--------|---------------| | **bold** or __bold__ | Bold text | | *italic* or _italic_ | Italic text | | ***bold italic*** | Bold italic | | ` code | Inline code | | [text](url) | Clickable link (http/https only) | | ``language ... ` | Code block | | - item or * item | Bullet list | | 1. item | Numbered list | | > quote | Quote block | | > 💡 note | Callout (emoji-prefixed quotes) | | --- or *** | Divider | | Markdown tables | Native Notion tables |

Relative Links:

  • ./file.md or ../folder/file.md → Converted to Notion page links
  • ./image.png → Preserved as text (no local file upload)
  • http://... → Clickable external links

Automatic Icon Selection

The script assigns emoji icons based on filename patterns:

  • 📖 Chapters (e.g., "01-intro.md")
  • 🎯 Getting started, basics
  • ❓ FAQ, troubleshooting, problems
  • 💡 Examples, case studies
  • 🔧 Tools, utilities
  • 📚 Methods, tutorials
  • 📊 Data, analysis, reports
  • ⚙️ Configuration, settings
  • 🏗️ Architecture, system
  • 💻 Scripts, code
  • ✍️ Writing, creative
  • 📝 Notes, records
  • 🚀 Advanced, recommendations
  • 📋 Guides
  • 📘 README files
  • 📦 Downloads, resources
  • 🎨 Presentations
  • 📄 Default (no match)

Customize icons by editing the selectIcon function in scripts/sync-notion.js.

Smart Features

Duplicate Detection: Automatically skips pages that already exist with the same title, enabling incremental syncs without duplicates.

Smart Chunking:

  • Handles Notion's 2000-character limit per block
  • Supports files with >100 blocks
  • Batches API requests to avoid rate limits
  • Automatic retry on temporary failures

Progress Reporting: Shows detailed statistics during sync:

  • Files processed
  • Files created vs skipped
  • Folders created
  • Duration and errors

Output Example

🚀 Starting Notion Sync...
📂 Source: /path/to/Files
📄 Target Page: My Knowledge Base

📁 Syncing directory: Files
  ✨ Creating: 📖 01-Introduction
  📁 Syncing directory: 01-Introduction
    ✨ Creating: 📖 01-overview.md
    ⏭️  Skipping existing: 02-concepts.md
    ✨ Creating: 🎯 03-quickstart.md

==================================================
✅ Sync Complete!
==================================================
⏱️  Duration: 45.2s
📊 Statistics:
   • Files processed: 35
   • Files created: 25
   • Files skipped: 10
   • Folders created: 5
   • Errors: 0
==================================================

File Structure

banana-sync-to-notion/
├── SKILL.md
├── .env (user created)
├── package.json
├── scripts/
│   ├── sync-notion.js   # Main sync logic
│   └── clean-notion.js  # Cleanup utility
└── Files/ (default source directory)

Troubleshooting

Image support: Current version focuses on text/Markdown. Images require hosted URLs (image hosting) to display in Notion. Local image upload requires more complex authentication.

Missing icons: Files that don't match any icon pattern use the default 📄 emoji. Add custom patterns in scripts/sync-notion.js.

Rate limits: The script includes automatic retry logic for Notion API rate limits. Large syncs (>100 files) may take several minutes.

Relative links not working: Ensure the linked Markdown file was also synced. Links only work to pages that exist in Notion.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.