rumo-cli 0.2.2__tar.gz → 0.4.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.
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/PKG-INFO +50 -12
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/README.md +49 -11
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/pyproject.toml +1 -1
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/src/rumo/app.py +450 -53
- rumo_cli-0.4.0/src/rumo/cli.py +150 -0
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/src/rumo/config.py +81 -0
- rumo_cli-0.4.0/src/rumo/hook.py +518 -0
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/src/rumo/items.py +204 -9
- rumo_cli-0.4.0/src/rumo/prs.py +194 -0
- rumo_cli-0.2.2/src/rumo/cli.py +0 -77
- rumo_cli-0.2.2/src/rumo/hook.py +0 -60
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/.gitignore +0 -0
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/LICENSE +0 -0
- {rumo_cli-0.2.2 → rumo_cli-0.4.0}/src/rumo/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rumo-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Your dev work, past, now and later: Markdown files, a terminal Timeline, and AI agents that keep it current
|
|
5
5
|
Project-URL: Homepage, https://github.com/pedrobuzzi/rumo
|
|
6
6
|
Project-URL: Issues, https://github.com/pedrobuzzi/rumo/issues
|
|
@@ -33,7 +33,7 @@ Timeline, and let your AI agent sessions keep it up to date while you work.
|
|
|
33
33
|
|
|
34
34
|
Items can belong to a **group** (a project or initiative), shown as a label with its name on its
|
|
35
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 (Now,
|
|
36
|
+
one horizon at a time (`h` steps Now, Later, Past), named in a banner atop the list, in three views: the **Timeline**,
|
|
37
37
|
**Projects** (one block per group) and **Repos** (one block per repository of the item's latest
|
|
38
38
|
agent session). The interface is in English; the content (titles, notes, steps) is in your own
|
|
39
39
|
language.
|
|
@@ -63,6 +63,10 @@ system language.
|
|
|
63
63
|
/plugin install rumo@rumo
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
+
`/rumo` runs its `rumo` commands without asking. To let the agent run them without asking in later
|
|
67
|
+
answers too (to link an item it offered to create, for example), add `"Bash(rumo:*)"` to
|
|
68
|
+
`permissions.allow` in `~/.claude/settings.json`.
|
|
69
|
+
|
|
66
70
|
- **Codex, Gemini CLI, Cursor, GitHub Copilot and other agents** that read `SKILL.md` files,
|
|
67
71
|
simple mode (create items and ideas, list and search them; no automatic updates):
|
|
68
72
|
|
|
@@ -71,7 +75,9 @@ system language.
|
|
|
71
75
|
```
|
|
72
76
|
|
|
73
77
|
**Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade rumo`), and
|
|
74
|
-
`/plugin marketplace update rumo` in Claude Code.
|
|
78
|
+
`/plugin marketplace update rumo` in Claude Code, then `/reload-plugins` in sessions already open.
|
|
79
|
+
To get new plugin versions on their own, turn on auto-update for the `rumo` marketplace in `/plugin`
|
|
80
|
+
(Marketplaces tab); the `rumo` command updates with your package manager.
|
|
75
81
|
|
|
76
82
|
**Uninstall**: `/plugin uninstall rumo@rumo`, then `uv tool uninstall rumo-cli` (or
|
|
77
83
|
`pipx uninstall rumo-cli`, `brew uninstall rumo`). Your items in `~/rumo/` are never touched.
|
|
@@ -83,15 +89,19 @@ system language.
|
|
|
83
89
|
| Key | Action |
|
|
84
90
|
|---|---|
|
|
85
91
|
| ↑ ↓ | move through the list |
|
|
86
|
-
| Tab | switch between the list, steps and sessions |
|
|
92
|
+
| Tab | switch between the list, steps, PRs and sessions |
|
|
87
93
|
| `v` | next view: Timeline, Projects, Repos (`1` `2` `3` go straight to one; rumo remembers it) |
|
|
88
|
-
| `
|
|
94
|
+
| `h` | next horizon: Now, then Later, then Past, then Now again |
|
|
89
95
|
| `s` | change status (1-5 picks directly) |
|
|
90
96
|
| `g` | set the group or create one; inside, `r` renames, `c` recolors and `d` deletes the highlighted group (its items stay) |
|
|
91
97
|
| `t` | toggle tags |
|
|
92
98
|
| `n` | capture a new idea |
|
|
93
99
|
| `e` | open the item in `$EDITOR` |
|
|
94
|
-
|
|
|
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]` |
|
|
101
|
+
| Enter, shift+↑ ↓, `d`, space | with the steps focused: edit, move, delete (asks first) or check the highlighted step; Esc goes back |
|
|
102
|
+
| `x` | hide or show the done steps of every item (rumo remembers it) |
|
|
103
|
+
| `p` | add a PR link to the selected item (a title may follow the link); in the dialog, Tab switches the state |
|
|
104
|
+
| Enter, space, `e`, `d` | with the PRs focused: open the highlighted PR in the browser, change its state, edit it, or delete it (asks first) |
|
|
95
105
|
| `c` | copy the command that resumes the selected agent session |
|
|
96
106
|
| `/` | filter by title, tag, group or text (Esc clears) |
|
|
97
107
|
| `q` | quit |
|
|
@@ -106,12 +116,12 @@ system language.
|
|
|
106
116
|
| `/rumo now` | List what is in progress, with the next step of each. |
|
|
107
117
|
| `/rumo find <text>` | Search past, current and future items. |
|
|
108
118
|
| `/rumo status` | Show where you left off on the linked item. |
|
|
109
|
-
| `/rumo step <text>` | Add a step to the linked item. |
|
|
119
|
+
| `/rumo step <text>` | Add a step to the linked item, or to the item it belongs to when none is linked. |
|
|
110
120
|
| `/rumo park [reason]` | Pause the item with an accurate "Left off" and stop updating it here. |
|
|
111
121
|
| `/rumo done` | Finish the item (checks the steps, asks first). |
|
|
112
122
|
| `/rumo unlink` | Stop updating the item from this session. |
|
|
113
123
|
|
|
114
|
-
`link`, `status`, `
|
|
124
|
+
`link`, `status`, `park` and `unlink` need Claude Code with the plugin, because they rely on
|
|
115
125
|
its session id and hook. Other agents get the rest.
|
|
116
126
|
|
|
117
127
|
When you create an item or an idea, the agent checks whether it belongs to an existing group. If
|
|
@@ -120,8 +130,30 @@ applies it only if you agree.
|
|
|
120
130
|
|
|
121
131
|
Steps are the heart of an item: while a session is linked, the agent checks off what got done, adds
|
|
122
132
|
what came up and keeps the next action as the first open step, after every response in which work
|
|
123
|
-
happened.
|
|
124
|
-
|
|
133
|
+
happened. If a turn did work and no linked item changed, the plugin reminds the agent before the turn
|
|
134
|
+
ends. Open steps are never deleted unless you ask, so half-done work stays in Now. One session can
|
|
135
|
+
follow several topics: when you start something no linked item covers, the agent asks once whether to
|
|
136
|
+
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.
|
|
138
|
+
|
|
139
|
+
You can add, edit, move, check and delete steps in the Timeline too. On your next message, a linked
|
|
140
|
+
session is told which steps changed since its last answer, so it neither redoes nor re-adds them, and
|
|
141
|
+
it starts none of them unless you ask. When the agent finishes a step and more remain, it ends with
|
|
142
|
+
the next one: an offer to start it, or a note that it is yours.
|
|
143
|
+
|
|
144
|
+
Each item lists its pull requests (GitHub, GitLab, Bitbucket or any other link) with their state:
|
|
145
|
+
open, draft, merged or closed. rumo finds them on its own: a PR a linked session opens (with
|
|
146
|
+
`gh pr create`, `glab mr create` or a tool that creates PRs) goes into its item at the end of the turn,
|
|
147
|
+
and while the Timeline is open, the GitHub CLI (`gh`, when installed and logged in) keeps their states
|
|
148
|
+
current and adds the PRs opened from the branches the item's sessions worked on. The agent updates a
|
|
149
|
+
state when it learns one, and you can add, edit, open and delete PRs in the Timeline too; a PR you
|
|
150
|
+
delete is never added back. The list shows how many PRs of each item are still open.
|
|
151
|
+
|
|
152
|
+
In a session without an item, the agent learns at the start what is in progress in that repository
|
|
153
|
+
(up to three items, with their next step), so it can answer "what is left?"; `rumo now` lists
|
|
154
|
+
everything in progress. Once that session edits files, the agent asks whether to track it. The first
|
|
155
|
+
time it also asks whether to keep asking in future sessions (`ask_to_track` in the config). If you
|
|
156
|
+
say no, it reminds you that the option exists every 15 days or 15 sessions.
|
|
125
157
|
|
|
126
158
|
## Item format
|
|
127
159
|
|
|
@@ -146,12 +178,17 @@ Users land on a protected page after logging out.
|
|
|
146
178
|
- [ ] [manual] Ask for a PR review
|
|
147
179
|
- [ ] [agent] e2e test for logout
|
|
148
180
|
|
|
181
|
+
## PRs
|
|
182
|
+
- [open] https://github.com/you/web-app/pull/42 Redirect home after logout
|
|
183
|
+
|
|
149
184
|
## Sessions
|
|
150
185
|
- 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
|
|
151
186
|
```
|
|
152
187
|
|
|
153
188
|
- Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
|
|
154
189
|
- Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
|
|
190
|
+
- PRs are one link per line, with the state in brackets (`open`, `draft`, `merged`, `closed`; none when
|
|
191
|
+
unknown) and an optional title after the link.
|
|
155
192
|
- An idea can be just the frontmatter; it grows when you start working on it.
|
|
156
193
|
- A session line ending in `| closed` no longer updates the item.
|
|
157
194
|
|
|
@@ -165,14 +202,15 @@ folder = "~/rumo"
|
|
|
165
202
|
language = "pt-BR" # language of the content the agent writes; defaults to your system language
|
|
166
203
|
tags = ["bug", "feature", "refactor", "research", "spike", "review",
|
|
167
204
|
"infra", "deploy", "meeting", "docs", "support", "tech-debt"]
|
|
205
|
+
ask_to_track = true # offer rumo in agent sessions without an item; unset until you first answer
|
|
168
206
|
|
|
169
207
|
[groups.auth]
|
|
170
208
|
name = "Auth migration"
|
|
171
209
|
color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
|
|
172
210
|
```
|
|
173
211
|
|
|
174
|
-
Groups appear in the order of this file in every view. The last view
|
|
175
|
-
`state.json`, next to `config.toml`.
|
|
212
|
+
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`.
|
|
176
214
|
|
|
177
215
|
`RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
|
|
178
216
|
|
|
@@ -12,7 +12,7 @@ Timeline, and let your AI agent sessions keep it up to date while you work.
|
|
|
12
12
|
|
|
13
13
|
Items can belong to a **group** (a project or initiative), shown as a label with its name on its
|
|
14
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 (Now,
|
|
15
|
+
one horizon at a time (`h` steps Now, Later, Past), named in a banner atop the list, in three views: the **Timeline**,
|
|
16
16
|
**Projects** (one block per group) and **Repos** (one block per repository of the item's latest
|
|
17
17
|
agent session). The interface is in English; the content (titles, notes, steps) is in your own
|
|
18
18
|
language.
|
|
@@ -42,6 +42,10 @@ system language.
|
|
|
42
42
|
/plugin install rumo@rumo
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
`/rumo` runs its `rumo` commands without asking. To let the agent run them without asking in later
|
|
46
|
+
answers too (to link an item it offered to create, for example), add `"Bash(rumo:*)"` to
|
|
47
|
+
`permissions.allow` in `~/.claude/settings.json`.
|
|
48
|
+
|
|
45
49
|
- **Codex, Gemini CLI, Cursor, GitHub Copilot and other agents** that read `SKILL.md` files,
|
|
46
50
|
simple mode (create items and ideas, list and search them; no automatic updates):
|
|
47
51
|
|
|
@@ -50,7 +54,9 @@ system language.
|
|
|
50
54
|
```
|
|
51
55
|
|
|
52
56
|
**Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade rumo`), and
|
|
53
|
-
`/plugin marketplace update rumo` in Claude Code.
|
|
57
|
+
`/plugin marketplace update rumo` in Claude Code, then `/reload-plugins` in sessions already open.
|
|
58
|
+
To get new plugin versions on their own, turn on auto-update for the `rumo` marketplace in `/plugin`
|
|
59
|
+
(Marketplaces tab); the `rumo` command updates with your package manager.
|
|
54
60
|
|
|
55
61
|
**Uninstall**: `/plugin uninstall rumo@rumo`, then `uv tool uninstall rumo-cli` (or
|
|
56
62
|
`pipx uninstall rumo-cli`, `brew uninstall rumo`). Your items in `~/rumo/` are never touched.
|
|
@@ -62,15 +68,19 @@ system language.
|
|
|
62
68
|
| Key | Action |
|
|
63
69
|
|---|---|
|
|
64
70
|
| ↑ ↓ | move through the list |
|
|
65
|
-
| Tab | switch between the list, steps and sessions |
|
|
71
|
+
| Tab | switch between the list, steps, PRs and sessions |
|
|
66
72
|
| `v` | next view: Timeline, Projects, Repos (`1` `2` `3` go straight to one; rumo remembers it) |
|
|
67
|
-
| `
|
|
73
|
+
| `h` | next horizon: Now, then Later, then Past, then Now again |
|
|
68
74
|
| `s` | change status (1-5 picks directly) |
|
|
69
75
|
| `g` | set the group or create one; inside, `r` renames, `c` recolors and `d` deletes the highlighted group (its items stay) |
|
|
70
76
|
| `t` | toggle tags |
|
|
71
77
|
| `n` | capture a new idea |
|
|
72
78
|
| `e` | open the item in `$EDITOR` |
|
|
73
|
-
|
|
|
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]` |
|
|
80
|
+
| Enter, shift+↑ ↓, `d`, space | with the steps focused: edit, move, delete (asks first) or check the highlighted step; Esc goes back |
|
|
81
|
+
| `x` | hide or show the done steps of every item (rumo remembers it) |
|
|
82
|
+
| `p` | add a PR link to the selected item (a title may follow the link); in the dialog, Tab switches the state |
|
|
83
|
+
| Enter, space, `e`, `d` | with the PRs focused: open the highlighted PR in the browser, change its state, edit it, or delete it (asks first) |
|
|
74
84
|
| `c` | copy the command that resumes the selected agent session |
|
|
75
85
|
| `/` | filter by title, tag, group or text (Esc clears) |
|
|
76
86
|
| `q` | quit |
|
|
@@ -85,12 +95,12 @@ system language.
|
|
|
85
95
|
| `/rumo now` | List what is in progress, with the next step of each. |
|
|
86
96
|
| `/rumo find <text>` | Search past, current and future items. |
|
|
87
97
|
| `/rumo status` | Show where you left off on the linked item. |
|
|
88
|
-
| `/rumo step <text>` | Add a step to the linked item. |
|
|
98
|
+
| `/rumo step <text>` | Add a step to the linked item, or to the item it belongs to when none is linked. |
|
|
89
99
|
| `/rumo park [reason]` | Pause the item with an accurate "Left off" and stop updating it here. |
|
|
90
100
|
| `/rumo done` | Finish the item (checks the steps, asks first). |
|
|
91
101
|
| `/rumo unlink` | Stop updating the item from this session. |
|
|
92
102
|
|
|
93
|
-
`link`, `status`, `
|
|
103
|
+
`link`, `status`, `park` and `unlink` need Claude Code with the plugin, because they rely on
|
|
94
104
|
its session id and hook. Other agents get the rest.
|
|
95
105
|
|
|
96
106
|
When you create an item or an idea, the agent checks whether it belongs to an existing group. If
|
|
@@ -99,8 +109,30 @@ applies it only if you agree.
|
|
|
99
109
|
|
|
100
110
|
Steps are the heart of an item: while a session is linked, the agent checks off what got done, adds
|
|
101
111
|
what came up and keeps the next action as the first open step, after every response in which work
|
|
102
|
-
happened.
|
|
103
|
-
|
|
112
|
+
happened. If a turn did work and no linked item changed, the plugin reminds the agent before the turn
|
|
113
|
+
ends. Open steps are never deleted unless you ask, so half-done work stays in Now. One session can
|
|
114
|
+
follow several topics: when you start something no linked item covers, the agent asks once whether to
|
|
115
|
+
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.
|
|
117
|
+
|
|
118
|
+
You can add, edit, move, check and delete steps in the Timeline too. On your next message, a linked
|
|
119
|
+
session is told which steps changed since its last answer, so it neither redoes nor re-adds them, and
|
|
120
|
+
it starts none of them unless you ask. When the agent finishes a step and more remain, it ends with
|
|
121
|
+
the next one: an offer to start it, or a note that it is yours.
|
|
122
|
+
|
|
123
|
+
Each item lists its pull requests (GitHub, GitLab, Bitbucket or any other link) with their state:
|
|
124
|
+
open, draft, merged or closed. rumo finds them on its own: a PR a linked session opens (with
|
|
125
|
+
`gh pr create`, `glab mr create` or a tool that creates PRs) goes into its item at the end of the turn,
|
|
126
|
+
and while the Timeline is open, the GitHub CLI (`gh`, when installed and logged in) keeps their states
|
|
127
|
+
current and adds the PRs opened from the branches the item's sessions worked on. The agent updates a
|
|
128
|
+
state when it learns one, and you can add, edit, open and delete PRs in the Timeline too; a PR you
|
|
129
|
+
delete is never added back. The list shows how many PRs of each item are still open.
|
|
130
|
+
|
|
131
|
+
In a session without an item, the agent learns at the start what is in progress in that repository
|
|
132
|
+
(up to three items, with their next step), so it can answer "what is left?"; `rumo now` lists
|
|
133
|
+
everything in progress. Once that session edits files, the agent asks whether to track it. The first
|
|
134
|
+
time it also asks whether to keep asking in future sessions (`ask_to_track` in the config). If you
|
|
135
|
+
say no, it reminds you that the option exists every 15 days or 15 sessions.
|
|
104
136
|
|
|
105
137
|
## Item format
|
|
106
138
|
|
|
@@ -125,12 +157,17 @@ Users land on a protected page after logging out.
|
|
|
125
157
|
- [ ] [manual] Ask for a PR review
|
|
126
158
|
- [ ] [agent] e2e test for logout
|
|
127
159
|
|
|
160
|
+
## PRs
|
|
161
|
+
- [open] https://github.com/you/web-app/pull/42 Redirect home after logout
|
|
162
|
+
|
|
128
163
|
## Sessions
|
|
129
164
|
- 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
|
|
130
165
|
```
|
|
131
166
|
|
|
132
167
|
- Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
|
|
133
168
|
- Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
|
|
169
|
+
- PRs are one link per line, with the state in brackets (`open`, `draft`, `merged`, `closed`; none when
|
|
170
|
+
unknown) and an optional title after the link.
|
|
134
171
|
- An idea can be just the frontmatter; it grows when you start working on it.
|
|
135
172
|
- A session line ending in `| closed` no longer updates the item.
|
|
136
173
|
|
|
@@ -144,14 +181,15 @@ folder = "~/rumo"
|
|
|
144
181
|
language = "pt-BR" # language of the content the agent writes; defaults to your system language
|
|
145
182
|
tags = ["bug", "feature", "refactor", "research", "spike", "review",
|
|
146
183
|
"infra", "deploy", "meeting", "docs", "support", "tech-debt"]
|
|
184
|
+
ask_to_track = true # offer rumo in agent sessions without an item; unset until you first answer
|
|
147
185
|
|
|
148
186
|
[groups.auth]
|
|
149
187
|
name = "Auth migration"
|
|
150
188
|
color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
|
|
151
189
|
```
|
|
152
190
|
|
|
153
|
-
Groups appear in the order of this file in every view. The last view
|
|
154
|
-
`state.json`, next to `config.toml`.
|
|
191
|
+
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`.
|
|
155
193
|
|
|
156
194
|
`RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
|
|
157
195
|
|