rumo-cli 0.4.0__tar.gz → 0.6.0__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.4.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.0
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
 
@@ -84,20 +90,26 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
84
90
 
85
91
  ## Use
86
92
 
87
- **In the terminal**: `rumo` opens the Timeline.
93
+ **In the terminal**: `rumo` opens the Timeline, and `rumo idea "<title>"` notes an idea from any shell
94
+ (`--group <key>` files it), naming up to three similar items it already knows, with the reason for
95
+ the ones you dropped.
88
96
 
89
97
  | Key | Action |
90
98
  |---|---|
91
99
  | ↑ ↓ | 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) |
100
+ | Tab | switch between the list, steps, PRs, family, explorations and sessions |
101
+ | `v` | next view: Timeline, Projects, Repos, Tree (`1` `2` `3` `4` go straight to one; rumo remembers it) |
94
102
  | `h` | next horizon: Now, then Later, then Past, then Now again |
95
- | `s` | change status (1-5 picks directly) |
103
+ | `s` | change status (1-6 picks directly); `6` drops the item and asks why, in one line kept as its Left off |
96
104
  | `g` | set the group or create one; inside, `r` renames, `c` recolors and `d` deletes the highlighted group (its items stay) |
97
105
  | `t` | toggle tags |
98
106
  | `n` | capture a new idea |
107
+ | `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 |
108
+ | `?` | 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 |
109
+ | `*` | 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 |
110
+ | Enter | with the family focused: go to that item; with the explorations focused: read the answer (Esc goes back) |
99
111
  | `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]` |
112
+ | `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
113
  | Enter, shift+↑ ↓, `d`, space | with the steps focused: edit, move, delete (asks first) or check the highlighted step; Esc goes back |
102
114
  | `x` | hide or show the done steps of every item (rumo remembers it) |
103
115
  | `p` | add a PR link to the selected item (a title may follow the link); in the dialog, Tab switches the state |
@@ -111,18 +123,30 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
111
123
  | Command | What it does |
112
124
  |---|---|
113
125
  | `/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. |
126
+ | `/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. |
127
+ | `/rumo note <text>` | Keep a fact you learned (a conversation, a price, a number) under the item's Notes. |
115
128
  | `/rumo link [item]` | Continue an existing item in this session. |
116
129
  | `/rumo now` | List what is in progress, with the next step of each. |
117
130
  | `/rumo find <text>` | Search past, current and future items. |
118
131
  | `/rumo status` | Show where you left off on the linked item. |
119
132
  | `/rumo step <text>` | Add a step to the linked item, or to the item it belongs to when none is linked. |
