rumo-cli 0.1.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.
@@ -0,0 +1,3 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.egg-info/
rumo_cli-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Pedro Buzzi Filho
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,176 @@
1
+ Metadata-Version: 2.5
2
+ Name: rumo-cli
3
+ Version: 0.1.0
4
+ Summary: Your dev work, past, now and later: Markdown files, a terminal Timeline, and AI agents that keep it current
5
+ Project-URL: Homepage, https://github.com/pedrobuzzi/rumo
6
+ Project-URL: Issues, https://github.com/pedrobuzzi/rumo/issues
7
+ Author: Pedro Buzzi
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Keywords: ai-agents,claude-code,markdown,productivity,tasks,todo,tui,worklog
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Office/Business :: Scheduling
17
+ Classifier: Topic :: Utilities
18
+ Requires-Python: >=3.11
19
+ Requires-Dist: textual>=1.0
20
+ Description-Content-Type: text/markdown
21
+
22
+ # rumo
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.
27
+
28
+ ![rumo Timeline](docs/timeline.svg)
29
+
30
+ - **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.
33
+
34
+ Items can belong to a **group** (an initiative): the title takes the group color and the footer
35
+ shows a legend. The interface is in English; the content (titles, notes, steps) is in your own
36
+ language.
37
+
38
+ Nothing leaves your machine. There is no server, no database and no sync with Jira or ClickUp
39
+ (ask your agent to update those if you want).
40
+
41
+ ## Install
42
+
43
+ **1. The `rumo` command** (pick one):
44
+
45
+ ```bash
46
+ uv tool install rumo-cli # macOS, Linux, Windows (https://docs.astral.sh/uv/)
47
+ pipx install rumo-cli # macOS, Linux, Windows
48
+ brew install pedrobuzzi/tap/rumo # macOS, Linux
49
+ ```
50
+
51
+ Then run `rumo`. The first run creates `~/rumo/` for your items and a config file with your
52
+ system language.
53
+
54
+ **2. Your AI agent** (optional, but this is where rumo shines):
55
+
56
+ - **Claude Code**, full experience (the agent keeps linked items up to date):
57
+
58
+ ```
59
+ /plugin marketplace add pedrobuzzi/rumo
60
+ /plugin install rumo@rumo
61
+ ```
62
+
63
+ - **Codex, Gemini CLI, Cursor, GitHub Copilot and other agents** that read `SKILL.md` files,
64
+ simple mode (create items and ideas, list and search them; no automatic updates):
65
+
66
+ ```bash
67
+ npx skills add pedrobuzzi/rumo
68
+ ```
69
+
70
+ **Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade rumo`), and
71
+ `/plugin marketplace update rumo` in Claude Code.
72
+
73
+ **Uninstall**: `/plugin uninstall rumo@rumo`, then `uv tool uninstall rumo-cli` (or
74
+ `pipx uninstall rumo-cli`, `brew uninstall rumo`). Your items in `~/rumo/` are never touched.
75
+
76
+ ## Use
77
+
78
+ **In the terminal**: `rumo` opens the Timeline.
79
+
80
+ | Key | Action |
81
+ |---|---|
82
+ | ↑ ↓ | move through the Timeline |
83
+ | Tab | switch between Timeline, steps and sessions |
84
+ | `s` | change status (1-5 picks directly) |
85
+ | `g` | set the group, or create a new one with a color |
86
+ | `t` | toggle tags |
87
+ | `n` | capture a new idea |
88
+ | `e` | open the item in `$EDITOR` |
89
+ | space | check or uncheck the selected step |
90
+ | `c` | copy the command that resumes the selected agent session |
91
+ | `/` | filter by title, tag, group or text (Esc clears) |
92
+ | `q` | quit |
93
+
94
+ **In an agent session**: type `/rumo` for a menu that fits the moment, or go straight to:
95
+
96
+ | Command | What it does |
97
+ |---|---|
98
+ | `/rumo new` | Track this session's work as an item. Looks for a similar idea first and offers to promote it. |
99
+ | `/rumo idea <text>` | Note something for later without leaving the topic. |
100
+ | `/rumo link [item]` | Continue an existing item in this session. |
101
+ | `/rumo now` | List what is in progress, with the next step of each. |
102
+ | `/rumo find <text>` | Search past, current and future items. |
103
+ | `/rumo status` | Show where you left off on the linked item. |
104
+ | `/rumo step <text>` | Add a step to the linked item. |
105
+ | `/rumo park [reason]` | Pause the item with an accurate "Left off" and stop updating it here. |
106
+ | `/rumo done` | Finish the item (checks the steps, asks first). |
107
+ | `/rumo unlink` | Stop updating the item from this session. |
108
+
109
+ `link`, `status`, `step`, `park` and `unlink` need Claude Code with the plugin, because they rely on
110
+ its session id and hook. Other agents get the rest.
111
+
112
+ When you create an item or an idea, the agent checks whether it belongs to an existing group. If
113
+ other ungrouped items look like the same initiative, it suggests a new group (name and color) and
114
+ applies it only if you agree.
115
+
116
+ While a session is linked, the agent updates the item after every response in which something
117
+ changed. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the old one up again.
118
+
119
+ ## Item format
120
+
121
+ ```markdown
122
+ ---
123
+ title: Redirect after logout
124
+ status: doing
125
+ group: auth
126
+ tags: [bug, frontend]
127
+ created: 2026-10-11 10:08
128
+ updated: 2026-10-11 16:30
129
+ ---
130
+
131
+ ## Left off
132
+ Point the redirect to the home page; the e2e test is still missing.
133
+
134
+ ## Context
135
+ Users land on a protected page after logging out.
136
+
137
+ ## Steps
138
+ - [x] [agent] Fix the logout handler
139
+ - [ ] [manual] Ask for a PR review
140
+ - [ ] [agent] e2e test for logout
141
+
142
+ ## Sessions
143
+ - 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
144
+ ```
145
+
146
+ - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
147
+ - Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
148
+ - An idea can be just the frontmatter; it grows when you start working on it.
149
+ - A session line ending in `| closed` no longer updates the item.
150
+
151
+ ## Config
152
+
153
+ `config.toml` lives in `~/.config/rumo/` on macOS and Linux (or `$XDG_CONFIG_HOME/rumo/`) and in
154
+ `%APPDATA%\rumo\` on Windows. `rumo index` prints its path.
155
+
156
+ ```toml
157
+ folder = "~/rumo"
158
+ language = "pt-BR" # language of the content the agent writes; defaults to your system language
159
+ tags = ["bug", "feature", "refactor", "research", "spike", "review",
160
+ "infra", "deploy", "meeting", "docs", "support", "tech-debt"]
161
+
162
+ [groups.auth]
163
+ name = "Auth migration"
164
+ color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
165
+ ```
166
+
167
+ `RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
168
+
169
+ ## Contributing
170
+
171
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the layout, tests, trying the plugin locally and how
172
+ releases work.
173
+
174
+ ## License
175
+
176
+ [MIT](LICENSE)
@@ -0,0 +1,155 @@
1
+ # rumo
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.
6
+
7
+ ![rumo Timeline](docs/timeline.svg)
8
+
9
+ - **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.
12
+
13
+ Items can belong to a **group** (an initiative): the title takes the group color and the footer
14
+ shows a legend. The interface is in English; the content (titles, notes, steps) is in your own
15
+ language.
16
+
17
+ Nothing leaves your machine. There is no server, no database and no sync with Jira or ClickUp
18
+ (ask your agent to update those if you want).
19
+
20
+ ## Install
21
+
22
+ **1. The `rumo` command** (pick one):
23
+
24
+ ```bash
25
+ uv tool install rumo-cli # macOS, Linux, Windows (https://docs.astral.sh/uv/)
26
+ pipx install rumo-cli # macOS, Linux, Windows
27
+ brew install pedrobuzzi/tap/rumo # macOS, Linux
28
+ ```
29
+
30
+ Then run `rumo`. The first run creates `~/rumo/` for your items and a config file with your
31
+ system language.
32
+
33
+ **2. Your AI agent** (optional, but this is where rumo shines):
34
+
35
+ - **Claude Code**, full experience (the agent keeps linked items up to date):
36
+
37
+ ```
38
+ /plugin marketplace add pedrobuzzi/rumo
39
+ /plugin install rumo@rumo
40
+ ```
41
+
42
+ - **Codex, Gemini CLI, Cursor, GitHub Copilot and other agents** that read `SKILL.md` files,
43
+ simple mode (create items and ideas, list and search them; no automatic updates):
44
+
45
+ ```bash
46
+ npx skills add pedrobuzzi/rumo
47
+ ```
48
+
49
+ **Update**: `uv tool upgrade rumo-cli` (or `pipx upgrade rumo-cli`, `brew upgrade rumo`), and
50
+ `/plugin marketplace update rumo` in Claude Code.
51
+
52
+ **Uninstall**: `/plugin uninstall rumo@rumo`, then `uv tool uninstall rumo-cli` (or
53
+ `pipx uninstall rumo-cli`, `brew uninstall rumo`). Your items in `~/rumo/` are never touched.
54
+
55
+ ## Use
56
+
57
+ **In the terminal**: `rumo` opens the Timeline.
58
+
59
+ | Key | Action |
60
+ |---|---|
61
+ | ↑ ↓ | move through the Timeline |
62
+ | Tab | switch between Timeline, steps and sessions |
63
+ | `s` | change status (1-5 picks directly) |
64
+ | `g` | set the group, or create a new one with a color |
65
+ | `t` | toggle tags |
66
+ | `n` | capture a new idea |
67
+ | `e` | open the item in `$EDITOR` |
68
+ | space | check or uncheck the selected step |
69
+ | `c` | copy the command that resumes the selected agent session |
70
+ | `/` | filter by title, tag, group or text (Esc clears) |
71
+ | `q` | quit |
72
+
73
+ **In an agent session**: type `/rumo` for a menu that fits the moment, or go straight to:
74
+
75
+ | Command | What it does |
76
+ |---|---|
77
+ | `/rumo new` | Track this session's work as an item. Looks for a similar idea first and offers to promote it. |
78
+ | `/rumo idea <text>` | Note something for later without leaving the topic. |
79
+ | `/rumo link [item]` | Continue an existing item in this session. |
80
+ | `/rumo now` | List what is in progress, with the next step of each. |
81
+ | `/rumo find <text>` | Search past, current and future items. |
82
+ | `/rumo status` | Show where you left off on the linked item. |
83
+ | `/rumo step <text>` | Add a step to the linked item. |
84
+ | `/rumo park [reason]` | Pause the item with an accurate "Left off" and stop updating it here. |
85
+ | `/rumo done` | Finish the item (checks the steps, asks first). |
86
+ | `/rumo unlink` | Stop updating the item from this session. |
87
+
88
+ `link`, `status`, `step`, `park` and `unlink` need Claude Code with the plugin, because they rely on
89
+ its session id and hook. Other agents get the rest.
90
+
91
+ When you create an item or an idea, the agent checks whether it belongs to an existing group. If
92
+ other ungrouped items look like the same initiative, it suggests a new group (name and color) and
93
+ applies it only if you agree.
94
+
95
+ While a session is linked, the agent updates the item after every response in which something
96
+ changed. `/clear` starts a new, unlinked session; `claude --resume <id>` picks the old one up again.
97
+
98
+ ## Item format
99
+
100
+ ```markdown
101
+ ---
102
+ title: Redirect after logout
103
+ status: doing
104
+ group: auth
105
+ tags: [bug, frontend]
106
+ created: 2026-10-11 10:08
107
+ updated: 2026-10-11 16:30
108
+ ---
109
+
110
+ ## Left off
111
+ Point the redirect to the home page; the e2e test is still missing.
112
+
113
+ ## Context
114
+ Users land on a protected page after logging out.
115
+
116
+ ## Steps
117
+ - [x] [agent] Fix the logout handler
118
+ - [ ] [manual] Ask for a PR review
119
+ - [ ] [agent] e2e test for logout
120
+
121
+ ## Sessions
122
+ - 2026-10-11 10:08 | web-app (main) | 7134aad0-4ba6-4583-9503-c08e98d28270 | /Users/you/repo/web-app
123
+ ```
124
+
125
+ - Statuses: `idea`, `doing`, `waiting`, `paused`, `done`. `done: <date>` is set when an item is finished.
126
+ - Steps are `[agent]` (the AI can do it) or `[manual]` (you or someone else does it).
127
+ - An idea can be just the frontmatter; it grows when you start working on it.
128
+ - A session line ending in `| closed` no longer updates the item.
129
+
130
+ ## Config
131
+
132
+ `config.toml` lives in `~/.config/rumo/` on macOS and Linux (or `$XDG_CONFIG_HOME/rumo/`) and in
133
+ `%APPDATA%\rumo\` on Windows. `rumo index` prints its path.
134
+
135
+ ```toml
136
+ folder = "~/rumo"
137
+ language = "pt-BR" # language of the content the agent writes; defaults to your system language
138
+ tags = ["bug", "feature", "refactor", "research", "spike", "review",
139
+ "infra", "deploy", "meeting", "docs", "support", "tech-debt"]
140
+
141
+ [groups.auth]
142
+ name = "Auth migration"
143
+ color = "blue" # blue, green, yellow, orange, red, magenta, purple, cyan
144
+ ```
145
+
146
+ `RUMO_DIR` and `RUMO_CONFIG` override the folder and the config path.
147
+
148
+ ## Contributing
149
+
150
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the layout, tests, trying the plugin locally and how
151
+ releases work.
152
+
153
+ ## License
154
+
155
+ [MIT](LICENSE)
@@ -0,0 +1,41 @@
1
+ [project]
2
+ name = "rumo-cli"
3
+ version = "0.1.0"
4
+ description = "Your dev work, past, now and later: Markdown files, a terminal Timeline, and AI agents that keep it current"
5
+ readme = "README.md"
6
+ requires-python = ">=3.11"
7
+ license = "MIT"
8
+ license-files = ["LICENSE"]
9
+ authors = [{ name = "Pedro Buzzi" }]
10
+ keywords = ["productivity", "tasks", "todo", "worklog", "markdown", "tui", "claude-code", "ai-agents"]
11
+ classifiers = [
12
+ "Development Status :: 4 - Beta",
13
+ "Environment :: Console",
14
+ "Intended Audience :: Developers",
15
+ "Operating System :: OS Independent",
16
+ "Programming Language :: Python :: 3",
17
+ "Topic :: Office/Business :: Scheduling",
18
+ "Topic :: Utilities",
19
+ ]
20
+ dependencies = ["textual>=1.0"]
21
+
22
+ [project.urls]
23
+ Homepage = "https://github.com/pedrobuzzi/rumo"
24
+ Issues = "https://github.com/pedrobuzzi/rumo/issues"
25
+
26
+ [project.scripts]
27
+ rumo = "rumo.cli:main"
28
+
29
+ [build-system]
30
+ requires = ["hatchling>=1.27"]
31
+ build-backend = "hatchling.build"
32
+
33
+ [tool.hatch.build.targets.wheel]
34
+ packages = ["src/rumo"]
35
+
36
+ [tool.hatch.build.targets.sdist]
37
+ include = ["src/rumo", "README.md", "LICENSE"]
38
+
39
+ [tool.pyright]
40
+ include = ["src", "tests", "scripts"]
41
+ pythonVersion = "3.11"
File without changes