Anarlog CLI 完整实战指南:会议查询、Cloud 快照、编辑提案与数据导出的命令行操作手册 📅 发布时间:2026/9/17 8:19:01 👁 浏览次数: Anarlog CLI 完整实战指南会议查询、Cloud 快照、编辑提案与数据导出的命令行操作手册【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlogAnarlog开源的 Granola AI 替代品不仅提供桌面端录音与 AI 总结能力还内置了一套面向自动化与 Agent 场景的命令行工具。本指南以仓库中 skills/anarlog/references/cli.md 为核心脉络系统讲解anarlogCLI 的安装形态、JSON 输出协议、无头认证、多数据源查询、提案系统与安全导出机制并结合 apps/cli 下的 Rust 源码验证每一处行为的真实实现。读完本文你将能编写出可复现、可被 Agent 直接消费的 Anarlog 命令行工作流。一、命令形态与平台差异Anarlog CLI 是一个基于 Clap 解析的 Rust 二进制其参数定义位于 apps/cli/src/cli.rs顶层结构如下全局参数--base DIR、--db-path FILE、--json三者均为全局 flag可在任意子命令前使用子命令auth登录/状态/登出、doctor环境体检、meetings会议浏览与导出、proposals编辑提案、mcp启动 stdio MCP 服务二进制名称anarlog与anarlog-cli命令默认名为anarlog见 apps/cli/Cargo.toml 中[[bin]]的name字段。但需要注意平台差异Linux Flatpak安装将该命令注册为anarlog-cli此时所有示例中的anarlog都应替换为anarlog-cliDEB、AppImage、macOS、Windows 以及桌面端 Settings 中Install安装的构建命令均为anarlogMac App Store 构建不捆绑 CLI 安装需要从源码自行构建详见 skills/anarlog/references/setup.md。前提说明以下所有命令示例默认以anarlog为命令名在 Flatpak 环境下请相应替换。二、--json输出协议Agent 可读的稳定接口CLI 的默认人类可读输出是表格或纯文本如会议列表会渲染为对齐的DATE | TITLE | ID表格超长标题会被截断为…见 apps/cli/src/commands/meetings.rs。而面向 Agent 与脚本应始终使用--json。JSON 成功响应具有稳定的顶层结构由 apps/cli/src/output.rs 定义{ schema_version: 1, command: meetings.list, data: [ ... ], pagination: { offset: 0, limit: 20, returned: 2, total: null, next_offset: null } }字段说明字段含义schema_version输出协议版本当前恒为1用于兼容性判断command实际执行的命令标识如meetings.list、auth.login、proposals.createdata命令结果主体pagination分页信息仅列表类命令存在offset/limit/returned/total/next_offsetnext_offset为null表示没有更多数据分页遍历的正确姿势是只从pagination.next_offset继续取下一页且仅在确实需要更多上下文时才翻页避免无谓拉取整场会议内容。三、账户认证在无图形环境完成登录认证相关命令为auth login/auth status/auth logout源码实现位于 apps/cli/src/commands/auth/mod.rs。无头登录流程anarlog auth login anarlog --json auth status anarlog auth logoutauth login的核心交互模式是跨设备授权CLI 打印一个登录 URLhttps://anarlog.so相关地址把该 URL 交给用户用户可以在另一台设备的浏览器打开、登录登录成功后用户选择Copy URL得到形如anarlog://auth/callback的回调链接用户把该链接粘贴到 CLI 的隐藏输入提示中完成令牌交换。安全红线绝不要让用户把回调链接粘贴到聊天对话中也不要把它作为命令行参数传递——回调链接中携带账号令牌。--json模式下登录 URL 打印到stderr回调从stdin读取见 apps/cli/src/commands/auth/mod.rs这样 stdout 可以保持纯净的 JSON 输出。源码中还对回调长度做了上限保护MAX_CALLBACK_BYTES 32 * 1024。会话存储Linux 的 Secret Service 与 0600 本地文件在 Linux 上会话优先存入Secret Service系统密钥环当 Secret Service 不可用时回退到桌面兼容的本地认证文件文件权限为0600仅属主可读写。该逻辑位于 apps/cli/src/commands/auth/storage.rs 中的后端选择实现。无图形会话的判定Cloud 快照的读取不要求 Anarlog 机器本身有图形会话先anarlog auth login完成一次登录再用anarlog auth status确认会话有效之后即可在纯命令行环境读取云端快照。四、数据来源--source local / cloud / automeetings子命令通过--source选择数据来源默认值为local同时支持环境变量ANARLOG_SOURCE覆盖见 apps/cli/src/cli.rs来源行为local默认读取本机 SQLite 数据库即桌面应用创建的本地数据cloud读取托管快照需要anarlog auth login只读auto本地数据库存在时用本地本地数据库缺失时自动回退到 Cloudauto的回退逻辑在 apps/cli/src/commands/meetings.rs 中清晰可见DataSource::open尝试打开本地数据库只有遇到Error::DatabaseNotFound时才切换到CloudClient其他错误则原样抛出。重要语义Cloud 访问是只读的因此 Cloud 数据源下不存在提案proposal操作——提案始终落在本地提案写入是 CLI 中除mcp外的唯二写路径见Args::needs_write实现apps/cli/src/cli.rs。# 本地会议列表默认 anarlog --json meetings list --query planning --limit 20 --offset 0 # Cloud 快照 anarlog --json meetings --source cloud list --query planning --limit 20 --offset 0 # 自动回退 anarlog --json meetings --source auto get MEETING_ID五、体检与会议查询命令doctor只读环境体检anarlog --json doctordoctor不做任何数据修改只检查 CLI 版本、数据库路径是否存在、能否以只读方式打开、schema 是否就绪见 apps/cli/src/commands/doctor.rs。它会并行探测会话、文档、转写、参与者、行动项、提案六类表以确认 schema 可用。退出码约定当响应中的ready为false时doctor以状态码 1 退出run返回report.ready主程序据此设置退出状态。JSON 响应包含cli_version、ready、databasepath/exists/opened_read_only/schema_ready/error字段。会议查询命令族# 会议元数据含 note、summaries、participants、action items anarlog --json meetings get MEETING_ID # 仅读取 note 或 summary anarlog --json meetings note MEETING_ID --kind note anarlog --json meetings note MEETING_ID --kind summary # 周期性会议历史 anarlog --json meetings history MEETING_ID --limit 20 --offset 0各命令参数要点与 apps/cli/src/cli.rs 的 Clap 定义一致meetings list--query按标题片段搜索--series-id按系列过滤--limit取值范围1–200默认 20--offset默认 0meetings note--kind为note默认/summary/allall时 JSON 输出同时包含note与summaries两个字段meetings history按series_id找出同一周期系列的历史会议--limit同样是 1–200。转写分页按词而不是按行anarlog --json meetings transcript MEETING_ID --limit 200 --offset 0转写页的单位是词数word不是行数默认 200 词上限 500 词DEFAULT_TRANSCRIPT_LIMIT与MAX_TRANSCRIPT_LIMIT定义于 crates/agent-access 并传入 Clap 的 range 校验见 apps/cli/src/cli.rs。JSON 响应中data包含meeting_id、text、words三个字段pagination中的next_offset供按需续读。找会议的正确姿势先用list或history搜索拿到真实返回的 MEETING_ID绝不要凭空猜测 ID拿会议元数据note/summary/participants/action items往往已足够回答大部分问题不必一上来就拉取整段转写。六、提案系统暂存编辑由人类终审proposals命令族是 CLI 中唯一的写路径与本地 MCP 的 proposal 工具语义一致实现位于 apps/cli/src/commands/proposals.rs。# 暂存一条完整替换 summary 的提案 anarlog --json proposals create --meeting MEETING_ID --kind summary --content Replacement markdown # 列出提案可加 --meeting / --status 过滤 anarlog --json proposals list --meeting MEETING_ID # 查看提案及其 unified diff anarlog --json proposals show PROPOSAL_ID # 拒绝一条 pending 提案 anarlog --json proposals decline PROPOSAL_ID关键语义proposals create只是暂存一个待审编辑pending edit绝不直接修改会议内容。它调用底层create_proposal见 crates/agent-access并标记source: cli提案最终由人类在 Anarlog 桌面应用中批准或拒绝。CLI 只负责提出与拒绝暂存项已应用applied的提案无法再 decline--kind取值为summary或memo当会议存在多个 summary 时可用--target TARGET_ID指定目标文档内容来源二选一--content 内联文本或--content-file FILE两者同时传入会报错见read_content的互斥校验apps/cli/src/commands/proposals.rsproposals list默认status: pending--limit1–200、默认 20proposals show输出含提案的 unifieddiff便于人类审阅改动范围。七、导出明确用户请求下的一次性完整快照导出是重量级操作仅在用户明确要求保存/迁移整场会议时使用skills/anarlog/SKILL.md 也强调不要用导出代替读取 noteanarlog meetings export MEETING_ID --format markdown --output meeting.md anarlog meetings export MEETING_ID --format json --output meeting.json行为细节--format默认markdown可选json未指定--output时内容直接打印到 stdout--force必须有--output才能使用Clap 的requires output约束apps/cli/src/cli.rs导出拒绝覆盖已存在的文件底层用OpenOptions::new().create_new(true)原子创建命中已存在时返回output_exists错误退出码 4见 apps/cli/src/output.rs 及对应单元测试只有用户明确批准覆盖该确切路径后才允许传--force--json模式下导出结果包在meetings.export命令里formatcontent或完整 meeting 对象不会静默写盘。八、全局数据库覆盖参数当 Anarlog 数据不在默认的应用数据目录时用以下参数重定向均可由环境变量替代见 apps/cli/src/cli.rsanarlog --db-path /path/to/app.db --json meetings list anarlog --base /path/to/anarlog-data --json meetings listCLI 参数环境变量作用--db-path FILEANARLOG_DB_PATH直接指定 SQLite 数据库文件路径--base DIRANARLOG_BASE指定 Anarlog 数据根目录含数据库--sourceANARLOG_SOURCE会议数据来源local/cloud/auto在指定自定义路径前应先通过anarlog --json doctor确认实际数据库位置。九、错误处理与退出码约定CLI 的错误契约在 skills/anarlog/references/errors.md 中有完整说明此处结合源码提炼要点--json错误响应包含schema_version与一个error对象内含code、message、exit_code退出码1 操作失败2 数据缺失如 note 不存在对应Error::NotFound3 数据库缺失4 导出目标已存在。非法 CLI 参数则使用 Clap 的退出码并伴随invalid_arguments错误码Cloud 命令失败保留 CLI 返回的托管错误码——unauthorized时重新auth logincloud_api_not_enabled时请用户启用Cloud API Connectorsrate_limited时按报告的延迟等待重试不要在用户明确要求--source cloud时静默切换到本地数据数据库缺失先跑anarlog --json doctor确认再请用户至少打开一次桌面应用以生成本地数据库数据库操作失败确认桌面应用与 CLI 来自兼容版本不要自行跑迁移或写 SQL——CLI 与 MCP 服务负责应用层 schema 兼容这也是 skills/anarlog/SKILL.md 明确禁止 Agent 直接改 SQLite 的原因导出文件已存在换一个新路径或仅在用户明确批准覆盖该确切文件时传--force。十、与 MCP 的分工什么时候用 CLICLI 与 MCP 工具集Cloud MCP 只读本地 MCP 增加 proposal 工具能力重叠官方推荐的数据源选择顺序skills/anarlog/SKILL.mdCloud MCP 工具优先list_meetings、get_meeting、get_meeting_transcript、get_recurring_meeting_historyMCP 不可用但已有 CLI 登录时用anarlog --json meetings --source cloud ...读取同样的托管快照Cloud 无此会议 / 快照未开启 / 会议只存在于本机时回退到本地anarlog --json meetings ...本地anarlog mcpstdio 服务仅用于填补上述缺口Cloud 已返回结果时不作为第二数据源两端都不可用时引导用户启用Cloud API Connectors并参照 安装文档且不要擅自安装软件。无论走哪条路径回答都必须以实际调用返回的会议、标题、日期与 ID 为准并说明数据来自 Cloud 还是本地数据库绝不虚构会议。十一、端到端实战工作流示例# 1. 无头环境登录stderr 打印 URLstdin 读回调 anarlog auth login anarlog --json auth status # 2. 环境体检 anarlog --json doctor # 3. 搜索会议并取出 ID不猜 ID anarlog --json meetings list --query planning --limit 20 # 4. 读取元数据与 note通常足以作答 anarlog --json meetings get MEETING_ID anarlog --json meetings note MEETING_ID --kind summary # 5. 仅当需要更多证据时按词分页读转写 anarlog --json meetings transcript MEETING_ID --limit 200 --offset 0 # 继续从 pagination.next_offset 续读 # 6. 用户明确要求修正 summary 时暂存提案不直接改会议 anarlog --json proposals create --meeting MEETING_ID --kind summary --content Replacement markdown # 7. 用户明确要求导出整场会议时不覆盖已有文件 anarlog meetings export MEETING_ID --format markdown --output meeting.md结语Anarlog CLI 的设计处处体现Agent 友好 数据安全的双重取向--json提供带版本号的稳定协议--source三态覆盖本地与云端的读取诉求提案机制把写操作收敛为人类终审的暂存编辑导出则以create_new--force双重闸门防止误覆盖。无论是构建自动化脚本、为 Agent 提供会议上下文还是在无图形服务器上消费 Cloud 快照这套命令都是 Anarlog 生态中最可靠的程序化入口。相关的安装、错误排查与 MCP 工具细节可继续阅读 skills/anarlog/references/setup.md、skills/anarlog/references/errors.md 与 skills/anarlog/references/mcp.md。【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考