A minimal time-tracking CLI for people who want a fast terminal workflow, plain JSON data, and no account system.
npm install -g @cacinie/cace-timer
- Fast capture: start, mark, stop, and search from the terminal
- Local-first data: one JSON file at
~/.cace-timer.json - Portable sync: point the data file at Dropbox, iCloud, OneDrive, or any synced folder
- Estimate feedback: compare actual time with your planned duration
- Statistics: daily/weekly/monthly reports with ASCII charts
- Pomodoro: built-in pomodoro timer with work/break cycles
- Bilingual: Chinese and English UI with
--langflag - No dashboard lock-in: easy to inspect, back up, or migrate
▄▄▄▄▄▄▄▄▄▄▄▄
█░░░░░░░░░░░░█
█░▄▄▄▄▄▄▄▄▄░█
█░│ ● ● │░█
█░│ ▽ │░█
█░│ ─── │░█
╰────────────╯
CACE TIMER
# Start a task (multi-tag supported!)
tk start "写周报" --tag work --tag daily --estimate 30
# Mark progress
tk mark "完成数据分析"
# Check status
tk status
# Stop and get efficiency score
tk stop
# View statistics
tk summary --today
tk summary --week --tag work
# Export to CSV
tk export --format csv --output report.csvStart a new task. Supports multiple tags.
| Option | Description |
|---|---|
--tag <tag> |
Add tag(s). Use multiple times or comma-separated: --tag dev --tag api or --tag dev,api |
--estimate <minutes> |
Estimated duration (for efficiency score) |
tk start "开发登录功能" --tag coding --tag backend --estimate 60Record a time checkpoint.
tk mark "完成API接口"
tk mark "开始写测试"Stop current task, show summary and efficiency score.
| Score | Emoji | Meaning |
|---|---|---|
| 100% | 🏆 | Actual ≤ Estimate |
| 80-99% | ⭐ | Slightly over or on target |
| 50-79% | 💪 | Moderately over estimate |
| <50% | 💀 | Far over estimate |
Show current running task.
View history.
| Option | Description |
|---|---|
--today |
Today only |
--tag <tag> |
Filter by tag |
--limit <n> |
Limit count (default 10) |
tk list --today
tk list --tag coding --limit 20Search across task names, tags, and mark notes.
tk search "登录"Statistics report with ASCII bar charts.
| Option | Description |
|---|---|
--today |
Today only |
--week |
This week |
--month |
This month |
--tag <tag> |
Filter by tag |
Shows: total sessions, total/average duration, tag distribution with bars, daily hours chart (last 7 days), top 5 longest tasks.
tk summary --today
tk summary --week --tag coding
tk summary --monthDelete a session from history.
tk delete --last # Delete most recent record
tk delete lq3x9k2 # Delete by IDResume a completed task as a new session (copies task name and tags).
tk resume --last # Resume most recent task
tk resume lq3x9k2 # Resume by IDExport history to CSV or Markdown.
| Option | Description |
|---|---|
--format csv|markdown |
Output format (default: csv) |
--output <file> |
Write to file (default: stdout) |
tk export # CSV to stdout
tk export --format markdown # Markdown table to stdout
tk export --format csv --output report.csvRun pomodoro work/break cycles with interactive countdown.
| Option | Description |
|---|---|
--work <minutes> |
Work duration (default: 25) |
--break <minutes> |
Break duration (default: 5) |
--rounds <n> |
Number of rounds (default: 4) |
--tag <tag> |
Add tag(s) |
Each work phase creates a real session (tagged pomodoro) that appears in tk list and tk summary.
tk pomodoro "写代码" --work 25 --break 5 --rounds 4 --tag codingSet sync file path for cross-device sync (Dropbox / iCloud / OneDrive).
# macOS / Linux
tk sync ~/Dropbox/cace-timer.json
tk sync ~/OneDrive/cace-timer.json
# Windows
tk sync "%USERPROFILE%\Dropbox\cace-timer.json"Set language. Auto-detects from system locale. Persists to config.
tk --lang en help
tk --lang zh statusShow help.
CACE reacts to what you do:
| State | Eyes | Mouth | When |
|---|---|---|---|
| Normal | ● ● | ─── | Default |
| Happy | ★ ★ | ◡◡◡ | Task completed |
| Super Happy | ◉ ◉ | ▽△▽ | Animation frame |
| Sleepy | ─ ─ | ─── | No active task |
| Blink | ─ ─ | ─── | Animation frame |
All data is stored in ~/.cace-timer.json. Single JSON file, easy to backup and sync.
{
"syncPath": "~/Dropbox/cace-timer.json",
"lang": "zh",
"current": null,
"history": [
{
"id": "lq3x9k2",
"task": "写周报",
"start": "2024-03-02T10:00:00.000Z",
"end": "2024-03-02T10:30:00.000Z",
"tags": ["work", "daily"],
"marks": [{ "time": "...", "note": "完成数据分析" }],
"estimatedMinutes": 30
}
]
}npm uninstall -g @cacinie/cace-timerSee CHANGELOG.md for release history.
MIT
极简时间追踪 CLI,面向想要快速终端工作流、纯 JSON 数据、无账号系统的人。
npm install -g @cacinie/cace-timer
- 快速记录:终端里 start、mark、stop、search 一气呵成
- 本地优先:数据仅存于
~/.cace-timer.json一个 JSON 文件 - 便携同步:将数据文件指向 Dropbox、iCloud、OneDrive 或任何同步目录
- 预估反馈:对比实际用时与计划时长
- 统计报表:日/周/月统计,ASCII 图表,标签分布
- 番茄钟:内置番茄钟,工作/休息循环
- 双语支持:
--lang参数切换中英文 - 无仪表盘锁定:随时可查看、备份或迁移
▄▄▄▄▄▄▄▄▄▄▄▄
█░░░░░░░░░░░░█
█░▄▄▄▄▄▄▄▄▄░█
█░│ ● ● │░█
█░│ ▽ │░█
█░│ ─── │░█
╰────────────╯
CACE TIMER
# 开始一个任务(支持多标签!)
tk start "写周报" --tag work --tag daily --estimate 30
# 标记进度
tk mark "完成数据分析"
# 查看状态
tk status
# 停止并获得效率评分
tk stop
# 查看统计
tk summary --today
tk summary --week --tag work
# 导出 CSV
tk export --format csv --output report.csv开始一个新任务。支持多标签。
| 选项 | 说明 |
|---|---|
--tag <tag> |
添加标签。可多次使用或逗号分隔:--tag dev --tag api 或 --tag dev,api |
--estimate <minutes> |
预估时长(用于效率评分) |
tk start "开发登录功能" --tag coding --tag backend --estimate 60记录一个时间节点。
tk mark "完成API接口"
tk mark "开始写测试"停止当前任务,显示摘要和效率评分。
| 评分 | Emoji | 含义 |
|---|---|---|
| 100% | 🏆 | 实际 ≤ 预估 |
| 80-99% | ⭐ | 略超或刚好达标 |
| 50-79% | 💪 | 中度超出预估 |
| <50% | 💀 | 远超预估 |
显示当前运行中的任务。
查看历史记录。
| 选项 | 说明 |
|---|---|
--today |
仅今天 |
--tag <tag> |
按标签过滤 |
--limit <n> |
限制数量(默认 10) |
tk list --today
tk list --tag coding --limit 20搜索任务名称、标签和标记备注。
tk search "登录"统计报表,带 ASCII 柱状图。
| 选项 | 说明 |
|---|---|
--today |
仅今天 |
--week |
本周 |
--month |
本月 |
--tag <tag> |
按标签筛选 |
显示:总会话数、总/平均时长、标签分布柱状图、每日时长图表(近 7 天)、最长任务 Top 5。
tk summary --today
tk summary --week --tag coding
tk summary --month从历史记录中删除会话。
tk delete --last # 删除最近一条记录
tk delete lq3x9k2 # 按 ID 删除恢复已完成的任务为新的会话(复制任务名和标签)。
tk resume --last # 恢复最近任务
tk resume lq3x9k2 # 按 ID 恢复导出历史数据为 CSV 或 Markdown。
| 选项 | 说明 |
|---|---|
--format csv|markdown |
输出格式(默认 csv) |
--output <file> |
输出到文件(默认 stdout) |
tk export # CSV 输出到终端
tk export --format markdown # Markdown 表格输出到终端
tk export --format csv --output report.csv番茄钟,带交互式倒计时进度条。
| 选项 | 说明 |
|---|---|
--work <minutes> |
工作时长(默认 25) |
--break <minutes> |
休息时长(默认 5) |
--rounds <n> |
轮数(默认 4) |
--tag <tag> |
添加标签 |
每个工作阶段会创建一个真实会话(标签为 pomodoro),可在 tk list 和 tk summary 中查看。
tk pomodoro "写代码" --work 25 --break 5 --rounds 4 --tag coding设置同步文件路径,用于跨设备同步(Dropbox / iCloud / OneDrive)。
# macOS / Linux
tk sync ~/Dropbox/cace-timer.json
# Windows
tk sync "%USERPROFILE%\Dropbox\cace-timer.json"设置语言。自动检测系统语言。设置后持久化到配置。
tk --lang en help
tk --lang zh status显示帮助。
CACE 会根据你的操作做出反应:
| 状态 | 眼睛 | 嘴巴 | 时机 |
|---|---|---|---|
| 正常 | ● ● | ─── | 默认 |
| 开心 | ★ ★ | ◡◡◡ | 任务完成 |
| 超开心 | ◉ ◉ | ▽△▽ | 动画帧 |
| 困了 | ─ ─ | ─── | 无活动任务 |
| 眨眼 | ─ ─ | ─── | 动画帧 |
所有数据存储在 ~/.cace-timer.json,单 JSON 文件,便于备份和同步。
{
"syncPath": "~/Dropbox/cace-timer.json",
"lang": "zh",
"current": null,
"history": [
{
"id": "lq3x9k2",
"task": "写周报",
"start": "2024-03-02T10:00:00.000Z",
"end": "2024-03-02T10:30:00.000Z",
"tags": ["work", "daily"],
"marks": [{ "time": "...", "note": "完成数据分析" }],
"estimatedMinutes": 30
}
]
}npm uninstall -g @cacinie/cace-timer详见 CHANGELOG.md。
MIT