← All skills
Tencent SkillHub · Productivity

notion-clipper-skill

Clip web pages to Notion. Fetches any URL via Chrome CDP, converts HTML to Markdown, then to Notion blocks, and saves to user-specified Notion database or page. Use when user wants to save/clip a webpage to Notion, or mentions "clip to notion", "save page to notion", "网页剪藏到Notion".

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Clip web pages to Notion. Fetches any URL via Chrome CDP, converts HTML to Markdown, then to Notion blocks, and saves to user-specified Notion database or page. Use when user wants to save/clip a webpage to Notion, or mentions "clip to notion", "save page to notion", "网页剪藏到Notion".

⬇ 0 downloads ★ 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
_meta.json, SKILL.md, scripts/main.ts, scripts/markdown-to-notion.ts, scripts/notion-api.ts, scripts/html-to-markdown.ts

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

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. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 17 sections Open source page

Notion Clipper

Clip any web page to Notion. Uses Chrome CDP for full JavaScript rendering, converts to Markdown, then to Notion blocks.

Prerequisites

Notion API Key: Create an integration at https://notion.so/my-integrations Store the key: mkdir -p ~/.config/notion echo "ntn_your_key_here" > ~/.config/notion/api_key Share target database/page with your integration (click "..." → "Connect to" → your integration name)

First Time Setup

Dependencies are auto-installed when the script runs. No manual setup needed.

Agent Execution Instructions

CRITICAL: Always use the command pattern below. It auto-installs dependencies on first run. Determine this SKILL.md file's directory path as SKILL_DIR Command pattern (package.json in scripts/; always run lazy install first): (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && npx -y tsx main.ts <args>) Replace ${SKILL_DIR} with the actual path (e.g. /Users/xxx/.claude/skills/notion-clipper-skill)

Usage

IMPORTANT - Use this command pattern for best results: # Recommended: Clear proxy env vars and use tsx runtime (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && unset http_proxy https_proxy all_proxy && npx -y tsx main.ts <url> --database-name "Resources") Why this pattern? unset http_proxy https_proxy all_proxy - Avoids ECONNREFUSED from proxy conflicts tsx runtime - Node.js runtime that properly handles direct connections (bun has proxy issues) (test -d node_modules || npm install) - Auto-installs dependencies if missing If you encounter network issues: Close any VPN/proxy software Switch to a stable network (mobile hotspot often works) Use the recommended command pattern above # Clip to a Notion database by NAME (recommended - searches for database) (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && npx -y tsx main.ts <url> --database-name "Resource") # Clip to a Notion database by ID (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && npx -y tsx main.ts <url> --database <database_id>) # Clip to an existing page (appends blocks) (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && npx -y tsx main.ts <url> --page <page_id>) # List all accessible databases (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && npx -y tsx main.ts --list-databases) # For pages requiring login (wait mode) (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && npx -y tsx main.ts <url> --database-name "Resource" --wait)

Options

OptionDescription<url>URL to clip--database-name, -n <name>Target database by name (searches for match)--database, -d <id>Target Notion database by ID--page, -p <id>Target Notion page ID (appends blocks)--list-databases, -lList all accessible databases and exit--wait, -wWait for user signal before capturing--timeout, -t <ms>Page load timeout (default: 30000)--no-bookmarkDon't include bookmark block at top

Capture Modes

ModeBehaviorUse WhenAuto (default)Capture on network idlePublic pages, static contentWait (--wait)User signals when readyLogin-required, lazy loading, paywalls Wait mode workflow: Run with --wait → Chrome opens, script outputs "Press Enter when ready" Log in or navigate as needed in the browser Press Enter in terminal to trigger capture

Output Structure

When saving to a database, creates a new page with: Name: Page title URL: Source URL (if database has URL property) Content: Bookmark block + converted content blocks When appending to a page, adds: Bookmark block (link to source) Divider Converted content blocks

Database Setup

For best results, create a Notion database with these properties: Name (Title) - Required, will contain page title URL (URL) - Optional, will contain source URL

Examples

