Notion命令行(专业版)
企业级Notion命令行工具,支持多工作空间、文件上传、Schema管理、批量操作及审计日志,适合团队和企业规模化使用。
天轰穿
@thcjp
Install
$ openclaw skills install @thcjp/notion-cli-tool-pro核心功能: 本技能提供了实用性等能力。 一个面向团队与企业的全功能Notion操作Skill,在免费版基础上扩展了多工作空间管理、文件上传、Schema管理、页面移动、批量操作、模板管理、自定义输出与审计日志等高级能力,适合规模化使用场景.
简介
本Skill提供从Notion数据查询、批量处理到Schema管理的端到端命令行解决方案。专业版默认支持企业级SLA(99.9%可用性),所有写操作支持幂等控制与审计追溯,可满足金融、咨询、教育等强合规行业的使用要求.
重要特性
与免费版能力对比
| 能力 | 免费版 | 专业版 |
|---|---|---|
| 工作空间数量 | 单个 | 无限制 |
| 文件上传 | 不支持 | 图片/PDF/文档,自动MIME |
| Schema管理 | 不支持 | 增删改属性列、重命名 |
| 页面移动 | 不支持 | 跨数据库移动 |
| 批量操作 | 不支持 | 万级批量,带检查点 |
| 模板管理 | 不支持 | 列表与使用 |
| 自定义输出 | 不支持 | Jinja2模板 |
| 审计日志 | 不支持 | 全操作可追溯 |
| 缓存策略 | 无 | 多级缓存+命中率监控 |
| 并发控制 | 串行 | 并行+速率限制 |
| 双ID处理 | 自动 | 自动+手动切换 |
| 技术支持 | 社区 | 优先工单(4小时响应) |
| 处理: 解析与免费版能力对比的输入参数,完成核心逻辑,生成结构化输出. | ||
| 输出: 返回与免费版能力对比的响应数据,含状态码、结果数据和运行日志. |
核心功能执行
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,生成结构化输出.
输出: 返回核心功能执行的响应数据,含状态码、结果数据和运行日志.
- 使用
input_params进行配置,支持创建/查询/导出操作
参数配置与调用
用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,生成结构化输出.
输出: 返回参数配置与调用的响应数据,含状态码、结果数据和运行日志.
- 执行此能力时使用
config_options参数,支持修改/重置/导入操作 能力覆盖范围:核心能力涵盖以下关键词:企业级、Notion、命令行工具、支持多工作空间、批量操作与审计日、适合团队与企业规、模化使用、命令行、是面向团队与企业、的全功能、在免费版基础上新、增多工作空间管理、自定义输出与审计、日志等高级能力、核心能力等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
适用边界说明
以下场景Notion命令行(专业版)不适合处理:
- 加密文件破解
- 损坏文件修复
- 物理介质数据恢复
启动时机
需要文件处理、文档转换、格式互转、内容提取时使用。不适用于非本工具能力范围的需求.
入门指引
预计上手时间:<120秒(适合中等复杂度工具).
Step 1:升级到专业版
notion license apply --key $PRO_LICENSE_KEY
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion workspace add work --key ntn_work_key
notion workspace add personal --key ntn_personal_key
notion workspace list
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion db-update tasks --add-prop "Priority:select"
响应解析: 完成完成后,查看输出响应确认任务状态。成功时输出包含解析摘要和响应数据;失败时根据错误信息排查问题,查阅错误解析章节获取恢复步骤.
示例展示
多工作空间配置
workspaces:
- name: work
key: ${NOTION_WORK_KEY}
aliases:
tasks: "abc123-def456-..."
projects: "ghi789-jkl012-..."
- name: personal
key: ${NOTION_PERSONAL_KEY}
aliases:
reading-list: "mno345-pqr678-..."
- name: research
key: ${NOTION_RESEARCH_KEY}
# ...
default_workspace: work
# ...
batch:
defaultPageSize: 100
maxRetries: 3
backoff: exponential
checkpoint: true
parallel: 5
# ...
cache:
l1:
enabled: true
ttl: 60
maxSize: 10000
l2:
enabled: true
backend: redis
ttl: 300
# ...
audit:
enabled: true
retention: 180d
export: [json, csv]
# ...
dualIds:
mode: auto # auto | manual
prefer: database_id # database_id | data_source_id
```bash
# 在此执行相关操作
echo "操作完成"
```bash
--checkpoint --parallel 5
# ...
notion batch-update tasks \
--input ./data/updates.json \
--parallel 5 --on-failure continue
# ...
notion batch-delete tasks \
--filter "DueDate<2026-01-01" \
--confirm --dry-run # 先预览,确认后去掉--dry-run
notion batch status --job-id <jobId>
# ...
notion batch resume --job-id <jobId>
```bash
# 在此执行相关操作
echo "操作完成"
```bash
# 本技能的核心实现逻辑
# 请参考上方使用说明进行配置和调用
echo "implementation_ready"
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion props tasks --filter "Name=Sample"
# ...
notion db-update tasks --add-prop "Priority:select"
notion db-update tasks --add-prop "Rating:number"
notion db-update tasks --add-prop "Tags:multi_select"
notion db-update tasks --add-prop "DueDate:date"
# ...
notion db-update tasks --remove-prop "OldColumn"
# ...
notion db-update tasks --title "任务管理库(2026版)"
# ...
notion db-create <parent-page-id> "新项目库" \
--prop "Name:title" \
--prop "Status:select" \
--prop "Priority:select" \
--prop "StartDate:date" \
--prop "EndDate:date" \
--prop "Assignee:people" \
--prop "Tags:multi_select"
# ...
notion templates tasks
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion move tasks --filter "Status=Done" --to archive
# ...
notion move tasks --filter "Status=Done" --to <page-id>
# ...
notion move tasks --filter "Name=迁移任务" \
--from work --to personal
```bash
# 在此执行相关操作
echo "操作完成"
```jinja2
{# ./templates/task-report.md.j2 #}
- **状态**:<动态配置>
- **优先级**:<动态配置>
- **截止日期**:<动态配置>
- **负责人**:<动态配置>
# ...
{% for block in blocks %}
{% if block.type == "paragraph" %}
<动态配置>
{% elif block.type == "heading_2" %}
{% endif %}
{% endfor %}
# ...
{% for comment in comments %}
- **<动态配置>** (<动态配置>):<动态配置>
{% endfor %}
notion get tasks --filter "Name=Ship feature" \
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion audit logs --action write --limit 100
# ...
notion audit logs --workspace work --limit 50
# ...
notion audit logs --start "2026-07-01" --end "2026-07-31"
# ...
notion audit logs --resource-type page --resource-id <pageId>
# ...
notion audit export --format csv --output ./audit-2026-07.csv
实践建议
- 多工作空间按业务隔离:工作空间与业务线对应,避免混用
- 批量操作使用幂等键:每次批量请求携带
Idempotency-Key,失败重试不产生重复数据 - Schema变更先dry-run:
--dry-run预览影响范围,确认后执行 - 文件上传注意大小限制:单文件不超过5MB,大文件建议先压缩
- 页面移动前确认目标:跨数据库移动会改变属性映射,确认目标Schema兼容
- 审计日志保留180天以上:满足等保2.0与GDPR的日志留存要求
- 多级缓存合理配置:L1缓存(60秒)应对热点查询,L2缓存(300秒)应对冷启动
- 并行控制避免频率限制:
--parallel 5避免触发Notion API频率限制 - 自定义模板统一输出:团队共用一套Jinja2模板,保证输出格式一致
性能优化策略
多级缓存架构
查询请求 → L1缓存(进程内,60s) → L2缓存(Redis,300s) → Notion API
↓ 命中 ↓ 命中
返回 返回
- L1缓存:进程内LRU,容量10000条,TTL 60秒
- L2缓存:Redis集群,TTL 300秒,支持主动失效
- 命中率监控:命中率<80%时告警
批量处理与检查点
批量请求 → 分片(每片100条) → 并行执行(并发5) → 检查点记录
↓ 失败
指数退避重试(最多3次)
↓ 仍失败
记录失败项,继续下一片
双ID自动处理
Notion API 2025-09-03使用双ID(database_id + data_source_id),专业版自动处理:
notion query tasks # 无需关心ID类型
notion query tasks --id-type database_id
notion query tasks --id-type data_source_id
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion sync-to-warehouse \
--source tasks \
--destination 数据库://user:pass@host:5432/notion_db \
--mode incremental \
--schedule "0 4 * * *"
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion notify tasks \
--filter "Status=Done" \
--webhook https://qyapi.weixin.qq.com/cgi-(请参考skill目录中的脚本文件)?key=示例值 \
--template wecom
```bash
# 在此执行相关操作
echo "操作完成"
```bash
notion export tasks \
--filter "Status=Archived" \
--format markdown \
--destination s3://your-bucket/notion-archive/
版本升级迁移指南
从免费版升级到专业版
- 应用专业版License,功能自动解锁
- 原有别名与配置自动继承,无需迁移
- 启用多工作空间前,建议先梳理各工作空间的API Key
- 启用审计日志前,需要配置日志存储位置与保留策略
- 启用多级缓存前,确保Redis服务可用
notion audit backfill --start "2026-01-01"
# ...
notion init --workspace work
notion init --workspace personal
热门问题
Q1: 多工作空间如何切换?
A: 1)用notion workspace use <name>切换默认;2)用-w <name>或--workspace <name>临时指定.
Q2: 批量操作失败如何重试?
A: 使用Idempotency-Key重发同一批请求,系统跳过已成功部分。也可通过batch status --job-id查看进度,用batch resume --job-id断点续传.
Q3: Schema变更会影响现有数据吗?
A: 添加属性列不影响现有数据(新列为空)。删除属性列会导致该列数据丢失,建议先--dry-run预览。重命名数据库仅改变显示名,不影响数据.
... (更多问答请参考完整文档)
异常应对
| 错误场景(症状) | 可能原因 | 解决方案 | 优先级 |
|---|---|---|---|
| 批量操作部分失败 | 个别数据格式错误 | 查看failedItems,修正后用幂等键执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 | 高 |
| Schema变更失败 | 属性名冲突或类型不兼容 | 检查现有属性,用props命令查看 | 高 |
| 文件上传失败 | 文件过大或格式不支持 | 检查文件大小(<5MB)与格式 | 中 |
| 跨工作空间移动失败 | Schema不兼容 | 对比源与目标Schema,调整后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 | 中 |
| 多工作空间切换异常 | API Key失效或权限不足 | 检查Key有效性,确认Integration权限 | 高 |
| 缓存命中率下降 | 缓存Key设计不合理 | 调整Key粒度与TTL,监控命中率 | 低 |
| 审计日志缺失 | 日志存储未配置 | 检查audit.enabled与存储路径 | 低 |
专业版特性
本专业版相比免费版新增以下能力:
- 多工作空间Profile:无限制同时管理多个Notion账户
- 文件上传:图片/PDF/文档/文本/压缩,自动MIME检测
- 数据库Schema管理:增删改属性列、重命名数据库
- 跨数据库页面移动:支持按别名与跨工作空间移动
- 批量操作:万级批量处理,带检查点与失败重试
- 页面模板管理:列表与使用
- 自定义输出格式:Jinja2模板灵活转换数据
- 审计日志:全操作可追溯,支持导出与筛选
- 多级缓存:L1进程内 + L2 Redis,带命中率监控
- 并行控制:批量任务自动并行,提升吞吐量
- 双ID自动处理:database_id与data_source_id自动切换
- 优先支持:4小时响应工单,专属技术经理
定价
| 版本 | 价格 | 功能 | 适用场景 |
|---|---|---|---|
| 免费体验版 | 0元 | 核心功能 + 单工作空间 | 个人试用、小型项目 |
| 收费专业版 | 39.9元/月 或 399元/年 | 全功能 + 多工作空间 + 批量 + Schema管理 + 优先支持 | 团队/企业规模化使用 |
| 专业版通过SkillHub SkillPay发布,支持按月订阅或一次性年付(享8折优惠). |
运行环境
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- Node.js: 16+(用于运行CLI工具)
- Python: 3.8+(可选,用于辅助脚本与ETL)
依赖详情
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| notion-cli-tool CLI | 命令行工具 | 必需 | npm install -g notion-cli-tool |
| Notion Integration | 在线服务 | 必需 | 通过Notion开发者平台创建 |
| Redis | 缓存服务 | 可选 | 用于多级缓存,自建或使用云服务 |
数据库 | 数据库 | 可选 | 用于数据仓库同步,版本12+ |
| 对象存储 | 存储服务 | 可选 | 用于归档导出,兼容S3协议 |
API Key 配置
- NOTION_API_KEY: 各工作空间的Integration Token,通过
workspace add命令配置 - PRO_LICENSE_KEY: 专业版License,通过环境变量或配置文件传入
- Redis连接串: 通过
REDIS_URL环境变量传入 - 加密密钥: 通过KMS服务管理,禁止在配置文件中明文存储
- 安全建议: 所有Key遵循"最小权限 + 定期轮换"原则,建议每90天轮换一次
可用性分类
- 分类: MD+EXEC模式纯Markdown指令,部分功能需exec命令行执行)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作
输出说明
{
"success": true,
"data": {
"result": "Notion命令行(专业版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "notion cli pro"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
安全承诺
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 配置于环境变量中,密钥不得固化于代码 |
| 命令执行风险 | 仅允许执行白名单内命令,防止参数注入 |
| 网络通信安全 | 通过HTTPS安全通信,验证证书有效性 |
| 敏感数据暴露 | 返回内容不包含敏感凭证 |
| 使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。 |
功能特色
- 自动化执行: 企业级Notion命令行工具,支持多工作空间、文件上传、Schema管理、批量操作与审计日志,适合团队与企业规模化使用。
- 文件处理: 支持多种文件格式的读取、解析和写入操作
- API集成: 通过标准化接口调用外部服务并处理响应
- 命令执行: 在安全沙箱中执行系统命令并收集结果
- 信息检索: 快速搜索和过滤目标数据
快速开始
- 确认运行环境满足依赖说明中的要求
- 在AI Agent对话中调用本技能,提供必要的输入参数
- 检查输出结果,根据需要进行后续处理
详细的输入输出格式请参考下方章节说明。
用户问题解答
Q1: Notion命令行(专业版)支持哪些输入格式?
A1: 企业级Notion命令行工具,支持多工作空间、文件上传、Schema管理、批量操作与审计日志,适合团队与企业规模化使用。。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
Q2: 需要配置API Key吗?
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
Q3: 命令行执行失败怎么办?
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
异常处理策略
针对Notion命令行(专业版)使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
Notion命令行(专业版)通用排查步骤
- 检查输入参数: 确认所有必填参数已提供且格式正确
- 查看日志输出: 定位具体错误行和异常类型
- 验证环境配置: 确认依赖库版本和运行环境满足要求
- 逐步调试: 缩小问题范围,隔离故障模块
依赖说明
运行环境
- Agent 平台: 支持SKILL.md的任意AI Agent
- 操作系统: Windows / macOS / Linux
可用性分类
- 分类: MD(纯Markdown指令,通过自然语言驱动Agent完成操作)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作。
Top skills in this category
Gog
@steipeteGoogle Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
API Gateway
@byungkyuCall third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, run a query through a connected
Notion
@steipeteNotion API for creating and managing pages, databases, and blocks.
Mcporter
@steipeteUse the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.
Caldav Calendar
@asleep123Sync and query CalDAV calendars (iCloud, Google, Fastmail, Nextcloud, etc.) using vdirsyncer + khal. Works on Linux.