概念 - cli
喜欢 gh 给GitHub 但给Notion 39命令 一个二进制.
完整的命令行接口 标题。管理页面、数据库、块、评论、用户和文件——都来自您的终端。 为需要程序访问而无需浏览器的开发者和AI代理所建.
安装
家庭工作人员(MacOS/Linux)
brew install 4ier/tap/notion-cli
走开
go install github.com/4ier/notion-cli@latest
无
npm install -g @4ier/notion-cli
Scoop (窗户)
scoop bucket add 4ier https://github.com/4ier/scoop-bucket
scoop install notion-cli
夹克
docker run --rm -e NOTION_TOKEN ghcr.io/4ier/notion-cli search "meeting"
二进制
从 GitHub 发布 ——可供Linux,macOS,和Windows(amd64/arm64)使用.
快速启动
# Authenticate
echo "ntn_xxxxx" | notion auth login --with-token
# Search your workspace
notion search "meeting notes"
# Query a database with filters
notion db query <db-id> --filter 'Status=Done' --sort 'Date:desc'
# Create a page in a database
notion page create <db-id> --db "Name=Weekly Review" "Status=Todo"
# Read page content as Markdown
notion block list <page-id> --depth 3 --md
# Append blocks from a Markdown file
notion block append <page-id> --file notes.md
# Raw API escape hatch
notion api GET /v1/users/me
图标
| 组 | 图标 | 说明 |
|---|---|---|
| 认证 | login logout status switch doctor | 认证和诊断 |
| 搜索 | search | 搜索页面和数据库 |
| 页 次 | view list create delete restore move open set props link unlink | 全页寿命周期 |
| 页:1 | list view query create update add add-bulk open | 数据库 CRUD + 查询 |
| 块 | list get append insert update delete | 内容块操作 |
| 注释 | list add get | 讨论线索 |
| 用户 | me list get | 工作空间成员 |
| 文件 | list upload | 文件管理 |
| api 密码 | <METHOD> <path> | 原始 API 逃生舱口 |
39个子命令 覆盖 API 的100%.
特征
爱人过滤器
90%的询问不需要 JSON :
notion db query <id> --filter 'Status=Done' --filter 'Priority=High' --sort 'Date:desc'
对于复杂的查询(OR,筑巢),使用JSON出逃舱口:
notion db query <id> --filter-json '{"or":[{"property":"Status","status":{"equals":"Done"}},{"property":"Status","status":{"equals":"Cancelled"}}]}'
Schema- Aware 属性
属性类型从数据库中自动检测:
notion page create <db-id> --db "Name=Sprint Review" "Date=2026-03-01" "Points=8" "Done=true"
智能输出
- 终端: 有色表格,格式化文本
- 管道/脚本清洁JSON为
jq、脚本和AI代理商
# Pretty table in terminal
notion db query <id>
# JSON when piped
notion db query <id> | jq '.results[].properties.Name'
标记一/O
# Read blocks as Markdown
notion block list <page-id> --md --depth 3
# Write Markdown to Notion
notion block append <page-id> --file document.md
支持标题、项目符号、列表、待办事宜、引用、代码块和分隔符.
外部图像
通过 URL 插入或附加一个图像块( 不上传- 指向外部主机图像) :
# Insert after a specific block (e.g. next to a "TODO: add figure" placeholder)
notion block insert <page-id> --after <block-id> \
--image-url https://example.com/diagram.png \
--caption "Figure 1 — architecture"
# Append to end of page
notion block append <page-id> --image-url https://example.com/diagram.png
递归屏蔽读取
notion block list <page-id> --depth 5 --all
URL 或 ID - 您的选择
# Both work
notion page view abc123def
notion page view https://notion.so/My-Page-abc123def456
可操作错误消息
object_not_found: Could not find page with ID abc123
→ Check the ID is correct and the page/database is shared with your integration
为大赦国际代理
设计这种CLI是为了方便代理:
- JSON 输出 管道时——不需要解析
- 斯克玛 - 认识 - 特工不需要知道财产类型
- URL 分辨率 ——直接粘贴逗号 URL
- 单二进制 无运行时间依赖关系
- 退出代码 成功0分,出错0分
安装为代理技能 :
npx skills add 4ier/notion-cli
配置
# Token is stored in ~/.config/notion-cli/config.json (mode 0600)
echo "ntn_xxxxx" | notion auth login --with-token
# Or use environment variable
export NOTION_TOKEN=ntn_xxxxx
# Check authentication
notion auth status
notion auth doctor
解决问题
窗口: MSYS / Git Bash 路径管理
在基于 MSYS (Git Bash, MSYS2) 中, 参数以 / 静默地重写到 Windows 路径。 中断 API 路径参数 :
# ✗ /v1/users/me becomes C:/Program Files/Git/v1/users/me
notion api GET /v1/users/me
修补 : 禁用 MSYS 路径转换 :
MSYS_NO_PATHCONV=1 notion api GET /v1/users/me
或导出为会话 : export MSYS_NO_PATHCONV=1
这是一个贝壳级的问题,不是概念-cli中的bug. PowerShell和cmd.exe没有受到影响.
捐款
问题和企业责任 github.com/4ier/notion-cli (中文(简体) )。 。 。 .