Clip a tweet to "Resource" database (by name): (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && unset http_proxy https_proxy all_proxy && npx -y tsx main.ts "https://x.com/dotey/status/123456" -n "Resource") List all databases first: (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && unset http_proxy https_proxy all_proxy && npx -y tsx main.ts --list-databases) Clip article requiring login: (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && unset http_proxy https_proxy all_proxy && npx -y tsx main.ts "https://medium.com/article" -n "Reading" --wait) Append to reading notes page: (cd "${SKILL_DIR}/scripts" && (test -d node_modules || npm install) && unset http_proxy https_proxy all_proxy && npx -y tsx main.ts "https://blog.example.com/post" -p xyz789) Quick alias (add to your ~/.bashrc or ~/.zshrc): alias notion-clip='(cd "${SKILL_DIR}/scripts" && unset http_proxy https_proxy all_proxy && npx -y tsx main.ts)' # Usage: notion-clip <url> -n "Resources"

How It Works

Fetch: Launch Chrome via CDP, navigate to URL Render: Wait for JavaScript to execute, scroll to trigger lazy loading Extract: Run cleanup script to remove ads/nav, extract main content Convert: HTML → Markdown → Notion blocks Save: Call Notion API to create page or append blocks

Dependencies

Chrome/Chromium browser (installed locally) Node.js (script runs with tsx; Bun may route through proxy and return empty body, use Node) Notion API key configured (Other dependencies auto-install on first run.)

Environment Variables

VariableDescriptionNOTION_CLIPPER_CHROME_PATHCustom Chrome executable pathNOTION_CLIPPER_CHROME_PROFILE_DIRCustom Chrome profile directoryhttps_proxy / HTTP_PROXYProxy for Notion API (e.g. http://127.0.0.1:7890)http_proxy / HTTPS_PROXYSame as aboveall_proxyOptional, e.g. socks5://127.0.0.1:7890 Example (proxy on port 7890): export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

Network Issues

ErrorCauseSolutionECONNREFUSED 208.103.161.1:443DNS returns blocked IP; proxy conflict1. Close VPN/proxy software<br>2. Use unset http_proxy https_proxy all_proxy<br>3. Switch network (e.g., mobile hotspot)Notion API returned empty body (status 200)Using bun which routes through proxy incorrectlyRun with tsx: npx -y tsx main.ts ... (NOT bun)fetch failed or ECONNREFUSEDProxy env vars set but Node.js https doesn't support themEither:<br>1. Use network without proxy (unset env vars)<br>2. Ensure proxy allows HTTPS trafficCloudFlare 403Direct IP access triggers security protectionUse hostname instead of IP; ensure proper Authorization headerMixed: Sometimes works, sometimes failsUnstable network or DNS returns different IPsScript now has 6 retries with exponential backoff (1s, 2s, 4s, 4s...) Best Practice: For reliable Notion API access, use a stable network (mobile hotspot often works better than corporate VPN).

Content Issues

ErrorCauseSolutionInvalid URL for linkNotion API rejects non-http(s) URLsScript now removes all markdown links by default to avoid validation errors. Content is preserved, only links are stripped. Note: The script automatically removes these invalid URL types: javascript:, data:, file:, about: protocols WeChat internal links (weixin:, wx://) Relative paths (/path, ./path) Hash-only links (#anchor) Empty links

General Issues

Chrome not found: Set NOTION_CLIPPER_CHROME_PATH environment variable Timeout errors: Increase --timeout value or use --wait mode Content missing: Try --wait mode for dynamic/lazy-loaded pages Notion API error (401/403): Check API key validity and integration permissions Notion API error: Ensure integration has access to target database/page

Code Optimizations Applied

The following optimizations have been implemented to handle unstable networks and invalid URLs: Auto-retry mechanism: Up to 6 retries with exponential backoff (1s → 2s → 4s → 4s...) Increased timeout: 30s for Notion API requests (was 25s) URL cleaning: Removes invalid URLs before Notion API submission Using tsx: Node.js runtime that properly handles direct connections (unlike Bun)

Category context

Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
4 Scripts1 Docs1 Config
  • SKILL.md Primary doc
  • scripts/html-to-markdown.ts Scripts
  • scripts/main.ts Scripts
  • scripts/markdown-to-notion.ts Scripts
  • scripts/notion-api.ts Scripts
  • _meta.json Config