关于 docmost
这是一个 CLI 技能,供 AI Agent 通过 Docmost API 管理工作区和内容。它采用实体-操作式命令,并提供结构统一的 JSON 响应,支持页面编辑、搜索、权限管理及导入导出等任务。
主要功能
- 01管理工作区、空间和成员
- 02创建、编辑及整理页面
- 03搜索页面并查看历史
- 04管理邀请、群组和共享
- 05导入、导出及传输文件
适用场景
- 01创建或更新 Docmost 文档
- 02查找页面并查看变更历史
- 03调整工作区或空间权限
- 04导入或导出文档及附件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dapi/ docmost-cli --skill docmost安装后在 Claude Code 中输入/docmost确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.envrc.env.test.exampledocker-compose.test.ymlREADME.mdLICENSE.gitignoreCLAUDE.mdmcp_config_example.jsonmise.tomlpackage-lock.jsonpackage.json.claude/pr-review-loop-report.local.mdsettings.local.json.github/workflows/ci.ymldocs/plans/2026-02-27-skill-md-plan.md2026-03-03-agent-friendly-output-design.md2026-02-27-cli-full-crud-expansion-plan.md2026-02-27-skill-md-design.md2026-02-27-cli-full-crud-expansion-design.md2026-03-07-integration-tests-plan.md2026-03-07-integration-tests-design.mdscripts/wait-for-docmost.shsrc/__tests__/cli-utils.test.tsfilters.test.tsdiscovery.test.tsenvelope.test.tssrc/__tests__/integration/comment.test.tsdiscovery.test.tsfile.test.tssrc/__tests__/integration/helpers/run-cli.ts详细介绍
docmost
面向 AI Agent 的 Docmost CLI 技能。
安装
从 GitHub 安装此技能:
npx skills add dapi/docmost-cli --skill docmost --agent '*' -g -y
安装 CLI:
npm install -g github:dapi/docmost-cli
设置环境变量(推荐):
export DOCMOST_API_URL=https://docs.example.com/api
export DOCMOST_TOKEN=<token>
# or login with email/password:
export DOCMOST_EMAIL=<email>
export DOCMOST_PASSWORD=<password>
快速检查:
docmost workspace-public --format json
命令命名:entity-action(而非 action-entity)
所有命令均采用 entity-action 格式:page-update、space-create、comment-delete。
切勿使用 update-page、create-space、delete-comment——这些命令不存在,执行会失败。
执行规则
- 不要执行预检查。直接运行所需命令。如果找不到
docmost,请安装它(npm install -g github:dapi/docmost-cli)并重试。 - 所有
--format json输出都以信封格式包装:成功时为{ "ok": true, "data": ... },出错时为{ "ok": false, "error": ... }。 - 对于 Agent 工作流,优先使用
--format json。 - 只有在用户明确要求便于阅读的表格输出时,才使用
--format table。 - 仅以下命令支持
--format text:page-info(返回 Markdown 内容)page-history-detail(返回 Markdown 内容)invite-link(返回原始链接)
- 凭据优先使用环境变量;避免将
--password留在命令历史或进程列表中。 - 身份验证优先级:
--token>DOCMOST_TOKEN>--email/--password>DOCMOST_EMAIL/DOCMOST_PASSWORD。 - 对列表/历史记录命令使用全局分页参数:
--limit <n>(1..100,默认值为 100)--max-items <n>(达到总记录数 N 后停止)
- 对于 Markdown/文本内容(
page-update、comment-create、comment-update),可使用:- 字面字符串、
@path/to/file.md或-(标准输入)
- 字面字符串、
- 二进制导出/下载命令会将字节写入标准输出,除非指定了
--output:page-export、space-export、file-download
- 仅关心退出状态时使用
--quiet。
输出格式
所有 --format json 响应都使用一致的信封格式:
成功(单个对象)
{ "ok": true, "data": { "id": "abc", "title": "Runbook" } }
成功(列表)
{ "ok": true, "data": [{ "id": "abc" }], "meta": { "count": 2, "hasMore": false } }
错误(stderr)
{ "ok": false, "error": { "code": "NOT_FOUND", "message": "Page not found", "details": null } }
Agent 解析规则
- 始终先检查
ok字段 - 对于列表:条目位于
data数组中;检查meta.hasMore以判断是否还有下一页 - 对于变更操作:已创建/更新的对象会在
data中返回 - 错误包含类型化的
code:AUTH_ERROR、NOT_FOUND、VALIDATION_ERROR、NETWORK_ERROR、INTERNAL_ERROR - 退出码:0=成功,1=内部错误,2=身份验证错误,3=未找到,4=验证错误,5=网络错误
- 使用
docmost commands查看所有可用命令及其选项
核心命令模式
发现
docmost commands # list all commands with options as JSON
工作区 + 成员
docmost workspace-info --format json
docmost workspace-public --format json
docmost workspace-update --name "Docs" --description "Team docs" --format json
docmost workspace-update --enforce-sso true --enforce-mfa true --format json
docmost member-list --format table
docmost member-role --user-id <userId> --role admin --format json
docmost member-remove --user-id <userId> --format json
用户
docmost user-me --format json
docmost user-update --name "Alice" --locale en --page-edit-mode edit --full-page-width true --format json
空间
docmost space-list --format table
docmost space-info --space-id <spaceId> --format json
docmost space-create --name "Engineering" --slug engineering --description "Tech docs" --format json
docmost space-update --space-id <spaceId> --name "Platform" --format json
docmost space-delete --space-id <spaceId> --format json
docmost space-member-list --space-id <spaceId> --format table
docmost space-member-add --space-id <spaceId> --role writer --user-ids "u1,u2" --format json
docmost space-member-add --space-id <spaceId> --role reader --group-ids "g1,g2" --format json
docmost space-member-remove --space-id <spaceId> --user-id <userId> --format json
docmost space-member-role --space-id <spaceId> --group-id <groupId> --role admin --format json
docmost space-export --space-id <spaceId> --export-format markdown --output ./space.zip --format json
docmost space-export --space-id <spaceId> --export-format html --include-attachments > ./space.zip
页面
docmost page-list --format table
docmost page-list --space-id <spaceId> --format table
docmost page-info --page-id <pageId> --format json
docmost page-info --page-id <pageId> --format text
docmost page-create --space-id <spaceId> --title "Runbook" --icon "book" --format json
docmost page-create --space-id <spaceId> --title "Child" --parent-page-id <parentId> --format json
docmost page-update --page-id <pageId> --title "Runbook v2" --format json
docmost page-update --page-id <pageId> --content @./content.md --format json
echo "# Updated" | docmost page-update --page-id <pageId> --content - --format json
docmost page-move --page-id <pageId> --parent-page-id <parentId> --position a00000 --format json
docmost page-move --page-id <pageId> --root --format json
docmost page-move-to-space --page-id <pageId> --space-id <targetSpaceId> --format json
docmost page-delete --page-id <pageId> --format json
docmost page-delete --page-id <pageId> --permanently-delete --format json
docmost page-delete-bulk --page-ids "id1,id2,id3" --format json
docmost page-restore --page-id <pageId> --format json
docmost page-trash --space-id <spaceId> --format table
docmost page-duplicate --page-id <pageId> --format json
docmost page-duplicate --page-id <pageId> --space-id <targetSpaceId> --format json
docmost page-breadcrumbs --page-id <pageId> --format table
docmost page-tree --space-id <spaceId> --format json
docmost page-tree --page-id <pageId> --format json
docmost page-history --page-id <pageId> --limit 50 --max-items 200 --format table
docmost page-history-detail --history-id <historyId> --format json
docmost page-history-detail --history-id <historyId> --format text
页面导入/导出
docmost page-export --page-id <pageId> --export-format markdown --output ./page.zip
docmost page-export --page-id <pageId> --export-format html --include-children --include-attachments > ./page.zip
docmost page-import --file ./page.md --space-id <spaceId> --format json
docmost page-import-zip --file ./notion.zip --space-id <spaceId> --source notion --format json
page-import-zip --source 支持:generic、notion、confluence。
搜索
docmost search --query "onboarding" --format table
docmost search --query "oauth" --space-id <spaceId> --creator-id <userId> --format json
docmost search-suggest --query "auth" --format json
docmost search-suggest --query "auth" --space-id <spaceId> --include-pages --include-groups --max-results 20 --format json
邀请
docmost invite-list --format table
docmost invite-info --invitation-id <inviteId> --format json
docmost invite-create --emails "[email protected],[email protected]" --role member --format json
docmost invite-create --emails "[email protected]" --role admin --group-ids "g1,g2" --format json
docmost invite-revoke --invitation-id <inviteId> --format json
docmost invite-resend --invitation-id <inviteId> --format json
docmost invite-link --invitation-id <inviteId> --format text
群组
docmost group-list --format table
docmost group-info --group-id <groupId> --format json
docmost group-create --name "Tech Writers" --description "Docs team" --format json
docmost group-create --name "Maintainers" --user-ids "u1,u2" --format json
docmost group-update --group-id <groupId> --name "Platform Writers" --format json
docmost group-delete --group-id <groupId> --format json
docmost group-member-list --group-id <groupId> --format table
docmost group-member-add --group-id <groupId> --user-ids "u1,u2" --format json
docmost group-member-remove --group-id <groupId> --user-id <userId> --format json
评论
docmost comment-list --page-id <pageId> --format table
docmost comment-info --comment-id <commentId> --format json
docmost comment-create --page-id <pageId> --content @./comment.md --format json
docmost comment-create --page-id <pageId> --content "Please clarify" --selection "Auth flow" --format json
docmost comment-create --page-id <pageId> --content "Reply text" --parent-comment-id <commentId> --format json
docmost comment-update --comment-id <commentId> --content "Updated comment" --format json
docmost comment-delete --comment-id <commentId> --format json
分享
docmost share-list --format table
docmost share-info --share-id <shareId> --format json
docmost share-for-page --page-id <pageId> --format json
docmost share-create --page-id <pageId> --include-subpages true --search-indexing false --format json
docmost share-update --share-id <shareId> --include-subpages false --format json
docmost share-delete --share-id <shareId> --format json
文件
docmost file-upload --file ./diagram.png --page-id <pageId> --format json
docmost file-upload --file ./diagram-v2.png --page-id <pageId> --attachment-id <attachmentId> --format json
docmost file-download --file-id <fileId> --file-name diagram.png --output ./diagram.png
docmost file-download --file-id <fileId> --file-name report.pdf > ./report.pdf
Agent 工作流
页面 CRUD(推荐默认方式)
对于“创建/更新/移动/删除文档页面”之类的请求:
- 确定工作区和目标空间:
docmost workspace-info --format json→ 检查.ok,使用.datadocmost space-list --format json→ 遍历.data[],检查.meta.hasMore
- 检查现有页面:
docmost page-list --space-id <spaceId> --format json→ 遍历.data[]
- 修改页面时读取源页面:
docmost page-info --page-id <pageId> --format text
- 执行变更:
page-create/page-update/page-move/page-delete→ 检查.ok,获取.data.id
- 验证:
docmost page-info --page-id <pageId> --format json→ 检查.ok
搜索 + 历史记录调查
对于“查找相关内容记录在哪里”或“谁修改了此内容”之类的请求:
docmost search --query "..." --format tabledocmost page-info --page-id <pageId> --format textdocmost page-history --page-id <pageId> --format tabledocmost page-history-detail --history-id <historyId> --format text
访问控制
对于“添加/移除访问权限”这类请求:
- 工作区级别:
member-list、member-role、member-remove、invite-*
- 空间级别:
space-member-list、space-member-add、space-member-remove、space-member-role
- 公开页面分享:
share-for-page、share-create、share-update、share-delete
导出/导入和附件
- 导出内容:
page-export/space-export - 导入内容:
page-import/page-import-zip - 附加文件:
file-upload - 下载文件:
file-download
请求语义
- “我的 workspace / 我的空间” ->
docmost workspace-info - “spaces / 分区” ->
docmost space-list - “pages / 页面” ->
docmost page-list - “查找 / search” ->
docmost search --query "..." - “更改历史记录” ->
docmost page-history - “已删除的页面 / 回收站” ->
docmost page-trash - “访问权限 / access” ->
member-*/space-member-*/share-*
触发示例
应触发
- “在 Docmost 中创建页面”
- “更新 runbook 页面”
- “在 wiki 中查找所有关于 oauth 的内容”
- “显示此页面的更改历史记录”
- “恢复已删除的页面”
- “将页面移到其他 space”
- “将 space 导出为 markdown”
- “将用户添加到 space,并设为 reader”
- “为页面创建公开分享”
- “将文件上传到页面”
- “列出所有 Docmost spaces”
- “邀请新用户加入 workspace”
- “将成员角色更改为 admin”
- “将 Notion zip 导入 Docmost”
- “显示页面树”
- “复制页面”
不应触发
- 不与 Docmost API 交互而编辑本地 markdown 文件
- Git/GitHub 操作
- Slack/Telegram/电子邮件消息任务
- 非 Docmost 网页抓取或浏览器自动化
评论
支持 Markdown