vibe-pomo 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -72
- package/README.zh.md +1 -1
- package/install.mjs +10 -5
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
<!-- README-I18N:START -->
|
|
11
11
|
|
|
12
|
-
**English** | [
|
|
12
|
+
**English** | [中文](./README.zh.md)
|
|
13
13
|
|
|
14
14
|
<!-- README-I18N:END -->
|
|
15
15
|
|
|
@@ -17,69 +17,9 @@
|
|
|
17
17
|
|
|
18
18
|
## Why vibe-pomo
|
|
19
19
|
|
|
20
|
-
Most AI coding tools
|
|
20
|
+
Most AI coding tools assume you're always watching — the agent pings you, waits for you, interrupts you. **vibe-pomo flips this.** Start a Pomodoro, hand the agent a task, and step away. Tool calls auto-approved, notifications silenced, decisions queued. When the timer ends, *you* decide when to come back.
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
**Deep focus, on both sides.**
|
|
25
|
-
Block out distraction-free time for yourself while the agent runs its own uninterrupted work session. No context switches. No reactive loops. Just two parallel flows converging when you're ready.
|
|
26
|
-
|
|
27
|
-
**Know where your time goes.**
|
|
28
|
-
Every session is logged with what the agent accomplished and what you worked on. Review per-project focus time, browse session history, and see exactly how your hours were spent — a clear record for personal retrospectives and project planning.
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## How It Works
|
|
33
|
-
|
|
34
|
-
Two terminals, two roles:
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
Terminal A — daemon (always open) Terminal B — Claude Code conversation
|
|
38
|
-
───────────────────────────────── ───────────────────────────────────────
|
|
39
|
-
$ pomodoro daemon /pomodoro 25m Fix auth bug
|
|
40
|
-
|
|
|
41
|
-
🍅 Pomodoro daemon running +---> Timer window opens
|
|
42
|
-
Agent starts working
|
|
43
|
-
Active Sessions Notifications silenced
|
|
44
|
-
23:41 my-project Fix auth bug Tool calls auto-approved
|
|
45
|
-
|
|
46
|
-
Project Focus Time
|
|
47
|
-
my-project ████████████░░ 3h 45m
|
|
48
|
-
|
|
49
|
-
Recent Sessions
|
|
50
|
-
my-project Fix auth bug
|
|
51
|
-
🤖 Rewrote JWT middleware
|
|
52
|
-
👤 Had a planning call
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
Timer window (per session)
|
|
57
|
-
──────────────────────────────────
|
|
58
|
-
🍅 Pomodoro
|
|
59
|
-
|
|
60
|
-
+02:13 OVERTIME
|
|
61
|
-
|
|
62
|
-
Task: Fix auth bug
|
|
63
|
-
|
|
64
|
-
Notifications
|
|
65
|
-
┌──────────────────────────────┐
|
|
66
|
-
│ Build passed │
|
|
67
|
-
│ Tests: 42 passed │
|
|
68
|
-
└──────────────────────────────┘
|
|
69
|
-
|
|
70
|
-
[E] End Session [B] Break [Q] Quit
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
When the timer ends, queued notifications are released and you're prompted to log what *you* did during that time:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
What did you do during this session?
|
|
77
|
-
(optional — press Enter to skip)
|
|
78
|
-
|
|
79
|
-
> Reviewed the RFC, had a planning call with the team
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
This gets saved alongside the agent's summary, giving you a dual-perspective record of every session.
|
|
22
|
+
Every session is logged — what the agent did, what you did — giving you a clear record across projects.
|
|
83
23
|
|
|
84
24
|
---
|
|
85
25
|
|
|
@@ -110,7 +50,24 @@ pomodoro install
|
|
|
110
50
|
pomodoro daemon
|
|
111
51
|
```
|
|
112
52
|
|
|
113
|
-
|
|
53
|
+
```
|
|
54
|
+
🍅 Pomodoro daemon running · 1 active session [Q] Quit daemon
|
|
55
|
+
|
|
56
|
+
Active Sessions
|
|
57
|
+
23:41 my-project Fix auth bug [3 queued]
|
|
58
|
+
|
|
59
|
+
Project Focus Time
|
|
60
|
+
my-project ████████████████████████████ 4h 25m
|
|
61
|
+
side-project ███████████░░░░░░░░░░░░░░░░░ 1h 45m
|
|
62
|
+
|
|
63
|
+
Recent Sessions
|
|
64
|
+
4/13 my-project Refactor auth module 28m completed
|
|
65
|
+
🤖 Rewrote JWT middleware, pending: refresh token expiry strategy
|
|
66
|
+
👤 Read RFC, had planning call with team
|
|
67
|
+
4/13 my-project Fix payment webhook 18m completed
|
|
68
|
+
🤖 Found and fixed Stripe signature validation bug
|
|
69
|
+
👤 Coffee, cleared inbox
|
|
70
|
+
```
|
|
114
71
|
|
|
115
72
|
### 2. Start a session
|
|
116
73
|
|
|
@@ -123,22 +80,48 @@ pomodoro start 25m Refactor the auth module
|
|
|
123
80
|
pomodoro start Refactor the auth module # uses default duration
|
|
124
81
|
```
|
|
125
82
|
|
|
126
|
-
A timer window opens. The agent starts working. You're free.
|
|
83
|
+
A timer window opens in a new terminal. The agent starts working. You're free.
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
🍅 Pomodoro
|
|
87
|
+
|
|
88
|
+
23:45
|
|
89
|
+
RUNNING
|
|
127
90
|
|
|
128
|
-
|
|
91
|
+
Task Refactor the auth module
|
|
129
92
|
|
|
130
|
-
|
|
93
|
+
Notifications (3 queued, releasing at overtime…)
|
|
94
|
+
┌────────────────────────────────────────────────────────────┐
|
|
95
|
+
│ — │
|
|
96
|
+
└────────────────────────────────────────────────────────────┘
|
|
131
97
|
|
|
98
|
+
[B] Break [Q] Quit
|
|
132
99
|
```
|
|
133
|
-
|
|
134
|
-
|
|
100
|
+
|
|
101
|
+
### 3. When the timer ends
|
|
102
|
+
|
|
103
|
+
The display switches to overtime and queued notifications are released. Press **E** to end the session and log what you did.
|
|
104
|
+
|
|
135
105
|
```
|
|
106
|
+
🍅 Pomodoro
|
|
136
107
|
|
|
137
|
-
|
|
108
|
+
+02:13
|
|
109
|
+
OVERTIME
|
|
110
|
+
|
|
111
|
+
Task Refactor the auth module
|
|
112
|
+
|
|
113
|
+
Notifications
|
|
114
|
+
┌────────────────────────────────────────────────────────────┐
|
|
115
|
+
│ 09:42:01 Build passed │
|
|
116
|
+
│ 09:42:01 Tests: 42 passed │
|
|
117
|
+
└────────────────────────────────────────────────────────────┘
|
|
118
|
+
|
|
119
|
+
[E] End Session [B] Break [Q] Quit
|
|
120
|
+
```
|
|
138
121
|
|
|
139
|
-
|
|
122
|
+
The agent's summary and any pending decisions are saved to `.claude/pomodoro-summary.md` and `.claude/pomodoro-pending.md`.
|
|
140
123
|
|
|
141
|
-
###
|
|
124
|
+
### 4. Review your stats
|
|
142
125
|
|
|
143
126
|
```bash
|
|
144
127
|
pomodoro stats
|
package/README.zh.md
CHANGED
package/install.mjs
CHANGED
|
@@ -15,8 +15,10 @@ const SETTINGS_PATH = join(homedir(), '.claude', 'settings.json')
|
|
|
15
15
|
|
|
16
16
|
export function runInstall() {
|
|
17
17
|
const nodeExec = process.execPath
|
|
18
|
-
//
|
|
19
|
-
|
|
18
|
+
// On Windows, backslashes in paths break bash (used by Claude Code hooks).
|
|
19
|
+
// Convert to forward slashes, which work in both cmd/PowerShell and Git Bash.
|
|
20
|
+
const normPath = (p) => p.replace(/\\/g, '/')
|
|
21
|
+
const q = (p) => { const n = normPath(p); return n.includes(' ') ? `"${n}"` : n }
|
|
20
22
|
|
|
21
23
|
const hookDefs = {
|
|
22
24
|
PreToolUse: [
|
|
@@ -109,7 +111,8 @@ function installSlashCommand() {
|
|
|
109
111
|
function writePomodoroCommand(dest) {
|
|
110
112
|
const pomodoroPath = join(__dirname, 'bin', 'pomodoro.mjs')
|
|
111
113
|
const nodeExec = process.execPath
|
|
112
|
-
const
|
|
114
|
+
const normPath = (p) => p.replace(/\\/g, '/')
|
|
115
|
+
const q = (p) => { const n = normPath(p); return n.includes(' ') ? `"${n}"` : n }
|
|
113
116
|
writeFileSync(dest, `---
|
|
114
117
|
description: Start a Pomodoro focus session — agent works autonomously until timer ends
|
|
115
118
|
argument-hint: "[duration e.g. 25m] [task description]"
|
|
@@ -138,7 +141,8 @@ The user has started a Pomodoro focus session and **will not be checking the scr
|
|
|
138
141
|
function writeStatsCommand(dest) {
|
|
139
142
|
const pomodoroPath = join(__dirname, 'bin', 'pomodoro.mjs')
|
|
140
143
|
const nodeExec = process.execPath
|
|
141
|
-
const
|
|
144
|
+
const normPath = (p) => p.replace(/\\/g, '/')
|
|
145
|
+
const q = (p) => { const n = normPath(p); return n.includes(' ') ? `"${n}"` : n }
|
|
142
146
|
writeFileSync(dest, `---
|
|
143
147
|
description: Show Pomodoro time tracking statistics
|
|
144
148
|
---
|
|
@@ -154,7 +158,8 @@ ${q(nodeExec)} ${q(pomodoroPath)} stats
|
|
|
154
158
|
function writeStopCommand(dest) {
|
|
155
159
|
const pomodoroPath = join(__dirname, 'bin', 'pomodoro.mjs')
|
|
156
160
|
const nodeExec = process.execPath
|
|
157
|
-
const
|
|
161
|
+
const normPath = (p) => p.replace(/\\/g, '/')
|
|
162
|
+
const q = (p) => { const n = normPath(p); return n.includes(' ') ? `"${n}"` : n }
|
|
158
163
|
writeFileSync(dest, `---
|
|
159
164
|
description: Break (stop) the current Pomodoro session
|
|
160
165
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibe-pomo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "You and your agent, both in flow. A Pomodoro timer for Claude Code that keeps agents working autonomously while you stay deep in focus — uninterrupted.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"better-sqlite3": "^9.4.3",
|
|
37
37
|
"ink": "^5.1.0",
|
|
38
38
|
"ink-text-input": "^6.0.0",
|
|
39
|
-
"react": "^18.3.1"
|
|
39
|
+
"react": "^18.3.1",
|
|
40
|
+
"tsx": "^4.19.2"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
43
|
"@types/better-sqlite3": "^7.6.8",
|
|
43
|
-
"@types/react": "^18.3.1"
|
|
44
|
-
"tsx": "^4.19.2"
|
|
44
|
+
"@types/react": "^18.3.1"
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=20"
|