Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
name: CI
on:
push:
branches: [main, master]
branches: [main]
pull_request:
branches: [main, master]
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci || npm install
- run: npm run build || true
- run: npm test || true
- run: npm ci
- run: npm run build
Binary file modified .gitignore
Binary file not shown.
142 changes: 140 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,147 @@
# cace-timer

[![npm version](https://img.shields.io/npm/v/@cacinie/cace-timer.svg)](https://www.npmjs.com/package/@cacinie/cace-timer)
[![license](https://img.shields.io/npm/l/@cacinie/cace-timer.svg)](https://github.com/CacinieP/cace-timer/blob/main/LICENSE)

A minimal time tracking CLI with cute anime girl mascot.

Built with TypeScript. A simple and lightweight time management tool for the terminal.
```
npm install -g @cacinie/cace-timer
```

```
▄▄▄▄▄▄▄▄▄▄▄▄
█░░░░░░░░░░░░█
█░▄▄▄▄▄▄▄▄▄░█
█░│ ● ● │░█
█░│ ▽ │░█
█░│ ─── │░█
╰────────────╯
CACE TIMER
```

## Quick Start

```bash
# Start a task
tk start "写周报" --tag work --estimate 30

# Mark progress
tk mark "完成数据分析"

# Check status
tk status

# Stop and get efficiency score
tk stop
```

## Commands

### `tk start <task> [options]`

Start a new task.

| Option | Description |
|--------|-------------|
| `--tag <tag>` | Add a tag |
| `--estimate <minutes>` | Estimated duration (for efficiency score) |

```bash
tk start "开发登录功能" --tag coding --estimate 60
```

### `tk mark <note>`

Record a time checkpoint.

```bash
tk mark "完成API接口"
tk mark "开始写测试"
```

### `tk stop`

Stop current task, show summary and efficiency score.

| Score | Emoji | Meaning |
|-------|-------|---------|
| 100% | 🏆 | Actual ≤ Estimate |
| 80-99% | 💪 | Slightly over |
| <50% | 💀 | Far over estimate |

### `tk status`

Show current running task.

### `tk list [options]`

View history.

| Option | Description |
|--------|-------------|
| `--today` | Today only |
| `--tag <tag>` | Filter by tag |
| `--limit <n>` | Limit count (default 10) |

```bash
tk list --today
tk list --tag coding --limit 20
```

### `tk search <keyword>`

Search across task names, tags, and mark notes.

```bash
tk search "登录"
```

### `tk sync <path>`

Set sync file path for cross-device sync (Dropbox / iCloud / OneDrive).

```bash
tk sync ~/Dropbox/cace-timer.json
```

### `tk help`

Show help.

## CACE Mascot

CACE reacts to what you do:

| State | Eyes | Mouth | When |
|-------|------|-------|------|
| Normal | ● ● | ─── | Default |
| Happy | ★ ★ | ◡◡◡ | Task completed |
| Sleepy | ─ ─ | ─── | No active task |
| Blink | ─ ─ | ─── | Animation frame |

## Data

All data is stored in `~/.cace-timer.json`. Single JSON file, easy to backup and sync.

## Changelog

### v1.1.0

- Restructured repo layout (flat structure, no nested `timekeeper/`)
- Fixed `.gitignore` (dist/ was not properly ignored)
- Fixed CI workflow (was running in wrong directory)
- Added Node 18/20/22 matrix in CI
- Added `engines` field in package.json

### v1.0.0

- Initial release
- start / mark / stop / status / list / search / sync commands
- CACE mascot animation
- Efficiency scoring
- Cloud sync support

## License

MIT
MIT
11 changes: 7 additions & 4 deletions timekeeper/package-lock.json → package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

37 changes: 28 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,39 @@
{
"name": "timekeeper-260302",
"version": "1.0.0",
"description": "",
"main": "index.js",
"name": "@cacinie/cace-timer",
"version": "1.1.0",
"description": "A minimal time tracking CLI with cute anime girl mascot",
"main": "dist/index.js",
"bin": {
"tk": "dist/index.js",
"cace-timer": "dist/index.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"build": "tsc",
"dev": "ts-node src/index.ts",
"start": "node dist/index.js",
"prepublishOnly": "npm run build"
},
"files": ["dist", "README.md", "LICENSE"],
"keywords": ["time", "tracker", "cli", "timer", "productivity", "anime", "mascot"],
"author": "CacinieP <cacinie@gmail.com>",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/CacinieP/cace-timer.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/CacinieP/cace-timer/issues"
},
"homepage": "https://github.com/CacinieP/cace-timer#readme"
"homepage": "https://github.com/CacinieP/cace-timer#readme",
"engines": {
"node": ">=18"
},
"publishConfig": {
"access": "public"
},
"devDependencies": {
"@types/node": "^20.10.0",
"ts-node": "^10.9.2",
"typescript": "^5.3.0"
}
}
File renamed without changes.
Loading
Loading