workrail 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.
workrail-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 xusheng
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,227 @@
1
+ Metadata-Version: 2.4
2
+ Name: workrail
3
+ Version: 0.1.0
4
+ Summary: A local-first workstream journal for developers and AI coding agents.
5
+ Author: xusheng
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/xu-sheng-dev/workrail
8
+ Project-URL: Repository, https://github.com/xu-sheng-dev/workrail.git
9
+ Project-URL: Issues, https://github.com/xu-sheng-dev/workrail/issues
10
+ Keywords: developer-tools,journal,cli,sqlite,agent
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Provides-Extra: dev
24
+ Requires-Dist: build; extra == "dev"
25
+ Requires-Dist: pytest; extra == "dev"
26
+ Requires-Dist: ruff; extra == "dev"
27
+ Dynamic: license-file
28
+
29
+ # WorkRail
30
+
31
+ ![Python](https://img.shields.io/badge/python-3.10%2B-blue)
32
+ ![License](https://img.shields.io/badge/license-MIT-green)
33
+ ![Status](https://img.shields.io/badge/status-alpha-orange)
34
+
35
+ WorkRail is a local-first workstream journal for developers and AI coding agents.
36
+
37
+ It records the useful trail around meaningful work: what started, what changed, what got
38
+ blocked, what should happen next, and how the work finished. WorkRail is intentionally
39
+ smaller than a task board. It stores structured progress events in a local SQLite database,
40
+ then turns them into reports, JSON state, and a read-only dashboard.
41
+
42
+ ## Why WorkRail
43
+
44
+ - Keep a compact timeline for work that spans more than one command or message.
45
+ - Let AI coding agents leave useful progress notes without dumping full transcripts.
46
+ - Generate daily and weekly Markdown reports from structured events.
47
+ - Inspect the current workstream from scripts with JSON output.
48
+ - Keep data local by default, with no service account or hosted backend required.
49
+
50
+ ## Install
51
+
52
+ Install from PyPI:
53
+
54
+ ```bash
55
+ pip install workrail
56
+ ```
57
+
58
+ If the package has not been published yet, install from a local checkout:
59
+
60
+ ```bash
61
+ pip install -e .
62
+ ```
63
+
64
+ Or install directly from GitHub:
65
+
66
+ ```bash
67
+ python -m pip install "git+https://github.com/xu-sheng-dev/workrail.git"
68
+ ```
69
+
70
+ For development:
71
+
72
+ ```bash
73
+ python -m venv .venv
74
+ .venv\Scripts\Activate.ps1
75
+ pip install -e ".[dev]"
76
+ ```
77
+
78
+ On macOS or Linux:
79
+
80
+ ```bash
81
+ python -m venv .venv
82
+ source .venv/bin/activate
83
+ pip install -e ".[dev]"
84
+ ```
85
+
86
+ WorkRail has no runtime dependencies outside the Python standard library.
87
+
88
+ ## Quick Start
89
+
90
+ ```bash
91
+ workrail start "Fix token expiry handling"
92
+ workrail checkpoint "Found a timestamp unit mismatch"
93
+ workrail note "Backend returns seconds while frontend expects milliseconds"
94
+ workrail next "Verify with local mock data"
95
+ workrail done "Fixed the conversion and passed related tests"
96
+ workrail report today
97
+ ```
98
+
99
+ WorkRail keeps one current rail. If another rail is already active, `start` fails by
100
+ default so you do not accidentally mix two workstreams. Finish it, abandon it, or
101
+ intentionally replace it:
102
+
103
+ ```bash
104
+ workrail abandon "No longer current"
105
+ workrail start "New task" --force
106
+ ```
107
+
108
+ Use `--help` to inspect the CLI:
109
+
110
+ ```bash
111
+ workrail --help
112
+ workrail start --help
113
+ ```
114
+
115
+ ## Agent Usage
116
+
117
+ WorkRail is designed to be easy for coding agents to use while they work.
118
+
119
+ ```bash
120
+ workrail current --json
121
+ workrail start "Improve test coverage" --source agent --project auto --quiet
122
+ workrail checkpoint "Added storage regression tests" --source agent --quiet
123
+ workrail done "Implemented tests and verified with pytest" --source agent --quiet
124
+ ```
125
+
126
+ The bundled skill gives agents a small policy for when to log progress, when to record a
127
+ blocker, and when to stop. Install it into a supported agent skills directory:
128
+
129
+ ```bash
130
+ workrail install-skill --agent codex
131
+ workrail install-skill --agent claude
132
+ workrail install-skill --agent opencode
133
+ ```
134
+
135
+ You can also install to a custom directory:
136
+
137
+ ```bash
138
+ workrail install-skill --target ./installed-skills --force
139
+ ```
140
+
141
+ With `--agent auto`, WorkRail installs into the only existing supported agent directory.
142
+ If multiple supported directories exist, specify `--agent` or `--target`.
143
+
144
+ ## Local Dashboard
145
+
146
+ Start the read-only dashboard:
147
+
148
+ ```bash
149
+ workrail web
150
+ ```
151
+
152
+ Open:
153
+
154
+ ```text
155
+ http://127.0.0.1:18765
156
+ ```
157
+
158
+ The dashboard binds to `127.0.0.1` by default. Binding to another host can expose local
159
+ work data on your network.
160
+
161
+ ## Commands
162
+
163
+ | Command | Purpose |
164
+ | --- | --- |
165
+ | `start` | Start a new rail. |
166
+ | `note` or `n` | Record a note on the current rail. |
167
+ | `checkpoint` | Record meaningful progress. |
168
+ | `block` | Mark the current rail as blocked and record why. |
169
+ | `next` | Record the next step. |
170
+ | `done` | Complete the current rail. |
171
+ | `abandon` | Stop tracking the current rail without marking it done. |
172
+ | `current` | Show the current rail, optionally as JSON. |
173
+ | `today` | Show today's workstream. |
174
+ | `report` | Generate a Markdown report for `today` or `week`. |
175
+ | `web` | Start the local dashboard. |
176
+ | `install-skill` | Install the bundled agent skill. |
177
+
178
+ ## Data And Privacy
179
+
180
+ WorkRail stores data in a local SQLite database. Set `WORKRAIL_DB` to choose the database
181
+ file:
182
+
183
+ ```bash
184
+ set WORKRAIL_DB=C:\temp\workrail.db
185
+ ```
186
+
187
+ On macOS or Linux:
188
+
189
+ ```bash
190
+ export WORKRAIL_DB=/tmp/workrail.db
191
+ ```
192
+
193
+ Without `WORKRAIL_DB`, WorkRail uses the standard local app data directory:
194
+
195
+ | Platform | Default location |
196
+ | --- | --- |
197
+ | Windows | `%LOCALAPPDATA%\WorkRail\workrail.db` |
198
+ | macOS | `~/Library/Application Support/workrail/workrail.db` |
199
+ | Linux | `$XDG_DATA_HOME/workrail/workrail.db` or `~/.local/share/workrail/workrail.db` |
200
+
201
+ WorkRail includes basic safeguards that reject common secret-shaped content such as token
202
+ assignments, bearer tokens, private keys, and AWS access keys. Treat this as a guardrail,
203
+ not a substitute for reviewing what you ask humans or agents to record.
204
+
205
+ ## Project Status
206
+
207
+ WorkRail is alpha software. The first release focuses on a small, stable core:
208
+
209
+ - Local SQLite storage.
210
+ - A compact CLI.
211
+ - Agent-friendly JSON output.
212
+ - Daily and weekly Markdown reports.
213
+ - A read-only local dashboard.
214
+ - A bundled agent skill and installer command.
215
+
216
+ ## Development
217
+
218
+ ```bash
219
+ pip install -e ".[dev]"
220
+ ruff check .
221
+ pytest
222
+ python -m build
223
+ ```
224
+
225
+ ## License
226
+
227
+ WorkRail is released under the MIT License. See `LICENSE`.
@@ -0,0 +1,199 @@
1
+ # WorkRail
2
+
3
+ ![Python](https://img.shields.io/badge/python-3.10%2B-blue)
4
+ ![License](https://img.shields.io/badge/license-MIT-green)
5
+ ![Status](https://img.shields.io/badge/status-alpha-orange)
6
+
7
+ WorkRail is a local-first workstream journal for developers and AI coding agents.
8
+
9
+ It records the useful trail around meaningful work: what started, what changed, what got
10
+ blocked, what should happen next, and how the work finished. WorkRail is intentionally
11
+ smaller than a task board. It stores structured progress events in a local SQLite database,
12
+ then turns them into reports, JSON state, and a read-only dashboard.
13
+
14
+ ## Why WorkRail
15
+
16
+ - Keep a compact timeline for work that spans more than one command or message.
17
+ - Let AI coding agents leave useful progress notes without dumping full transcripts.
18
+ - Generate daily and weekly Markdown reports from structured events.
19
+ - Inspect the current workstream from scripts with JSON output.
20
+ - Keep data local by default, with no service account or hosted backend required.
21
+
22
+ ## Install
23
+
24
+ Install from PyPI:
25
+
26
+ ```bash
27
+ pip install workrail
28
+ ```
29
+
30
+ If the package has not been published yet, install from a local checkout:
31
+
32
+ ```bash
33
+ pip install -e .
34
+ ```
35
+
36
+ Or install directly from GitHub:
37
+
38
+ ```bash
39
+ python -m pip install "git+https://github.com/xu-sheng-dev/workrail.git"
40
+ ```
41
+
42
+ For development:
43
+
44
+ ```bash
45
+ python -m venv .venv
46
+ .venv\Scripts\Activate.ps1
47
+ pip install -e ".[dev]"
48
+ ```
49
+
50
+ On macOS or Linux:
51
+
52
+ ```bash
53
+ python -m venv .venv
54
+ source .venv/bin/activate
55
+ pip install -e ".[dev]"
56
+ ```
57
+
58
+ WorkRail has no runtime dependencies outside the Python standard library.
59
+
60
+ ## Quick Start
61
+
62
+ ```bash
63
+ workrail start "Fix token expiry handling"
64
+ workrail checkpoint "Found a timestamp unit mismatch"
65
+ workrail note "Backend returns seconds while frontend expects milliseconds"
66
+ workrail next "Verify with local mock data"
67
+ workrail done "Fixed the conversion and passed related tests"
68
+ workrail report today
69
+ ```
70
+
71
+ WorkRail keeps one current rail. If another rail is already active, `start` fails by
72
+ default so you do not accidentally mix two workstreams. Finish it, abandon it, or
73
+ intentionally replace it:
74
+
75
+ ```bash
76
+ workrail abandon "No longer current"
77
+ workrail start "New task" --force
78
+ ```
79
+
80
+ Use `--help` to inspect the CLI:
81
+
82
+ ```bash
83
+ workrail --help
84
+ workrail start --help
85
+ ```
86
+
87
+ ## Agent Usage
88
+
89
+ WorkRail is designed to be easy for coding agents to use while they work.
90
+
91
+ ```bash
92
+ workrail current --json
93
+ workrail start "Improve test coverage" --source agent --project auto --quiet
94
+ workrail checkpoint "Added storage regression tests" --source agent --quiet
95
+ workrail done "Implemented tests and verified with pytest" --source agent --quiet
96
+ ```
97
+
98
+ The bundled skill gives agents a small policy for when to log progress, when to record a
99
+ blocker, and when to stop. Install it into a supported agent skills directory:
100
+
101
+ ```bash
102
+ workrail install-skill --agent codex
103
+ workrail install-skill --agent claude
104
+ workrail install-skill --agent opencode
105
+ ```
106
+
107
+ You can also install to a custom directory:
108
+
109
+ ```bash
110
+ workrail install-skill --target ./installed-skills --force
111
+ ```
112
+
113
+ With `--agent auto`, WorkRail installs into the only existing supported agent directory.
114
+ If multiple supported directories exist, specify `--agent` or `--target`.
115
+
116
+ ## Local Dashboard
117
+
118
+ Start the read-only dashboard:
119
+
120
+ ```bash
121
+ workrail web
122
+ ```
123
+
124
+ Open:
125
+
126
+ ```text
127
+ http://127.0.0.1:18765
128
+ ```
129
+
130
+ The dashboard binds to `127.0.0.1` by default. Binding to another host can expose local
131
+ work data on your network.
132
+
133
+ ## Commands
134
+
135
+ | Command | Purpose |
136
+ | --- | --- |
137
+ | `start` | Start a new rail. |
138
+ | `note` or `n` | Record a note on the current rail. |
139
+ | `checkpoint` | Record meaningful progress. |
140
+ | `block` | Mark the current rail as blocked and record why. |
141
+ | `next` | Record the next step. |
142
+ | `done` | Complete the current rail. |
143
+ | `abandon` | Stop tracking the current rail without marking it done. |
144
+ | `current` | Show the current rail, optionally as JSON. |
145
+ | `today` | Show today's workstream. |
146
+ | `report` | Generate a Markdown report for `today` or `week`. |
147
+ | `web` | Start the local dashboard. |
148
+ | `install-skill` | Install the bundled agent skill. |
149
+
150
+ ## Data And Privacy
151
+
152
+ WorkRail stores data in a local SQLite database. Set `WORKRAIL_DB` to choose the database
153
+ file:
154
+
155
+ ```bash
156
+ set WORKRAIL_DB=C:\temp\workrail.db
157
+ ```
158
+
159
+ On macOS or Linux:
160
+
161
+ ```bash
162
+ export WORKRAIL_DB=/tmp/workrail.db
163
+ ```
164
+
165
+ Without `WORKRAIL_DB`, WorkRail uses the standard local app data directory:
166
+
167
+ | Platform | Default location |
168
+ | --- | --- |
169
+ | Windows | `%LOCALAPPDATA%\WorkRail\workrail.db` |
170
+ | macOS | `~/Library/Application Support/workrail/workrail.db` |
171
+ | Linux | `$XDG_DATA_HOME/workrail/workrail.db` or `~/.local/share/workrail/workrail.db` |
172
+
173
+ WorkRail includes basic safeguards that reject common secret-shaped content such as token
174
+ assignments, bearer tokens, private keys, and AWS access keys. Treat this as a guardrail,
175
+ not a substitute for reviewing what you ask humans or agents to record.
176
+
177
+ ## Project Status
178
+
179
+ WorkRail is alpha software. The first release focuses on a small, stable core:
180
+
181
+ - Local SQLite storage.
182
+ - A compact CLI.
183
+ - Agent-friendly JSON output.
184
+ - Daily and weekly Markdown reports.
185
+ - A read-only local dashboard.
186
+ - A bundled agent skill and installer command.
187
+
188
+ ## Development
189
+
190
+ ```bash
191
+ pip install -e ".[dev]"
192
+ ruff check .
193
+ pytest
194
+ python -m build
195
+ ```
196
+
197
+ ## License
198
+
199
+ WorkRail is released under the MIT License. See `LICENSE`.
@@ -0,0 +1,56 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "workrail"
7
+ version = "0.1.0"
8
+ description = "A local-first workstream journal for developers and AI coding agents."
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "MIT"
12
+ authors = [
13
+ { name = "xusheng" }
14
+ ]
15
+ keywords = ["developer-tools", "journal", "cli", "sqlite", "agent"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Topic :: Software Development",
26
+ ]
27
+ dependencies = []
28
+
29
+ [project.urls]
30
+ Homepage = "https://github.com/xu-sheng-dev/workrail"
31
+ Repository = "https://github.com/xu-sheng-dev/workrail.git"
32
+ Issues = "https://github.com/xu-sheng-dev/workrail/issues"
33
+
34
+ [project.optional-dependencies]
35
+ dev = [
36
+ "build",
37
+ "pytest",
38
+ "ruff",
39
+ ]
40
+
41
+ [project.scripts]
42
+ workrail = "workrail.cli:main"
43
+
44
+ [tool.setuptools.packages.find]
45
+ where = ["src"]
46
+
47
+ [tool.setuptools.package-data]
48
+ workrail = ["skills/workrail-agent/SKILL.md"]
49
+
50
+ [tool.ruff]
51
+ line-length = 100
52
+ target-version = "py310"
53
+
54
+ [tool.pytest.ini_options]
55
+ testpaths = ["tests"]
56
+ addopts = "-q"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ """WorkRail package."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,9 @@
1
+ from __future__ import annotations
2
+
3
+ import sys
4
+
5
+ from workrail.cli import main
6
+
7
+
8
+ if __name__ == "__main__":
9
+ sys.exit(main())