rumo-cli 0.5.0__tar.gz → 0.6.1__tar.gz

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.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: rumo-cli
3
- Version: 0.5.0
4
- Summary: Your dev work, past, now and later: Markdown files, a terminal Timeline, and AI agents that keep it current
3
+ Version: 0.6.1
4
+ Summary: Your agent forgets, rumo doesn't: what each AI agent session did and what is left, in Markdown files and a terminal Timeline
5
5
  Project-URL: Homepage, https://github.com/pedrobuzzi/rumo
6
6
  Project-URL: Issues, https://github.com/pedrobuzzi/rumo/issues
7
7
  Author: Pedro Buzzi
@@ -21,25 +21,31 @@ Description-Content-Type: text/markdown
21
21
 
22
22
  # rumo
23
23
 
24
- **Your work, past, now and later.** rumo is a local, file-based organizer for a developer's own
25
- work. Every piece of work is a Markdown file on your machine. Run `rumo` to see it all as a
26
- Timeline, and let your AI agent sessions keep it up to date while you work.
24
+ **Your agent forgets. rumo doesn't.** rumo keeps what each AI agent session did and what is left, one
25
+ Markdown file per piece of work on your machine, through `/compact`, `/clear` and from one day to the
26
+ next. Run `rumo` to see it all as a Timeline and know what got done, what is left and who acts next,
27
+ without rereading a conversation.
27
28
 
28
29
  ![rumo Timeline](docs/timeline.svg)
29
30
 
30
31
  - **Now**: what you are doing or waiting on, with the next step of each item.
31
- - **Past**: what you finished in the last two weeks (answers "what did I do?" for a standup).
32
- - **Later**: ideas and paused work, so nothing you meant to do gets lost.
32
+ - **Past**: what you finished, or decided not to do, in the last two weeks (answers "what did I do?" for a standup).
33
+ - **Later**: ideas and paused work, so nothing you meant to do gets lost. Each idea shows how many days
34
+ it has sat untouched, and fades after 60.
33
35
 
34
36
  Items can belong to a **group** (a project or initiative), shown as a label with its name on its
35
- color; color in rumo only ever means the group. One item is one line, plus its next step. rumo shows
36
- one horizon at a time (`h` steps Now, Later, Past), named in a banner atop the list, in three views: the **Timeline**,
37
- **Projects** (one block per group) and **Repos** (one block per repository of the item's latest
38
- agent session). The interface is in English; the content (titles, notes, steps) is in your own
37
+ color; on titles and labels, color only ever means the group. One item is one line, plus its next open
38
+ steps (2 by default, `step_lines` in the config), each saying who acts: `manual`, `agent` or `waiting`, and
39
+ what git has left of its work (`git`). rumo shows
40
+ one horizon at a time (`h` steps Now, Later, Past), named in a banner atop the list, in four views: the **Timeline**,
41
+ **Projects** (one block per group), **Repos** (one block per repository of the item's latest
42
+ agent session) and **Tree** (the families: an item and the ideas and items that came from it). The interface is in English; the content (titles, notes, steps) is in your own
39
43
  language.
40
44
 
41
45
  Nothing leaves your machine. There is no server, no database and no sync with Jira or ClickUp
42
- (ask your agent to update those if you want).
46
+ (ask your agent to update those if you want). The exceptions are `?` and `*`, which you start yourself:
47
+ `?` sends the item's text, and `*` the text of your ideas (with only the titles of the rest), to Claude
48
+ through your own Claude Code (`claude -p`). Nothing else does.
43
49
 
44
50
  ## Install
45
51
 
@@ -74,7 +80,8 @@ system language.
74
80
  npx skills add pedrobuzzi/rumo
75
81
  ```
76
82
 
77
- **Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade rumo`), and
83
+ **Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade pedrobuzzi/tap/rumo`: the full
84
+ name lets Homebrew 7 trust the tap's formula), and
78
85
  `/plugin marketplace update rumo` in Claude Code, then `/reload-plugins` in sessions already open.
79
86
  To get new plugin versions on their own, turn on auto-update for the `rumo` marketplace in `/plugin`
80
87
  (Marketplaces tab); the `rumo` command updates with your package manager.
@@ -84,20 +91,26 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
84
91
 
85
92
  ## Use
86
93
 
87
- **In the terminal**: `rumo` opens the Timeline.
94
+ **In the terminal**: `rumo` opens the Timeline, and `rumo idea "<title>"` notes an idea from any shell
95
+ (`--group <key>` files it), naming up to three similar items it already knows, with the reason for
96
+ the ones you dropped.
88
97
 
89
98
  | Key | Action |
90
99
  |---|---|
91
100
  | ↑ ↓ | move through the list |
92
- | Tab | switch between the list, steps, PRs and sessions |
93
- | `v` | next view: Timeline, Projects, Repos (`1` `2` `3` go straight to one; rumo remembers it) |
101
+ | Tab | switch between the list, steps, PRs, family, explorations and sessions |
102
+ | `v` | next view: Timeline, Projects, Repos, Tree (`1` `2` `3` `4` go straight to one; rumo remembers it) |
94
103
  | `h` | next horizon: Now, then Later, then Past, then Now again |
95
- | `s` | change status (1-5 picks directly) |
104
+ | `s` | change status (1-6 picks directly); `6` drops the item and asks why, in one line kept as its Left off |
96
105
  | `g` | set the group or create one; inside, `r` renames, `c` recolors and `d` deletes the highlighted group (its items stay) |
97
106
  | `t` | toggle tags |
98
107
  | `n` | capture a new idea |
108
+ | `b` | branch: a new idea that comes from the selected item (same group and tags); Tab instead turns its next open step (the highlighted one, with the steps focused) into an item of its own, and that step checks itself when the new item is done |
109
+ | `?` | ask Claude about the item, in the background: a lens from the config, one of the next questions of its latest answer, or your own question. The answer lands under Explorations, and a notice says when |
110
+ | `*` | spark: Claude reads your ideas, paused and dropped items, oldest first, and brings 3 new ideas in a line each, with the direction it read in them. Throw any away with its number (or space), Enter adds the others to Later; Esc decides later. Sometimes it asks one or two short questions first |
111
+ | Enter | with the family focused: go to that item; with the explorations focused: read the answer (Esc goes back) |
99
112
  | `e` | open the item in `$EDITOR` |
100
- | `a` | add a step to the selected item, after its open steps (below the highlighted one when the steps have focus); in the dialog, Tab switches `[agent]` and `[manual]` |
113
+ | `a` | add a step to the selected item, after its open steps (below the highlighted one when the steps have focus); in the dialog, Tab goes through `[agent]`, `[manual]` and `[waiting]` |
101
114
  | Enter, shift+↑ ↓, `d`, space | with the steps focused: edit, move, delete (asks first) or check the highlighted step; Esc goes back |
102
115
  | `x` | hide or show the done steps of every item (rumo remembers it) |
103
116
  | `p` | add a PR link to the selected item (a title may follow the link); in the dialog, Tab switches the state |
@@ -111,14 +124,17 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
111
124
  | Command | What it does |
112
125
  |---|---|
113
126
  | `/rumo new` | Track this session's work as an item. Looks for a similar idea first and offers to promote it. |
114
- | `/rumo idea <text>` | Note something for later without leaving the topic. |
127
+ | `/rumo idea <text>` | Note something for later without leaving the topic. It comes from the linked item, and a similar idea you dropped is named with its reason. |
128
+ | `/rumo note <text>` | Keep a fact you learned (a conversation, a price, a number) under the item's Notes. |
115
129
  | `/rumo link [item]` | Continue an existing item in this session. |
116
130
  | `/rumo now` | List what is in progress, with the next step of each. |
117
131
  | `/rumo find <text>` | Search past, current and future items. |
118
132
  | `/rumo status` | Show where you left off on the linked item. |
119
133
  | `/rumo step <text>` | Add a step to the linked item, or to the item it belongs to when none is linked. |
120
134
  | `/rumo park [reason]` | Pause the item with an accurate "Left off" and stop updating it here. |
121
- | `/rumo done` | Finish the item (checks the steps, asks first). |
135
+ | `/rumo drop [reason]` | Drop the item for good, keeping why. |
136
+ | `/rumo done` | Finish the item (checks the steps, asks first, and offers what is left as ideas). |
137
+ | `/rumo ideas [30d]` | Review the ideas idle for a month: one plan to keep, drop, start or merge each, applied on your yes. |
122
138
  | `/rumo unlink` | Stop updating the item from this session. |
123
139
  | `/rumo sessions [7d]` | Catch up on the sessions open or active since the last review: create or update their items. |
124
140
 
@@ -143,7 +159,29 @@ happened. If a turn did work and no linked item changed, the plugin reminds the
143
159
  ends. Open steps are never deleted unless you ask, so half-done work stays in Now. One session can
144
160
  follow several topics: when you start something no linked item covers, the agent asks once whether to
145
161
  track it as a new item, add it as a step, or leave it out. Left off is one line and Context at most
146
- three. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the old one up again.
162
+ three. After a compaction, even one in the middle of a turn, and when a session is resumed, the agent
163
+ gets its items back at once. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the
164
+ old one up again.
165
+
166
+ Steps added or done since you last looked at an item are marked until you move on to another one:
167
+ `+2 ✓1` in the list, `new` and `done since you looked` in its detail. An answer from `?` that landed
168
+ says `1 answer`. An item that appeared since then says `new`. What you change yourself, in the
169
+ Timeline or with `e`, is never news.
170
+
171
+ `?` runs `claude -p` in the background, away from your CLAUDE.md, plugins and hooks, with web search
172
+ and nothing else, for up to 10 minutes; closing the Timeline does not stop it. The answer (about 350
173
+ words, citing its sources, in your language) ends with three next questions, which `?` offers the next
174
+ time. One question runs at a time per item; one that fails says why and can be asked again. With
175
+ `keep_digging` set in the config (a deep-research script called with `-q <question file> -o <folder>
176
+ -n <rounds>`), a `deep` lens runs it for up to 90 minutes, keeping its raw output in `research/<item>/`
177
+ next to your items.
178
+
179
+ `*` runs the same way, for up to 10 minutes, and a notice says when the ideas (or its questions) are
180
+ ready. Its ideas cross yours, move them somewhere else, or stay close to where you are heading, after
181
+ a quick web search that they answer a real need. A kept idea comes `from:` the idea it builds on, in
182
+ its group, with its one-line summary as Context, so `?`, `b` and `s` work on it like on any other. The
183
+ ones you throw away are remembered and never suggested again. All of it lives in `spark.json`, next
184
+ to your items.
147
185
 
148
186
  You can add, edit, move, check and delete steps in the Timeline too. On your next message, a linked
149
187
  session is told which steps changed since its last answer, so it neither redoes nor re-adds them, and
@@ -158,6 +196,13 @@ current and adds the PRs opened from the branches the item's sessions worked on.
158
196
  state when it learns one, and you can add, edit, open and delete PRs in the Timeline too; a PR you
159
197
  delete is never added back. The list shows how many PRs of each item are still open.
160
198
 
199
+ rumo also says what git has left of an item's work: files not committed and commits that no remote has,
200
+ in the repositories and branches its sessions worked on. While the Timeline is open, it checks every
201
+ few seconds and shows a `git` line under the item and in its detail (`web-app (main): 2 commits not
202
+ pushed · 1 file not committed`). When several items worked on one branch, it shows on the one updated
203
+ last. When you park or finish an item, the agent tells you too, and it never commits or pushes unless
204
+ you ask.
205
+
161
206
  In a session without an item, the agent learns at the start what is in progress in that repository
162
207
  (up to three items, with their next step), so it can answer "what is left?"; `rumo now` lists
163
208
  everything in progress. Once that session edits files, the agent asks whether to track it. The first
@@ -185,6 +230,7 @@ Users land on a protected page after logging out.
185
230
  ## Steps
186
231
  - [x] [agent] Fix the logout handler
187
232
  - [ ] [manual] Ask for a PR review
233
+ - [ ] [waiting] Review from the team
188
234
  - [ ] [agent] e2e test for logout
189
235
 
190
236
  ## PRs
@@ -194,8 +240,14 @@ Users land on a protected page after logging out.
194
240
  - 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
195
241
  ```
196
242
 
197
- - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
198
- - Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
243
+ - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`, `dropped`. `done: <date>` is set when an item is
244
+ finished, `dropped: <date>` when it is dropped (its Left off says why).
245
+ - `from: <slug>` names the item this one came from. `## Notes` holds dated facts you learned
246
+ (`- 2026-10-11 <text>`), `## Explorations` the answers from `?`, and a step that became an item reads
247
+ `- [ ] [item] <text> → <slug>`. Files about an item (research) go in `research/<slug>/`.
248
+ - Steps say who acts: `[agent]` (the AI can do it), `[manual]` (you do it) or `[waiting]` (someone or
249
+ something else must act first: a reviewer, the App Store, a client). When the first open step is
250
+ `[waiting]`, the agent sets the item to `waiting`.
199
251
  - PRs are one link per line, with the state in brackets (`open`, `draft`, `merged`, `closed`; none when
200
252
  unknown) and an optional title after the link.
201
253
  - An idea can be just the frontmatter; it grows when you start working on it.
@@ -212,6 +264,17 @@ language = "pt-BR" # language of the content the agent writes; defaults to y
212
264
  tags = ["bug", "feature", "refactor", "research", "spike", "review",
213
265
  "infra", "deploy", "meeting", "docs", "support", "tech-debt"]
214
266
  ask_to_track = true # offer rumo in agent sessions without an item; unset until you first answer
267
+ step_lines = 2 # open steps shown under each item in the list, 1 to 6
268
+ explore_command = "claude" # what `?` runs; a full path when claude is not on PATH
269
+ keep_digging = "~/bin/keep-digging" # optional: enables the deep lens
270
+ deep_iterations = 3 # keep-digging rounds, 1 to 10
271
+
272
+ [lenses] # what `?` offers, in this order (these are the defaults); write them in your language
273
+ open = "What is still unclear about this, and which of those doubts matters most?"
274
+ pessimistic = "Pessimistic scenario: how does this fail, and what would show it early?"
275
+ validate = "What is the cheapest real test to validate this in one week?"
276
+ competitors = "Who already does this, what do they charge, and where do they fail?"
277
+ smallest = "What is the smallest version that would still solve the problem?"
215
278
 
216
279
  [groups.auth]
217
280
  name = "Auth migration"
@@ -219,7 +282,8 @@ color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
219
282
  ```
220
283
 
221
284
  Groups appear in the order of this file in every view. The last view, and when the agent last
222
- asked about tracking, are remembered in `state.json`, next to `config.toml`.
285
+ asked about tracking, are remembered in `state.json`, next to `config.toml`; `explore.log`, next to
286
+ them, keeps what `?` and `*` run printed.
223
287
 
224
288
  `RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
225
289
 
@@ -1,24 +1,30 @@
1
1
  # rumo
2
2
 
3
- **Your work, past, now and later.** rumo is a local, file-based organizer for a developer's own
4
- work. Every piece of work is a Markdown file on your machine. Run `rumo` to see it all as a
5
- Timeline, and let your AI agent sessions keep it up to date while you work.
3
+ **Your agent forgets. rumo doesn't.** rumo keeps what each AI agent session did and what is left, one
4
+ Markdown file per piece of work on your machine, through `/compact`, `/clear` and from one day to the
5
+ next. Run `rumo` to see it all as a Timeline and know what got done, what is left and who acts next,
6
+ without rereading a conversation.
6
7
 
7
8
  ![rumo Timeline](docs/timeline.svg)
8
9
 
9
10
  - **Now**: what you are doing or waiting on, with the next step of each item.
10
- - **Past**: what you finished in the last two weeks (answers "what did I do?" for a standup).
11
- - **Later**: ideas and paused work, so nothing you meant to do gets lost.
11
+ - **Past**: what you finished, or decided not to do, in the last two weeks (answers "what did I do?" for a standup).
12
+ - **Later**: ideas and paused work, so nothing you meant to do gets lost. Each idea shows how many days
13
+ it has sat untouched, and fades after 60.
12
14
 
13
15
  Items can belong to a **group** (a project or initiative), shown as a label with its name on its
14
- color; color in rumo only ever means the group. One item is one line, plus its next step. rumo shows
15
- one horizon at a time (`h` steps Now, Later, Past), named in a banner atop the list, in three views: the **Timeline**,
16
- **Projects** (one block per group) and **Repos** (one block per repository of the item's latest
17
- agent session). The interface is in English; the content (titles, notes, steps) is in your own
16
+ color; on titles and labels, color only ever means the group. One item is one line, plus its next open
17
+ steps (2 by default, `step_lines` in the config), each saying who acts: `manual`, `agent` or `waiting`, and
18
+ what git has left of its work (`git`). rumo shows
19
+ one horizon at a time (`h` steps Now, Later, Past), named in a banner atop the list, in four views: the **Timeline**,
20
+ **Projects** (one block per group), **Repos** (one block per repository of the item's latest
21
+ agent session) and **Tree** (the families: an item and the ideas and items that came from it). The interface is in English; the content (titles, notes, steps) is in your own
18
22
  language.
19
23
 
20
24
  Nothing leaves your machine. There is no server, no database and no sync with Jira or ClickUp
21
- (ask your agent to update those if you want).
25
+ (ask your agent to update those if you want). The exceptions are `?` and `*`, which you start yourself:
26
+ `?` sends the item's text, and `*` the text of your ideas (with only the titles of the rest), to Claude
27
+ through your own Claude Code (`claude -p`). Nothing else does.
22
28
 
23
29
  ## Install
24
30
 
@@ -53,7 +59,8 @@ system language.
53
59
  npx skills add pedrobuzzi/rumo
54
60
  ```
55
61
 
56
- **Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade rumo`), and
62
+ **Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade pedrobuzzi/tap/rumo`: the full
63
+ name lets Homebrew 7 trust the tap's formula), and
57
64
  `/plugin marketplace update rumo` in Claude Code, then `/reload-plugins` in sessions already open.
58
65
  To get new plugin versions on their own, turn on auto-update for the `rumo` marketplace in `/plugin`
59
66
  (Marketplaces tab); the `rumo` command updates with your package manager.
@@ -63,20 +70,26 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
63
70
 
64
71
  ## Use
65
72
 
66
- **In the terminal**: `rumo` opens the Timeline.
73
+ **In the terminal**: `rumo` opens the Timeline, and `rumo idea "<title>"` notes an idea from any shell
74
+ (`--group <key>` files it), naming up to three similar items it already knows, with the reason for
75
+ the ones you dropped.
67
76
 
68
77
  | Key | Action |
69
78
  |---|---|
70
79
  | ↑ ↓ | move through the list |
71
- | Tab | switch between the list, steps, PRs and sessions |
72
- | `v` | next view: Timeline, Projects, Repos (`1` `2` `3` go straight to one; rumo remembers it) |
80
+ | Tab | switch between the list, steps, PRs, family, explorations and sessions |
81
+ | `v` | next view: Timeline, Projects, Repos, Tree (`1` `2` `3` `4` go straight to one; rumo remembers it) |
73
82
  | `h` | next horizon: Now, then Later, then Past, then Now again |
74
- | `s` | change status (1-5 picks directly) |
83
+ | `s` | change status (1-6 picks directly); `6` drops the item and asks why, in one line kept as its Left off |
75
84
  | `g` | set the group or create one; inside, `r` renames, `c` recolors and `d` deletes the highlighted group (its items stay) |
76
85
  | `t` | toggle tags |
77
86
  | `n` | capture a new idea |
87
+ | `b` | branch: a new idea that comes from the selected item (same group and tags); Tab instead turns its next open step (the highlighted one, with the steps focused) into an item of its own, and that step checks itself when the new item is done |
88
+ | `?` | ask Claude about the item, in the background: a lens from the config, one of the next questions of its latest answer, or your own question. The answer lands under Explorations, and a notice says when |
89
+ | `*` | spark: Claude reads your ideas, paused and dropped items, oldest first, and brings 3 new ideas in a line each, with the direction it read in them. Throw any away with its number (or space), Enter adds the others to Later; Esc decides later. Sometimes it asks one or two short questions first |
90
+ | Enter | with the family focused: go to that item; with the explorations focused: read the answer (Esc goes back) |
78
91
  | `e` | open the item in `$EDITOR` |
79
- | `a` | add a step to the selected item, after its open steps (below the highlighted one when the steps have focus); in the dialog, Tab switches `[agent]` and `[manual]` |
92
+ | `a` | add a step to the selected item, after its open steps (below the highlighted one when the steps have focus); in the dialog, Tab goes through `[agent]`, `[manual]` and `[waiting]` |
80
93
  | Enter, shift+↑ ↓, `d`, space | with the steps focused: edit, move, delete (asks first) or check the highlighted step; Esc goes back |
81
94
  | `x` | hide or show the done steps of every item (rumo remembers it) |
82
95
  | `p` | add a PR link to the selected item (a title may follow the link); in the dialog, Tab switches the state |
@@ -90,14 +103,17 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
90
103
  | Command | What it does |
91
104
  |---|---|
92
105
  | `/rumo new` | Track this session's work as an item. Looks for a similar idea first and offers to promote it. |
93
- | `/rumo idea <text>` | Note something for later without leaving the topic. |
106
+ | `/rumo idea <text>` | Note something for later without leaving the topic. It comes from the linked item, and a similar idea you dropped is named with its reason. |
107
+ | `/rumo note <text>` | Keep a fact you learned (a conversation, a price, a number) under the item's Notes. |
94
108
  | `/rumo link [item]` | Continue an existing item in this session. |
95
109
  | `/rumo now` | List what is in progress, with the next step of each. |
96
110
  | `/rumo find <text>` | Search past, current and future items. |
97
111
  | `/rumo status` | Show where you left off on the linked item. |
98
112
  | `/rumo step <text>` | Add a step to the linked item, or to the item it belongs to when none is linked. |
99
113
  | `/rumo park [reason]` | Pause the item with an accurate "Left off" and stop updating it here. |
100
- | `/rumo done` | Finish the item (checks the steps, asks first). |
114
+ | `/rumo drop [reason]` | Drop the item for good, keeping why. |
115
+ | `/rumo done` | Finish the item (checks the steps, asks first, and offers what is left as ideas). |
116
+ | `/rumo ideas [30d]` | Review the ideas idle for a month: one plan to keep, drop, start or merge each, applied on your yes. |
101
117
  | `/rumo unlink` | Stop updating the item from this session. |
102
118
  | `/rumo sessions [7d]` | Catch up on the sessions open or active since the last review: create or update their items. |
103
119
 
@@ -122,7 +138,29 @@ happened. If a turn did work and no linked item changed, the plugin reminds the
122
138
  ends. Open steps are never deleted unless you ask, so half-done work stays in Now. One session can
123
139
  follow several topics: when you start something no linked item covers, the agent asks once whether to
124
140
  track it as a new item, add it as a step, or leave it out. Left off is one line and Context at most
125
- three. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the old one up again.
141
+ three. After a compaction, even one in the middle of a turn, and when a session is resumed, the agent
142
+ gets its items back at once. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the
143
+ old one up again.
144
+
145
+ Steps added or done since you last looked at an item are marked until you move on to another one:
146
+ `+2 ✓1` in the list, `new` and `done since you looked` in its detail. An answer from `?` that landed
147
+ says `1 answer`. An item that appeared since then says `new`. What you change yourself, in the
148
+ Timeline or with `e`, is never news.
149
+
150
+ `?` runs `claude -p` in the background, away from your CLAUDE.md, plugins and hooks, with web search
151
+ and nothing else, for up to 10 minutes; closing the Timeline does not stop it. The answer (about 350
152
+ words, citing its sources, in your language) ends with three next questions, which `?` offers the next
153
+ time. One question runs at a time per item; one that fails says why and can be asked again. With
154
+ `keep_digging` set in the config (a deep-research script called with `-q <question file> -o <folder>
155
+ -n <rounds>`), a `deep` lens runs it for up to 90 minutes, keeping its raw output in `research/<item>/`
156
+ next to your items.
157
+
158
+ `*` runs the same way, for up to 10 minutes, and a notice says when the ideas (or its questions) are
159
+ ready. Its ideas cross yours, move them somewhere else, or stay close to where you are heading, after
160
+ a quick web search that they answer a real need. A kept idea comes `from:` the idea it builds on, in
161
+ its group, with its one-line summary as Context, so `?`, `b` and `s` work on it like on any other. The
162
+ ones you throw away are remembered and never suggested again. All of it lives in `spark.json`, next
163
+ to your items.
126
164
 
127
165
  You can add, edit, move, check and delete steps in the Timeline too. On your next message, a linked
128
166
  session is told which steps changed since its last answer, so it neither redoes nor re-adds them, and
@@ -137,6 +175,13 @@ current and adds the PRs opened from the branches the item's sessions worked on.
137
175
  state when it learns one, and you can add, edit, open and delete PRs in the Timeline too; a PR you
138
176
  delete is never added back. The list shows how many PRs of each item are still open.
139
177
 
178
+ rumo also says what git has left of an item's work: files not committed and commits that no remote has,
179
+ in the repositories and branches its sessions worked on. While the Timeline is open, it checks every
180
+ few seconds and shows a `git` line under the item and in its detail (`web-app (main): 2 commits not
181
+ pushed · 1 file not committed`). When several items worked on one branch, it shows on the one updated
182
+ last. When you park or finish an item, the agent tells you too, and it never commits or pushes unless
183
+ you ask.
184
+
140
185
  In a session without an item, the agent learns at the start what is in progress in that repository
141
186
  (up to three items, with their next step), so it can answer "what is left?"; `rumo now` lists
142
187
  everything in progress. Once that session edits files, the agent asks whether to track it. The first
@@ -164,6 +209,7 @@ Users land on a protected page after logging out.
164
209
  ## Steps
165
210
  - [x] [agent] Fix the logout handler
166
211
  - [ ] [manual] Ask for a PR review
212
+ - [ ] [waiting] Review from the team
167
213
  - [ ] [agent] e2e test for logout
168
214
 
169
215
  ## PRs
@@ -173,8 +219,14 @@ Users land on a protected page after logging out.
173
219
  - 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
174
220
  ```
175
221
 
176
- - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
177
- - Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
222
+ - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`, `dropped`. `done: <date>` is set when an item is
223
+ finished, `dropped: <date>` when it is dropped (its Left off says why).
224
+ - `from: <slug>` names the item this one came from. `## Notes` holds dated facts you learned
225
+ (`- 2026-10-11 <text>`), `## Explorations` the answers from `?`, and a step that became an item reads
226
+ `- [ ] [item] <text> → <slug>`. Files about an item (research) go in `research/<slug>/`.
227
+ - Steps say who acts: `[agent]` (the AI can do it), `[manual]` (you do it) or `[waiting]` (someone or
228
+ something else must act first: a reviewer, the App Store, a client). When the first open step is
229
+ `[waiting]`, the agent sets the item to `waiting`.
178
230
  - PRs are one link per line, with the state in brackets (`open`, `draft`, `merged`, `closed`; none when
179
231
  unknown) and an optional title after the link.
180
232
  - An idea can be just the frontmatter; it grows when you start working on it.
@@ -191,6 +243,17 @@ language = "pt-BR" # language of the content the agent writes; defaults to y
191
243
  tags = ["bug", "feature", "refactor", "research", "spike", "review",
192
244
  "infra", "deploy", "meeting", "docs", "support", "tech-debt"]
