月末自有一套节奏:合计工时、对账钱款、追讨发票、归档数字。如果你本就常驻终端,靠点击一屏屏界面来做这些便是慢路。命令行客户端(@ceum/cli)驱动的正是与应用相同的操作——于是整套例行事务化作寥寥数条命令,下个月还能读回来,或者交给 cron。
这篇演练跟随一件具体的活儿——结清一个月——从空白 shell 一路走到一份可归档的报告。第 1 步的配置是一次性的成本;第 2、3 步才是你实际会反复重复的例行流程。
目标
把“月底到了”变成一段简短、可复用的序列:以机器可读的格式拉出这个月的记录工时与交易,塑成你需要的汇总,再把任何更正写回去——可脚本化,让下个月只需一条命令。
1. 安装并认证——只需一次
CLI 是一个从 npm 安装的小型二进制程序:
$ npm install -g @ceum/cli # installs the `ceum` command (Node.js 22+)
它以 MCP 令牌认证,正是驱动 MCP 集成的同一个令牌。在应用中的设置 → 集成下生成一个,然后登录:
$ ceum auth login # paste the token (starts with ceum_)
Signed in. 42 tools available under this token.
令牌以 0600 权限存放在你的配置目录中。对于不该碰磁盘的计划任务,改为通过环境变量传入——最适合 cron 或 CI:
$ CEUM_TOKEN=ceum_… ceum invoices list
用命名的配置档把不同工作区分隔开(ceum auth add work,随后 ceum --profile work …)。命令界面是根据你的令牌能做什么实时推导的,因此 ceum --help 始终精确显示你可用的资源与操作。
2. 取来一个月的数据——以你用得上的格式
每一条列表命令都是资源在先(ceum <resource> <action>),并接受 -o 来选择输出。默认的 text 排成易读的表格;机器格式——json、csv、ndjson——则是字节干净、适合管道传输的。
先从头条数字开始。time-entries aggregate 在一组筛选之上合计记录工时,还能分组:
$ ceum time-entries aggregate \
--start-date 2026-07-01 --end-date 2026-07-31 \
--group-by project -o json
它返回这个月的总秒数以及按项目拆分的明细。若要拉出底层的行放进电子表格,就直接列出为 CSV——并用 --all 越过每次请求的分页上限、合并每一页:
$ ceum time-entries list --start-date 2026-07-01 --end-date 2026-07-31 \
--all -o csv > july-time.csv
$ ceum transactions list --all -o csv > july-transactions.csv
两处小手法让输出更紧凑:--columns 精确挑出你想要的字段,而保存的预设则捕获一组筛选,省得你重打一遍:
$ ceum transactions list --columns date,desc,amount,type,client
$ ceum presets save transactions month --type expense # save once
$ ceum transactions list --preset month -o json # reuse (explicit flags win)
3. 塑形,再把更正推回去
由于只有命令输出走 stdout——提示、进度与错误都走 stderr——管道保持干净。这意味着 jq 之类的工具会完全如你所料地工作:
$ ceum invoices list -o json | jq '.[] | select(.status=="overdue") | .invoiceNumber'
$ ceum time-entries aggregate --group-by tag -o json \
| jq -r '.groups[] | [.key, .totalSeconds/3600] | @tsv'
管道双向皆通。当月末结算包含把数据写回去时——比如录入一批开支——把来自文件或 stdin 的行喂给某条 bulk-create 命令;输入会被自动识别(JSON 数组、单个对象、NDJSON 或 CSV),并按服务器每次请求 50 条的上限分块:
$ ceum transactions bulk-create --file july-expenses.ndjson
$ jq -c '.[]' corrections.json | ceum transactions bulk-create --stdin
至此,整件事就是一个脚本了。退出码编码了失败的类别(0 正常、2 用法、3 认证、4 禁止、5 工具错误、6 网络、7 配置),因此 cron 任务能分辨网络抖动与坏令牌,并据此行动,而不是无声失败。
你最终得到什么
一场月末结算是你运行的一个文件,而非你逐屏点击的一块界面:认证一次,把这个月拉成 JSON 或 CSV,用你已熟悉的工具重新塑形,再把结果写回去——全是应用所执行的同一批操作,接进了你的 shell 与你的调度器。
更愿留在应用内、又想保留键盘驱动的速度?应用内的命令面板在 Ceum 内的一块面板里运行同样的命令语法。而一旦数字导出了,看清你的时间实际去了哪里和从记录的工作到已付款的发票便从导出止步之处接续下去。