120
133
  | `/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). |
134
+ | `/rumo drop [reason]` | Drop the item for good, keeping why. |
135
+ | `/rumo done` | Finish the item (checks the steps, asks first, and offers what is left as ideas). |
136
+ | `/rumo ideas [30d]` | Review the ideas idle for a month: one plan to keep, drop, start or merge each, applied on your yes. |
122
137
  | `/rumo unlink` | Stop updating the item from this session. |
138
+ | `/rumo sessions [7d]` | Catch up on the sessions open or active since the last review: create or update their items. |
123
139
 
124
- `link`, `status`, `park` and `unlink` need Claude Code with the plugin, because they rely on
125
- its session id and hook. Other agents get the rest.
140
+ `link`, `status`, `park`, `unlink` and `sessions` need Claude Code with the plugin, because they rely
141
+ on its session id and hook. Other agents get the rest.
142
+
143
+ `/rumo sessions` is for when you worked in several sessions without rumo. From any session, it reads
144
+ what each recent Claude Code session did (where it ran, what you asked, what it edited, the PRs it
145
+ opened) and matches it to an item: the one it is linked to, one that worked on the same branch, or one
146
+ about the same subject, before proposing a new item. Quick questions are proposed as ignored. You see
147
+ one short plan (update, link, create, ignore) and nothing is written until you say yes or adjust it.
148
+ Each review starts where the last one ended (3 days back the first time); `/rumo sessions 7d` looks
149
+ further back. Sessions run by scripts (`claude -p`) and in temporary folders are left out.
126
150
 
127
151
  When you create an item or an idea, the agent checks whether it belongs to an existing group. If
128
152
  other ungrouped items look like the same initiative, it suggests a new group (name and color) and
@@ -134,7 +158,29 @@ happened. If a turn did work and no linked item changed, the plugin reminds the
134
158
  ends. Open steps are never deleted unless you ask, so half-done work stays in Now. One session can
135
159
  follow several topics: when you start something no linked item covers, the agent asks once whether to
136
160
  track it as a new item, add it as a step, or leave it out. Left off is one line and Context at most
137
- three. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the old one up again.
161
+ three. After a compaction, even one in the middle of a turn, and when a session is resumed, the agent
162
+ gets its items back at once. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the
163
+ old one up again.
164
+
165
+ Steps added or done since you last looked at an item are marked until you move on to another one:
166
+ `+2 ✓1` in the list, `new` and `done since you looked` in its detail. An answer from `?` that landed
167
+ says `1 answer`. An item that appeared since then says `new`. What you change yourself, in the
168
+ Timeline or with `e`, is never news.
169
+
170
+ `?` runs `claude -p` in the background, away from your CLAUDE.md, plugins and hooks, with web search
171
+ and nothing else, for up to 10 minutes; closing the Timeline does not stop it. The answer (about 350
172
+ words, citing its sources, in your language) ends with three next questions, which `?` offers the next
173
+ time. One question runs at a time per item; one that fails says why and can be asked again. With
174
+ `keep_digging` set in the config (a deep-research script called with `-q <question file> -o <folder>
175
+ -n <rounds>`), a `deep` lens runs it for up to 90 minutes, keeping its raw output in `research/<item>/`
176
+ next to your items.
177
+
178
+ `*` runs the same way, for up to 10 minutes, and a notice says when the ideas (or its questions) are
179
+ ready. Its ideas cross yours, move them somewhere else, or stay close to where you are heading, after
180
+ a quick web search that they answer a real need. A kept idea comes `from:` the idea it builds on, in
181
+ its group, with its one-line summary as Context, so `?`, `b` and `s` work on it like on any other. The
182
+ ones you throw away are remembered and never suggested again. All of it lives in `spark.json`, next
183
+ to your items.
138
184
 
139
185
  You can add, edit, move, check and delete steps in the Timeline too. On your next message, a linked
140
186
  session is told which steps changed since its last answer, so it neither redoes nor re-adds them, and
@@ -149,6 +195,13 @@ current and adds the PRs opened from the branches the item's sessions worked on.
149
195
  state when it learns one, and you can add, edit, open and delete PRs in the Timeline too; a PR you
150
196
  delete is never added back. The list shows how many PRs of each item are still open.
151
197
 
198
+ rumo also says what git has left of an item's work: files not committed and commits that no remote has,
199
+ in the repositories and branches its sessions worked on. While the Timeline is open, it checks every
200
+ few seconds and shows a `git` line under the item and in its detail (`web-app (main): 2 commits not
201
+ pushed · 1 file not committed`). When several items worked on one branch, it shows on the one updated
202
+ last. When you park or finish an item, the agent tells you too, and it never commits or pushes unless
203
+ you ask.
204
+
152
205
  In a session without an item, the agent learns at the start what is in progress in that repository
153
206
  (up to three items, with their next step), so it can answer "what is left?"; `rumo now` lists
154
207
  everything in progress. Once that session edits files, the agent asks whether to track it. The first
@@ -176,6 +229,7 @@ Users land on a protected page after logging out.
176
229
  ## Steps
177
230
  - [x] [agent] Fix the logout handler
178
231
  - [ ] [manual] Ask for a PR review
232
+ - [ ] [waiting] Review from the team
179
233
  - [ ] [agent] e2e test for logout
180
234
 
181
235
  ## PRs
@@ -185,8 +239,14 @@ Users land on a protected page after logging out.
185
239
  - 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
186
240
  ```
187
241
 
188
- - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
189
- - Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
242
+ - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`, `dropped`. `done: <date>` is set when an item is
243
+ finished, `dropped: <date>` when it is dropped (its Left off says why).
244
+ - `from: <slug>` names the item this one came from. `## Notes` holds dated facts you learned
245
+ (`- 2026-10-11 <text>`), `## Explorations` the answers from `?`, and a step that became an item reads
246
+ `- [ ] [item] <text> → <slug>`. Files about an item (research) go in `research/<slug>/`.
247
+ - Steps say who acts: `[agent]` (the AI can do it), `[manual]` (you do it) or `[waiting]` (someone or
248
+ something else must act first: a reviewer, the App Store, a client). When the first open step is
249
+ `[waiting]`, the agent sets the item to `waiting`.
190
250
  - PRs are one link per line, with the state in brackets (`open`, `draft`, `merged`, `closed`; none when
191
251
  unknown) and an optional title after the link.
192
252
  - An idea can be just the frontmatter; it grows when you start working on it.
@@ -203,6 +263,17 @@ language = "pt-BR" # language of the content the agent writes; defaults to y
203
263
  tags = ["bug", "feature", "refactor", "research", "spike", "review",
204
264
  "infra", "deploy", "meeting", "docs", "support", "tech-debt"]
205
265
  ask_to_track = true # offer rumo in agent sessions without an item; unset until you first answer
266
+ step_lines = 2 # open steps shown under each item in the list, 1 to 6
267
+ explore_command = "claude" # what `?` runs; a full path when claude is not on PATH
268
+ keep_digging = "~/bin/keep-digging" # optional: enables the deep lens
269
+ deep_iterations = 3 # keep-digging rounds, 1 to 10
270
+
271
+ [lenses] # what `?` offers, in this order (these are the defaults); write them in your language
272
+ open = "What is still unclear about this, and which of those doubts matters most?"
273
+ pessimistic = "Pessimistic scenario: how does this fail, and what would show it early?"
274
+ validate = "What is the cheapest real test to validate this in one week?"
275
+ competitors = "Who already does this, what do they charge, and where do they fail?"
276
+ smallest = "What is the smallest version that would still solve the problem?"
206
277
 
207
278
  [groups.auth]
208
279
  name = "Auth migration"
@@ -210,7 +281,8 @@ color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
210
281
  ```
211
282
 
212
283
  Groups appear in the order of this file in every view. The last view, and when the agent last
213
- asked about tracking, are remembered in `state.json`, next to `config.toml`.
284
+ asked about tracking, are remembered in `state.json`, next to `config.toml`; `explore.log`, next to
285
+ them, keeps what `?` and `*` run printed.
214
286
 
215
287
  `RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
216
288
 
@@ -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
 
@@ -63,20 +69,26 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
63
69
 
64
70
  ## Use
65
71
 
66
- **In the terminal**: `rumo` opens the Timeline.
72
+ **In the terminal**: `rumo` opens the Timeline, and `rumo idea "<title>"` notes an idea from any shell
73
+ (`--group <key>` files it), naming up to three similar items it already knows, with the reason for
74
+ the ones you dropped.
67
75
 
68
76
  | Key | Action |
69
77
  |---|---|
70
78
  | ↑ ↓ | 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) |
79
+ | Tab | switch between the list, steps, PRs, family, explorations and sessions |
80
+ | `v` | next view: Timeline, Projects, Repos, Tree (`1` `2` `3` `4` go straight to one; rumo remembers it) |
73
81
  | `h` | next horizon: Now, then Later, then Past, then Now again |
74
- | `s` | change status (1-5 picks directly) |
82
+ | `s` | change status (1-6 picks directly); `6` drops the item and asks why, in one line kept as its Left off |
75
83
  | `g` | set the group or create one; inside, `r` renames, `c` recolors and `d` deletes the highlighted group (its items stay) |
76
84
  | `t` | toggle tags |
77
85
  | `n` | capture a new idea |
86
+ | `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 |
87
+ | `?` | 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 |
88
+ | `*` | 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 |
89
+ | Enter | with the family focused: go to that item; with the explorations focused: read the answer (Esc goes back) |
78
90
  | `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]` |
91
+ | `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
92
  | Enter, shift+↑ ↓, `d`, space | with the steps focused: edit, move, delete (asks first) or check the highlighted step; Esc goes back |
81
93
  | `x` | hide or show the done steps of every item (rumo remembers it) |
82
94
  | `p` | add a PR link to the selected item (a title may follow the link); in the dialog, Tab switches the state |
@@ -90,18 +102,30 @@ To get new plugin versions on their own, turn on auto-update for the `rumo` mark
90
102
  | Command | What it does |
91
103
  |---|---|
92
104
  | `/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. |
105
+ | `/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. |
106
+ | `/rumo note <text>` | Keep a fact you learned (a conversation, a price, a number) under the item's Notes. |
94
107
  | `/rumo link [item]` | Continue an existing item in this session. |
95
108
  | `/rumo now` | List what is in progress, with the next step of each. |
96
109
  | `/rumo find <text>` | Search past, current and future items. |
97
110
  | `/rumo status` | Show where you left off on the linked item. |
98
111
  | `/rumo step <text>` | Add a step to the linked item, or to the item it belongs to when none is linked. |
99
112
  | `/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). |
113
+ | `/rumo drop [reason]` | Drop the item for good, keeping why. |
114
+ | `/rumo done` | Finish the item (checks the steps, asks first, and offers what is left as ideas). |
115
+ | `/rumo ideas [30d]` | Review the ideas idle for a month: one plan to keep, drop, start or merge each, applied on your yes. |
101
116
  | `/rumo unlink` | Stop updating the item from this session. |
117
+ | `/rumo sessions [7d]` | Catch up on the sessions open or active since the last review: create or update their items. |
102
118
 
103
- `link`, `status`, `park` and `unlink` need Claude Code with the plugin, because they rely on
104
- its session id and hook. Other agents get the rest.
119
+ `link`, `status`, `park`, `unlink` and `sessions` need Claude Code with the plugin, because they rely
120
+ on its session id and hook. Other agents get the rest.
121
+
122
+ `/rumo sessions` is for when you worked in several sessions without rumo. From any session, it reads
123
+ what each recent Claude Code session did (where it ran, what you asked, what it edited, the PRs it
124
+ opened) and matches it to an item: the one it is linked to, one that worked on the same branch, or one
125
+ about the same subject, before proposing a new item. Quick questions are proposed as ignored. You see
126
+ one short plan (update, link, create, ignore) and nothing is written until you say yes or adjust it.
127
+ Each review starts where the last one ended (3 days back the first time); `/rumo sessions 7d` looks
128
+ further back. Sessions run by scripts (`claude -p`) and in temporary folders are left out.
105
129
 
106
130
  When you create an item or an idea, the agent checks whether it belongs to an existing group. If
107
131
  other ungrouped items look like the same initiative, it suggests a new group (name and color) and
@@ -113,7 +137,29 @@ happened. If a turn did work and no linked item changed, the plugin reminds the
113
137
  ends. Open steps are never deleted unless you ask, so half-done work stays in Now. One session can
114
138
  follow several topics: when you start something no linked item covers, the agent asks once whether to
115
139
  track it as a new item, add it as a step, or leave it out. Left off is one line and Context at most
116
- three. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the old one up again.
140
+ three. After a compaction, even one in the middle of a turn, and when a session is resumed, the agent
141
+ gets its items back at once. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the
142
+ old one up again.
143
+
144
+ Steps added or done since you last looked at an item are marked until you move on to another one:
145
+ `+2 ✓1` in the list, `new` and `done since you looked` in its detail. An answer from `?` that landed
146
+ says `1 answer`. An item that appeared since then says `new`. What you change yourself, in the
147
+ Timeline or with `e`, is never news.
148
+
149
+ `?` runs `claude -p` in the background, away from your CLAUDE.md, plugins and hooks, with web search
150
+ and nothing else, for up to 10 minutes; closing the Timeline does not stop it. The answer (about 350
151
+ words, citing its sources, in your language) ends with three next questions, which `?` offers the next
152
+ time. One question runs at a time per item; one that fails says why and can be asked again. With
153
+ `keep_digging` set in the config (a deep-research script called with `-q <question file> -o <folder>
154
+ -n <rounds>`), a `deep` lens runs it for up to 90 minutes, keeping its raw output in `research/<item>/`
155
+ next to your items.
156
+
157
+ `*` runs the same way, for up to 10 minutes, and a notice says when the ideas (or its questions) are
158
+ ready. Its ideas cross yours, move them somewhere else, or stay close to where you are heading, after
159
+ a quick web search that they answer a real need. A kept idea comes `from:` the idea it builds on, in
160
+ its group, with its one-line summary as Context, so `?`, `b` and `s` work on it like on any other. The
161
+ ones you throw away are remembered and never suggested again. All of it lives in `spark.json`, next
162
+ to your items.
117
163
 
118
164
  You can add, edit, move, check and delete steps in the Timeline too. On your next message, a linked
119
165
  session is told which steps changed since its last answer, so it neither redoes nor re-adds them, and
@@ -128,6 +174,13 @@ current and adds the PRs opened from the branches the item's sessions worked on.
128
174
  state when it learns one, and you can add, edit, open and delete PRs in the Timeline too; a PR you
129
175
  delete is never added back. The list shows how many PRs of each item are still open.
130
176
 
177
+ rumo also says what git has left of an item's work: files not committed and commits that no remote has,
178
+ in the repositories and branches its sessions worked on. While the Timeline is open, it checks every
179
+ few seconds and shows a `git` line under the item and in its detail (`web-app (main): 2 commits not
180
+ pushed · 1 file not committed`). When several items worked on one branch, it shows on the one updated
181
+ last. When you park or finish an item, the agent tells you too, and it never commits or pushes unless
182
+ you ask.
183
+
131
184
  In a session without an item, the agent learns at the start what is in progress in that repository
132
185
  (up to three items, with their next step), so it can answer "what is left?"; `rumo now` lists
133
186
  everything in progress. Once that session edits files, the agent asks whether to track it. The first
@@ -155,6 +208,7 @@ Users land on a protected page after logging out.
155
208
  ## Steps
156
209
  - [x] [agent] Fix the logout handler
157
210
  - [ ] [manual] Ask for a PR review
211
+ - [ ] [waiting] Review from the team
158
212
  - [ ] [agent] e2e test for logout
159
213
 
160
214
  ## PRs
@@ -164,8 +218,14 @@ Users land on a protected page after logging out.
164
218
  - 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
165
219
  ```
166
220
 
167
- - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
168
- - Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
221
+ - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`, `dropped`. `done: <date>` is set when an item is
222
+ finished, `dropped: <date>` when it is dropped (its Left off says why).
223
+ - `from: <slug>` names the item this one came from. `## Notes` holds dated facts you learned
224
+ (`- 2026-10-11 <text>`), `## Explorations` the answers from `?`, and a step that became an item reads
225
+ `- [ ] [item] <text> → <slug>`. Files about an item (research) go in `research/<slug>/`.
226
+ - Steps say who acts: `[agent]` (the AI can do it), `[manual]` (you do it) or `[waiting]` (someone or
227
+ something else must act first: a reviewer, the App Store, a client). When the first open step is
228
+ `[waiting]`, the agent sets the item to `waiting`.
169
229
  - PRs are one link per line, with the state in brackets (`open`, `draft`, `merged`, `closed`; none when
170
230
  unknown) and an optional title after the link.
171
231
  - An idea can be just the frontmatter; it grows when you start working on it.
@@ -182,6 +242,17 @@ language = "pt-BR" # language of the content the agent writes; defaults to y
182
242
  tags = ["bug", "feature", "refactor", "research", "spike", "review",
183
243
  "infra", "deploy", "meeting", "docs", "support", "tech-debt"]
184
244
  ask_to_track = true # offer rumo in agent sessions without an item; unset until you first answer
245
+ step_lines = 2 # open steps shown under each item in the list, 1 to 6
246
+ explore_command = "claude" # what `?` runs; a full path when claude is not on PATH
247
+ keep_digging = "~/bin/keep-digging" # optional: enables the deep lens
248
+ deep_iterations = 3 # keep-digging rounds, 1 to 10
249
+
250
+ [lenses] # what `?` offers, in this order (these are the defaults); write them in your language
251
+ open = "What is still unclear about this, and which of those doubts matters most?"
252
+ pessimistic = "Pessimistic scenario: how does this fail, and what would show it early?"
253
+ validate = "What is the cheapest real test to validate this in one week?"
254
+ competitors = "Who already does this, what do they charge, and where do they fail?"
255
+ smallest = "What is the smallest version that would still solve the problem?"
185
256
 
186
257
  [groups.auth]
187
258
  name = "Auth migration"
@@ -189,7 +260,8 @@ color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
189
260
  ```
190
261
 
191
262
  Groups appear in the order of this file in every view. The last view, and when the agent last
192
- asked about tracking, are remembered in `state.json`, next to `config.toml`.
263
+ asked about tracking, are remembered in `state.json`, next to `config.toml`; `explore.log`, next to
264
+ them, keeps what `?` and `*` run printed.
193
265
 
194
266
  `RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
195
267
 
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "rumo-cli"
3
- version = "0.4.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.0"
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"