193
245
  ask_to_track = true # offer rumo in agent sessions without an item; unset until you first answer
246
+ step_lines = 2 # open steps shown under each item in the list, 1 to 6
247
+ explore_command = "claude" # what `?` runs; a full path when claude is not on PATH
248
+ keep_digging = "~/bin/keep-digging" # optional: enables the deep lens
249
+ deep_iterations = 3 # keep-digging rounds, 1 to 10
250
+
251
+ [lenses] # what `?` offers, in this order (these are the defaults); write them in your language
252
+ open = "What is still unclear about this, and which of those doubts matters most?"
253
+ pessimistic = "Pessimistic scenario: how does this fail, and what would show it early?"
254
+ validate = "What is the cheapest real test to validate this in one week?"
255
+ competitors = "Who already does this, what do they charge, and where do they fail?"
256
+ smallest = "What is the smallest version that would still solve the problem?"
194
257
 
195
258
  [groups.auth]
196
259
  name = "Auth migration"
@@ -198,7 +261,8 @@ color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
198
261
  ```
199
262
 
200
263
  Groups appear in the order of this file in every view. The last view, and when the agent last
201
- asked about tracking, are remembered in `state.json`, next to `config.toml`.
264
+ asked about tracking, are remembered in `state.json`, next to `config.toml`; `explore.log`, next to
265
+ them, keeps what `?` and `*` run printed.
202
266
 
203
267
  `RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
204
268
 
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "rumo-cli"
3
- version = "0.5.0"
4
- description = "Your dev work, past, now and later: Markdown files, a terminal Timeline, and AI agents that keep it current"
3
+ version = "0.6.1"
4
+ description = "Your agent forgets, rumo doesn't: what each AI agent session did and what is left, in Markdown files and a terminal Timeline"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
7
  license = "MIT"