Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

notion-clipper-skillNotion clipper 技能

Agent Skill

用于处理 Notion 页面、数据库、工作区内容和结构化记录。它适合让 Agent 查询知识库、整理页面内容、创建记录或把外部信息同步到 Notion。使用时需要确认集成是否已被授权到目标页面或数据库,并区分读取、追加和覆盖更新;涉及批量写入或修改数据库属性时,应先核对字段名称、属性类型和目标页面。

总安装

30,712

周安装

1,267

GitHub Stars

1

下载量

10,035
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:notion-clipper-skill(Notion clipper 技能)
来源仓库:https://github.com/ewingyangs/notion-clipper-skill
安装命令:
openclaw skills install notion-clipper-skill
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install notion-clipper-skill

简介

将网页剪辑到 Notion。通过 Chrome CDP 获取任何 URL,将 HTML 转换为 Markdown,然后转换为 Notion 块,并保存到用户指定的 Notion 数据库或页面。当用户想要将网页保存/剪辑到Notion,或提到“剪辑到概念”、“将页面保存到概念”、“网页剪藏到Notion”时使用。

SKILL.md

name
notion-clipper-skill
description
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".

Notion Clipper

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

Prerequisites

  1. Notion API Key: Create an integration at https://notion.so/my-integrations
  2. Store the key:
mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
  1. 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.

  1. Determine this SKILL.md file's directory path as SKILL_DIR
  2. 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>)
  1. 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:

  1. Close any VPN/proxy software
  2. Switch to a stable network (mobile hotspot often works)
  3. 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 When
Auto (default)Capture on network idlePublic pages, static content
Wait (--wait)User signals when readyLogin-required, lazy loading, paywalls

Wait mode workflow:

  1. Run with --wait → Chrome opens, script outputs "Press Enter when ready"
  2. Log in or navigate as needed in the browser
  3. 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

  1. Fetch: Launch Chrome via CDP, navigate to URL
  2. Render: Wait for JavaScript to execute, scroll to trigger lazy loading
  3. Extract: Run cleanup script to remove ads/nav, extract main content
  4. Convert: HTML → Markdown → Notion blocks
  5. 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

VariableDescription
NOTION_CLIPPER_CHROME_PATHCustom Chrome executable path
NOTION_CLIPPER_CHROME_PROFILE_DIRCustom Chrome profile directory
https_proxy / HTTP_PROXYProxy for Notion API (e.g. http://127.0.0.1:7890)
http_proxy / HTTPS_PROXYSame as above
all_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

Troubleshooting

Network Issues

ErrorCauseSolution
ECONNREFUSED 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 traffic
CloudFlare 403Direct IP access triggers security protectionUse hostname instead of IP; ensure proper Authorization header
Mixed: 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

ErrorCauseSolution
Invalid 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:

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

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

74.5%
按下载量换算7,476

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

未展示

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills