reshoot 0.3.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.
- reshoot-0.3.0/.claude-plugin/marketplace.json +15 -0
- reshoot-0.3.0/.claude-plugin/plugin.json +11 -0
- reshoot-0.3.0/.gitignore +12 -0
- reshoot-0.3.0/CHANGELOG.md +35 -0
- reshoot-0.3.0/LICENSE +21 -0
- reshoot-0.3.0/PKG-INFO +268 -0
- reshoot-0.3.0/README.md +239 -0
- reshoot-0.3.0/examples/notes/about.html +23 -0
- reshoot-0.3.0/examples/notes/edit.py +64 -0
- reshoot-0.3.0/examples/notes/index.html +61 -0
- reshoot-0.3.0/examples/notes/phone.py +8 -0
- reshoot-0.3.0/examples/notes/release-v1.toml +11 -0
- reshoot-0.3.0/examples/notes/release-v2/about.html +23 -0
- reshoot-0.3.0/examples/notes/release-v2/index.html +61 -0
- reshoot-0.3.0/examples/notes/release-v2.toml +11 -0
- reshoot-0.3.0/examples/notes/releases.md +24 -0
- reshoot-0.3.0/examples/notes/reshoot.toml +24 -0
- reshoot-0.3.0/examples/notes/storyboard.py +17 -0
- reshoot-0.3.0/examples/notes/storyboard.toml +49 -0
- reshoot-0.3.0/examples/notes/terminal.tape +26 -0
- reshoot-0.3.0/examples/notes/voiced.py +18 -0
- reshoot-0.3.0/pyproject.toml +71 -0
- reshoot-0.3.0/skills/README.md +98 -0
- reshoot-0.3.0/skills/check-privacy/SKILL.md +72 -0
- reshoot-0.3.0/skills/cut-video/SKILL.md +77 -0
- reshoot-0.3.0/skills/keep-current/SKILL.md +41 -0
- reshoot-0.3.0/skills/plan-demo/SKILL.md +66 -0
- reshoot-0.3.0/skills/record-terminal/SKILL.md +50 -0
- reshoot-0.3.0/skills/record-terminal/template.tape +25 -0
- reshoot-0.3.0/skills/record-web/SKILL.md +159 -0
- reshoot-0.3.0/skills/record-window/SKILL.md +45 -0
- reshoot-0.3.0/skills/reshoot-demo/SKILL.md +28 -0
- reshoot-0.3.0/skills/reshoot-demo/agents/openai.yaml +4 -0
- reshoot-0.3.0/skills/reshoot-refresh/SKILL.md +22 -0
- reshoot-0.3.0/skills/reshoot-refresh/agents/openai.yaml +4 -0
- reshoot-0.3.0/skills/reshoot-review/SKILL.md +25 -0
- reshoot-0.3.0/skills/reshoot-review/agents/openai.yaml +4 -0
- reshoot-0.3.0/src/reshoot/__init__.py +1 -0
- reshoot-0.3.0/src/reshoot/artifacts.py +55 -0
- reshoot-0.3.0/src/reshoot/browser.py +280 -0
- reshoot-0.3.0/src/reshoot/check.py +326 -0
- reshoot-0.3.0/src/reshoot/cli.py +127 -0
- reshoot-0.3.0/src/reshoot/config.py +83 -0
- reshoot-0.3.0/src/reshoot/cut.py +371 -0
- reshoot-0.3.0/src/reshoot/overlay.js +247 -0
- reshoot-0.3.0/src/reshoot/project.py +92 -0
- reshoot-0.3.0/src/reshoot/rec.js +88 -0
- reshoot-0.3.0/src/reshoot/rec.py +181 -0
- reshoot-0.3.0/src/reshoot/review.py +223 -0
- reshoot-0.3.0/src/reshoot/run.py +286 -0
- reshoot-0.3.0/src/reshoot/safety.py +28 -0
- reshoot-0.3.0/src/reshoot/scan.py +133 -0
- reshoot-0.3.0/src/reshoot/skills.py +26 -0
- reshoot-0.3.0/src/reshoot/story.py +86 -0
- reshoot-0.3.0/src/reshoot/templates/BRIEF.md +22 -0
- reshoot-0.3.0/src/reshoot/templates/about.html +23 -0
- reshoot-0.3.0/src/reshoot/templates/edit.py +9 -0
- reshoot-0.3.0/src/reshoot/templates/edit.toml +13 -0
- reshoot-0.3.0/src/reshoot/templates/index.html +61 -0
- reshoot-0.3.0/src/reshoot/templates/reshoot.toml +15 -0
- reshoot-0.3.0/src/reshoot/templates/storyboard.py +9 -0
- reshoot-0.3.0/src/reshoot/templates/storyboard.toml +49 -0
- reshoot-0.3.0/src/reshoot/timeline.py +244 -0
- reshoot-0.3.0/src/reshoot/voice.py +70 -0
- reshoot-0.3.0/src/reshoot/web.py +359 -0
- reshoot-0.3.0/src/reshoot/window.py +57 -0
- reshoot-0.3.0/src/reshoot/zoom.py +292 -0
- reshoot-0.3.0/tests/boards/blur.py +9 -0
- reshoot-0.3.0/tests/boards/pages.py +8 -0
- reshoot-0.3.0/tests/boards/selectors.html +10 -0
- reshoot-0.3.0/tests/boards/voice.py +4 -0
- reshoot-0.3.0/tests/conftest.py +22 -0
- reshoot-0.3.0/tests/person.py +74 -0
- reshoot-0.3.0/tests/test_distribution.py +21 -0
- reshoot-0.3.0/tests/test_edit.py +83 -0
- reshoot-0.3.0/tests/test_failures.py +143 -0
- reshoot-0.3.0/tests/test_project.py +148 -0
- reshoot-0.3.0/tests/test_reshoot.py +583 -0
- reshoot-0.3.0/tests/test_review.py +175 -0
- reshoot-0.3.0/tests/test_story.py +252 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "reshoot",
|
|
3
|
+
"description": "Agent skills and recording tools for repeatable software demo videos.",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "Mumit Khan",
|
|
6
|
+
"url": "https://github.com/mumit"
|
|
7
|
+
},
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "reshoot",
|
|
11
|
+
"source": "./",
|
|
12
|
+
"description": "Give your coding agent a task. Create a demo video, refresh it after UI changes, and review the result with reshoot."
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
|
|
3
|
+
"name": "reshoot",
|
|
4
|
+
"version": "0.3.0",
|
|
5
|
+
"description": "Agent skills to create, refresh and review software demo videos. Use the reshoot CLI to record the app, export an MP4 and README GIF, and keep the demo source beside the code.",
|
|
6
|
+
"author": { "name": "Mumit Khan", "url": "https://github.com/mumit" },
|
|
7
|
+
"homepage": "https://github.com/mumit/reshoot",
|
|
8
|
+
"repository": "https://github.com/mumit/reshoot",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"keywords": ["agent-skills", "demo", "video", "readme", "storyboard", "vhs", "ffmpeg"]
|
|
11
|
+
}
|
reshoot-0.3.0/.gitignore
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Each release names what changed for people making demos. Versions follow
|
|
4
|
+
[semantic versioning](https://semver.org/); before 1.0, a minor version may
|
|
5
|
+
change project files or commands.
|
|
6
|
+
|
|
7
|
+
## 0.3.0 (2026-10-23)
|
|
8
|
+
|
|
9
|
+
The first release on PyPI. Install it with `uv tool install 'reshoot[browser]'`.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Published to PyPI, with a release workflow that builds, checks and publishes
|
|
14
|
+
each tagged version.
|
|
15
|
+
- An agent-first entry point: a first-demo prompt in the README, the agent
|
|
16
|
+
quickstart and a skill catalog.
|
|
17
|
+
- Guides for each stage after the first recording: features, customizing,
|
|
18
|
+
fuller demos and tutorials, publishing, CI and faster shoots.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Review pages show baseline GIFs as images; MP4s keep their video players.
|
|
23
|
+
- Joined title cards no longer vanish or freeze in GIF exports.
|
|
24
|
+
- Clip joins keep an exact frame rate.
|
|
25
|
+
- Captions stay visible across same-origin page loads.
|
|
26
|
+
- Previews that mix web and VHS takes keep matching dimensions.
|
|
27
|
+
- Runs leave incomplete expectations unverified instead of passing them.
|
|
28
|
+
- `doctor` rejects a `RESHOOT_CHROME` that does not name a usable browser.
|
|
29
|
+
|
|
30
|
+
## 0.2.0
|
|
31
|
+
|
|
32
|
+
Repeatable demo projects: `reshoot.toml`, TOML storyboards with checked
|
|
33
|
+
expectations, `init`, `doctor`, `preview`, isolated versioned runs, `compare`,
|
|
34
|
+
`review` with bound decisions, `export`, and shared Claude Code and Codex skills
|
|
35
|
+
installed by `reshoot skills`. Installed from Git only.
|
reshoot-0.3.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Mumit Khan
|
|
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.
|
reshoot-0.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: reshoot
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Agent skills and recording tools for repeatable software demo videos
|
|
5
|
+
Project-URL: Homepage, https://github.com/mumit/reshoot
|
|
6
|
+
Project-URL: Documentation, https://github.com/mumit/reshoot/tree/main/guide
|
|
7
|
+
Project-URL: Changelog, https://github.com/mumit/reshoot/blob/main/CHANGELOG.md
|
|
8
|
+
Project-URL: Issues, https://github.com/mumit/reshoot/issues
|
|
9
|
+
Author: Mumit Khan
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: agent-skills,demo,gif,playwright,readme,screencast,video
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Operating System :: MacOS
|
|
17
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Topic :: Multimedia :: Video
|
|
20
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Requires-Dist: pillow>=10.1
|
|
23
|
+
Requires-Dist: pyobjc-framework-quartz>=10; sys_platform == 'darwin'
|
|
24
|
+
Requires-Dist: pyobjc-framework-vision>=10; sys_platform == 'darwin'
|
|
25
|
+
Requires-Dist: websockets>=12
|
|
26
|
+
Provides-Extra: browser
|
|
27
|
+
Requires-Dist: playwright==1.58.0; extra == 'browser'
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# reshoot
|
|
31
|
+
|
|
32
|
+
**Give your agent a task. Get a demo you can run again.**
|
|
33
|
+
|
|
34
|
+
An agent-first toolkit for software demos: open source skills and recording
|
|
35
|
+
tools for Codex and Claude Code. Turn a task in your app into a captioned MP4,
|
|
36
|
+
a README GIF, and source files that keep the demo repeatable as the app changes.
|
|
37
|
+
|
|
38
|
+

|
|
39
|
+
|
|
40
|
+
The UI changed. The same story still saves and finds the same note.
|
|
41
|
+
[Watch the 21-second demo](https://github.com/mumit/reshoot/blob/main/docs/demo/reshoot.mp4) ·
|
|
42
|
+
[Make a demo of your app](https://github.com/mumit/reshoot/blob/main/guide/agent-quickstart.md) ·
|
|
43
|
+
[Explore the skills](https://github.com/mumit/reshoot/blob/main/skills/README.md) · [Use the CLI](https://github.com/mumit/reshoot/blob/main/guide/step-by-step.md)
|
|
44
|
+
|
|
45
|
+
## Make a demo of your app
|
|
46
|
+
|
|
47
|
+
Open **Codex or Claude Code** in your app's repository, or an empty demo folder
|
|
48
|
+
if you only have a running app. Paste this prompt. Change `Target:` to your
|
|
49
|
+
web app's URL or the name of a macOS app and its demo window when needed.
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Make a short demo with reshoot.
|
|
53
|
+
Read https://github.com/mumit/reshoot/blob/main/guide/agent-quickstart.md
|
|
54
|
+
and follow its setup and creation workflow.
|
|
55
|
+
|
|
56
|
+
Target: the app in this repository.
|
|
57
|
+
Choose one useful task with a clear visible result. Use synthetic demo data.
|
|
58
|
+
Produce a short captioned MP4 and a README GIF. Keep the recording source in
|
|
59
|
+
demo/ so it can be updated later.
|
|
60
|
+
|
|
61
|
+
Inspect a preview, then record a fresh final and open both exports for review.
|
|
62
|
+
Ask only for permissions or missing details needed to proceed.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Add a task if you have one: “Show creating a project and finding it by search.”
|
|
66
|
+
Otherwise, let the agent inspect the app and propose a useful task. Source code
|
|
67
|
+
is optional. Browser recording runs on macOS or Linux; native window capture
|
|
68
|
+
requires macOS and app-specific automation or your interaction during capture.
|
|
69
|
+
The agent needs a local session with a shell and access to the target.
|
|
70
|
+
|
|
71
|
+
The agent handles setup, reads the app's controls, writes the story, records a
|
|
72
|
+
preview and prepares the final exports. You watch the result, request changes
|
|
73
|
+
and decide whether to share it. Initial setup may need installation permissions
|
|
74
|
+
or an isolated demo login.
|
|
75
|
+
|
|
76
|
+
**You get a video, a GIF, and their source.** Keep the `demo/` recipe beside the
|
|
77
|
+
app's code or in its own folder. Browser projects retain each attempt in a
|
|
78
|
+
versioned run folder. Native recipes retain standalone takes and edit scripts.
|
|
79
|
+
|
|
80
|
+
Already installed the skills? Start with `$reshoot-demo` in Codex or
|
|
81
|
+
`/reshoot-demo` in Claude Code, followed by the task.
|
|
82
|
+
|
|
83
|
+
## Three skills, one workflow
|
|
84
|
+
|
|
85
|
+
A skill gives the coding agent a reusable workflow: how to choose the task,
|
|
86
|
+
record it, check the result and present it for review. Reshoot's CLI performs
|
|
87
|
+
the recording and editing. The agent uses available source code or the running
|
|
88
|
+
app's controls to adapt that workflow to the product.
|
|
89
|
+
|
|
90
|
+
| When | Skill | What to ask for |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| Make the first demo | [reshoot-demo](https://github.com/mumit/reshoot/blob/main/skills/reshoot-demo/SKILL.md) | “Show a customer saving a search and seeing its results.” |
|
|
93
|
+
| The app changed | [reshoot-refresh](https://github.com/mumit/reshoot/blob/main/skills/reshoot-refresh/SKILL.md) | “Record that task again with the updated UI. Keep the old take for comparison.” |
|
|
94
|
+
| Check before sharing | [reshoot-review](https://github.com/mumit/reshoot/blob/main/skills/reshoot-review/SKILL.md) | “Inspect the final video and GIF, compare the previous run, and report anything that needs attention.” |
|
|
95
|
+
|
|
96
|
+
For a refresh or review, include the demo's configuration and the exact previous
|
|
97
|
+
run, or the native capture recipe and previous media. See the
|
|
98
|
+
[copyable follow-up prompts](https://github.com/mumit/reshoot/blob/main/guide/agent-quickstart.md#update-the-demo-when-the-app-changes).
|
|
99
|
+
|
|
100
|
+
Browser projects keep actions, captions and expected results in editable files.
|
|
101
|
+
Result checks can verify that a saved item appears or that a search returns one
|
|
102
|
+
match. When a control moves or a label changes, the agent can repair the story
|
|
103
|
+
and record a new candidate. Watch and approve the new exports before sharing.
|
|
104
|
+
|
|
105
|
+
## Install the skills
|
|
106
|
+
|
|
107
|
+
Use the first-demo prompt above to let the agent handle setup, or install the
|
|
108
|
+
tools and skills yourself. The skills need the reshoot CLI, Python 3.11+, Git,
|
|
109
|
+
ffmpeg and, for browser recording, Chrome or Chromium. Linux text scanning also
|
|
110
|
+
needs Tesseract. Follow the [platform setup](https://github.com/mumit/reshoot/blob/main/guide/install.md), then choose one
|
|
111
|
+
installation route.
|
|
112
|
+
|
|
113
|
+
### Codex
|
|
114
|
+
|
|
115
|
+
Run this in the app repository or demo work folder:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
reshoot skills codex --directory .
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
This installs `reshoot-demo`, `reshoot-refresh` and `reshoot-review` into
|
|
122
|
+
`.agents/skills/`. In Codex, invoke a skill and describe the task:
|
|
123
|
+
|
|
124
|
+
```text
|
|
125
|
+
$reshoot-demo
|
|
126
|
+
Create a short demo of saving a task and finding it by search.
|
|
127
|
+
Produce an MP4 and a README GIF using synthetic data.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Claude Code
|
|
131
|
+
|
|
132
|
+
Run this in the app repository or demo work folder:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
reshoot skills claude --directory .
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
This installs the same three skills into `.claude/skills/`. In Claude Code:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
/reshoot-demo
|
|
142
|
+
Create a short demo of saving a task and finding it by search.
|
|
143
|
+
Produce an MP4 and a README GIF using synthetic data.
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Claude Code plugin
|
|
147
|
+
|
|
148
|
+
To install all ten skills through Claude Code's plugin system, run these
|
|
149
|
+
commands inside Claude Code and follow its installation prompts:
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
/plugin marketplace add mumit/reshoot
|
|
153
|
+
/plugin install reshoot@reshoot
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Use `/reshoot:reshoot-demo`, `/reshoot:reshoot-refresh` or
|
|
157
|
+
`/reshoot:reshoot-review`, followed by the task. The plugin includes seven
|
|
158
|
+
supporting skills for planning, individual recordings, editing, privacy checks
|
|
159
|
+
and CI. Install the CLI and recording dependencies as well.
|
|
160
|
+
|
|
161
|
+
The [agent quickstart](https://github.com/mumit/reshoot/blob/main/guide/agent-quickstart.md#install-the-skills-yourself)
|
|
162
|
+
covers skill discovery and the differences between these routes. The CLI
|
|
163
|
+
installer preserves existing skill folders; compare updates before replacing
|
|
164
|
+
local changes.
|
|
165
|
+
|
|
166
|
+
## Keep the demo with the code
|
|
167
|
+
|
|
168
|
+
Reshoot records real interactions with the app. The demo project describes
|
|
169
|
+
what to do, what should happen, how long the result should remain visible and
|
|
170
|
+
which formats to export.
|
|
171
|
+
|
|
172
|
+
| Keep in a browser project | Purpose |
|
|
173
|
+
|---|---|
|
|
174
|
+
| `BRIEF.md` | Audience, task, visible result and destination |
|
|
175
|
+
| `storyboard.toml` | Actions, captions and expected results |
|
|
176
|
+
| `edit.toml` | Cuts, result holds and output formats |
|
|
177
|
+
| `reshoot.toml` | App startup, recording and check settings |
|
|
178
|
+
|
|
179
|
+
Each versioned browser or terminal candidate retains its report, video, GIF and
|
|
180
|
+
review evidence under `takes/runs/ID/`. Keep the recording source in version control and generated
|
|
181
|
+
takes outside it. Select an explicit baseline when comparing updates.
|
|
182
|
+
|
|
183
|
+
Native demos keep their capture instructions and edit script separately; see
|
|
184
|
+
the [macOS window workflow](https://github.com/mumit/reshoot/blob/main/guide/macos-window.md).
|
|
185
|
+
Use the [CI workflow](https://github.com/mumit/reshoot/blob/main/guide/ci.md) to record browser and terminal candidates after
|
|
186
|
+
app changes. Review the outputs before updating published demo media.
|
|
187
|
+
|
|
188
|
+
## Choose the recording for the task
|
|
189
|
+
|
|
190
|
+
| Show | Tools |
|
|
191
|
+
|---|---|
|
|
192
|
+
| A web app | Headless Chrome, native browser actions, cursor, typing and captions |
|
|
193
|
+
| A CLI or an agent at work | [VHS](https://github.com/charmbracelet/vhs) terminal recordings |
|
|
194
|
+
| A native app on macOS | One window captured by its ID; app-specific automation or manual interaction |
|
|
195
|
+
| The result in different formats | MP4 and GIF exports, custom edits and intentional portrait crops |
|
|
196
|
+
| A narrated explanation | Optional voiceover, music and subtitles |
|
|
197
|
+
|
|
198
|
+
Use synthetic demo data. Capture a browser page, a terminal or one app window.
|
|
199
|
+
Watch the finished exports and inspect the scan sheets. Automatic checks flag
|
|
200
|
+
potential problems; you make the final review decisions. Reshoot keeps
|
|
201
|
+
publication manual.
|
|
202
|
+
|
|
203
|
+
Browser workflows are tested on macOS and Linux. Native window capture and
|
|
204
|
+
Vision face/person detection require macOS; Linux uses Tesseract for text.
|
|
205
|
+
See [platforms and tested limits](https://github.com/mumit/reshoot/blob/main/guide/README.md#platforms).
|
|
206
|
+
|
|
207
|
+
## Use the CLI directly
|
|
208
|
+
|
|
209
|
+
Start with the bundled notes app to try the tools without a coding agent:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
reshoot init demo
|
|
213
|
+
reshoot doctor --config demo/reshoot.toml
|
|
214
|
+
reshoot preview demo/reshoot.toml
|
|
215
|
+
reshoot run demo/reshoot.toml
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The [CLI tutorial](https://github.com/mumit/reshoot/blob/main/guide/step-by-step.md) covers the complete first recording,
|
|
219
|
+
an app change, a deliberate failure, repair, comparison, review and export.
|
|
220
|
+
For your own app, `reshoot init demo --url http://localhost:3000/` creates a
|
|
221
|
+
project draft. Replace its placeholder story with actions and result checks
|
|
222
|
+
using the [own-app walkthrough](https://github.com/mumit/reshoot/blob/main/guide/your-app.md).
|
|
223
|
+
|
|
224
|
+
## Grow the demo at your own pace
|
|
225
|
+
|
|
226
|
+
| Stage | Start here |
|
|
227
|
+
|---|---|
|
|
228
|
+
| 1. Get a first recording | [One agent prompt](https://github.com/mumit/reshoot/blob/main/guide/agent-quickstart.md), or the [CLI notes tutorial](https://github.com/mumit/reshoot/blob/main/guide/step-by-step.md) |
|
|
229
|
+
| 2. See what else is possible | [Explore features and examples](https://github.com/mumit/reshoot/blob/main/guide/features.md) |
|
|
230
|
+
| 3. Change something small | [Edit a caption, timing and GIF size](https://github.com/mumit/reshoot/blob/main/guide/customize.md) |
|
|
231
|
+
| 4. Make a fuller demo or tutorial | [Build the story and edit](https://github.com/mumit/reshoot/blob/main/guide/make-demo.md) |
|
|
232
|
+
| 5. Keep it current and share it | [Updates and publishing](https://github.com/mumit/reshoot/blob/main/guide/publish.md), then [GitHub Actions](https://github.com/mumit/reshoot/blob/main/guide/ci.md) |
|
|
233
|
+
|
|
234
|
+
Start from [source code](https://github.com/mumit/reshoot/blob/main/guide/your-app.md), a [running web URL](https://github.com/mumit/reshoot/blob/main/guide/running-web-app.md)
|
|
235
|
+
or a [macOS app window](https://github.com/mumit/reshoot/blob/main/guide/macos-window.md). Skip directly to the stage you need.
|
|
236
|
+
|
|
237
|
+
## Find the right guide
|
|
238
|
+
|
|
239
|
+
| Task | Start here |
|
|
240
|
+
|---|---|
|
|
241
|
+
| Get a first demo with an agent | [Agent quickstart](https://github.com/mumit/reshoot/blob/main/guide/agent-quickstart.md) |
|
|
242
|
+
| Browse the skill package | [Skill catalog](https://github.com/mumit/reshoot/blob/main/skills/README.md) |
|
|
243
|
+
| Install or upgrade the tools | [Installation](https://github.com/mumit/reshoot/blob/main/guide/install.md) |
|
|
244
|
+
| Learn the CLI workflow from scratch | [Notes tutorial](https://github.com/mumit/reshoot/blob/main/guide/step-by-step.md) |
|
|
245
|
+
| Write a story for an existing app | [Own-app walkthrough](https://github.com/mumit/reshoot/blob/main/guide/your-app.md) |
|
|
246
|
+
| Look up actions, captions, edits and exports | [Project reference](https://github.com/mumit/reshoot/blob/main/guide/projects.md) |
|
|
247
|
+
| Find a command or fix a failed step | [Command map](https://github.com/mumit/reshoot/blob/main/guide/commands.md) · [Troubleshooting](https://github.com/mumit/reshoot/blob/main/guide/troubleshooting.md) |
|
|
248
|
+
| Record a terminal or native window | [Manual workflow](https://github.com/mumit/reshoot/blob/main/guide/manual.md) |
|
|
249
|
+
| Reproduce the README demo | [Before-and-after recipe](https://github.com/mumit/reshoot/blob/main/examples/promo/README.md) |
|
|
250
|
+
|
|
251
|
+
## Why reshoot exists
|
|
252
|
+
|
|
253
|
+
I made the launch video for [photosearch](https://github.com/mumit/photosearch)
|
|
254
|
+
this way, and pulled the tools and what I learned into reshoot. A demo takes
|
|
255
|
+
work to make. Keeping its story beside the app makes that work useful again
|
|
256
|
+
when the product changes.
|
|
257
|
+
|
|
258
|
+
The [original notes recording](https://github.com/mumit/reshoot/blob/main/docs/demo/notes.mp4) and its
|
|
259
|
+
[source files](https://github.com/mumit/reshoot/blob/main/examples/notes/) remain available.
|
|
260
|
+
|
|
261
|
+
## Contributing
|
|
262
|
+
|
|
263
|
+
New pitfalls, skills and fixes are welcome. See [CONTRIBUTING.md](https://github.com/mumit/reshoot/blob/main/CONTRIBUTING.md)
|
|
264
|
+
for contribution instructions and [ROADMAP.md](https://github.com/mumit/reshoot/blob/main/ROADMAP.md) for planned work.
|
|
265
|
+
|
|
266
|
+
## License
|
|
267
|
+
|
|
268
|
+
MIT. See [LICENSE](https://github.com/mumit/reshoot/blob/main/LICENSE).
|
reshoot-0.3.0/README.md
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
# reshoot
|
|
2
|
+
|
|
3
|
+
**Give your agent a task. Get a demo you can run again.**
|
|
4
|
+
|
|
5
|
+
An agent-first toolkit for software demos: open source skills and recording
|
|
6
|
+
tools for Codex and Claude Code. Turn a task in your app into a captioned MP4,
|
|
7
|
+
a README GIF, and source files that keep the demo repeatable as the app changes.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
The UI changed. The same story still saves and finds the same note.
|
|
12
|
+
[Watch the 21-second demo](docs/demo/reshoot.mp4) ·
|
|
13
|
+
[Make a demo of your app](guide/agent-quickstart.md) ·
|
|
14
|
+
[Explore the skills](skills/README.md) · [Use the CLI](guide/step-by-step.md)
|
|
15
|
+
|
|
16
|
+
## Make a demo of your app
|
|
17
|
+
|
|
18
|
+
Open **Codex or Claude Code** in your app's repository, or an empty demo folder
|
|
19
|
+
if you only have a running app. Paste this prompt. Change `Target:` to your
|
|
20
|
+
web app's URL or the name of a macOS app and its demo window when needed.
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
Make a short demo with reshoot.
|
|
24
|
+
Read https://github.com/mumit/reshoot/blob/main/guide/agent-quickstart.md
|
|
25
|
+
and follow its setup and creation workflow.
|
|
26
|
+
|
|
27
|
+
Target: the app in this repository.
|
|
28
|
+
Choose one useful task with a clear visible result. Use synthetic demo data.
|
|
29
|
+
Produce a short captioned MP4 and a README GIF. Keep the recording source in
|
|
30
|
+
demo/ so it can be updated later.
|
|
31
|
+
|
|
32
|
+
Inspect a preview, then record a fresh final and open both exports for review.
|
|
33
|
+
Ask only for permissions or missing details needed to proceed.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Add a task if you have one: “Show creating a project and finding it by search.”
|
|
37
|
+
Otherwise, let the agent inspect the app and propose a useful task. Source code
|
|
38
|
+
is optional. Browser recording runs on macOS or Linux; native window capture
|
|
39
|
+
requires macOS and app-specific automation or your interaction during capture.
|
|
40
|
+
The agent needs a local session with a shell and access to the target.
|
|
41
|
+
|
|
42
|
+
The agent handles setup, reads the app's controls, writes the story, records a
|
|
43
|
+
preview and prepares the final exports. You watch the result, request changes
|
|
44
|
+
and decide whether to share it. Initial setup may need installation permissions
|
|
45
|
+
or an isolated demo login.
|
|
46
|
+
|
|
47
|
+
**You get a video, a GIF, and their source.** Keep the `demo/` recipe beside the
|
|
48
|
+
app's code or in its own folder. Browser projects retain each attempt in a
|
|
49
|
+
versioned run folder. Native recipes retain standalone takes and edit scripts.
|
|
50
|
+
|
|
51
|
+
Already installed the skills? Start with `$reshoot-demo` in Codex or
|
|
52
|
+
`/reshoot-demo` in Claude Code, followed by the task.
|
|
53
|
+
|
|
54
|
+
## Three skills, one workflow
|
|
55
|
+
|
|
56
|
+
A skill gives the coding agent a reusable workflow: how to choose the task,
|
|
57
|
+
record it, check the result and present it for review. Reshoot's CLI performs
|
|
58
|
+
the recording and editing. The agent uses available source code or the running
|
|
59
|
+
app's controls to adapt that workflow to the product.
|
|
60
|
+
|
|
61
|
+
| When | Skill | What to ask for |
|
|
62
|
+
|---|---|---|
|
|
63
|
+
| Make the first demo | [reshoot-demo](skills/reshoot-demo/SKILL.md) | “Show a customer saving a search and seeing its results.” |
|
|
64
|
+
| The app changed | [reshoot-refresh](skills/reshoot-refresh/SKILL.md) | “Record that task again with the updated UI. Keep the old take for comparison.” |
|
|
65
|
+
| Check before sharing | [reshoot-review](skills/reshoot-review/SKILL.md) | “Inspect the final video and GIF, compare the previous run, and report anything that needs attention.” |
|
|
66
|
+
|
|
67
|
+
For a refresh or review, include the demo's configuration and the exact previous
|
|
68
|
+
run, or the native capture recipe and previous media. See the
|
|
69
|
+
[copyable follow-up prompts](guide/agent-quickstart.md#update-the-demo-when-the-app-changes).
|
|
70
|
+
|
|
71
|
+
Browser projects keep actions, captions and expected results in editable files.
|
|
72
|
+
Result checks can verify that a saved item appears or that a search returns one
|
|
73
|
+
match. When a control moves or a label changes, the agent can repair the story
|
|
74
|
+
and record a new candidate. Watch and approve the new exports before sharing.
|
|
75
|
+
|
|
76
|
+
## Install the skills
|
|
77
|
+
|
|
78
|
+
Use the first-demo prompt above to let the agent handle setup, or install the
|
|
79
|
+
tools and skills yourself. The skills need the reshoot CLI, Python 3.11+, Git,
|
|
80
|
+
ffmpeg and, for browser recording, Chrome or Chromium. Linux text scanning also
|
|
81
|
+
needs Tesseract. Follow the [platform setup](guide/install.md), then choose one
|
|
82
|
+
installation route.
|
|
83
|
+
|
|
84
|
+
### Codex
|
|
85
|
+
|
|
86
|
+
Run this in the app repository or demo work folder:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
reshoot skills codex --directory .
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
This installs `reshoot-demo`, `reshoot-refresh` and `reshoot-review` into
|
|
93
|
+
`.agents/skills/`. In Codex, invoke a skill and describe the task:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
$reshoot-demo
|
|
97
|
+
Create a short demo of saving a task and finding it by search.
|
|
98
|
+
Produce an MP4 and a README GIF using synthetic data.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Claude Code
|
|
102
|
+
|
|
103
|
+
Run this in the app repository or demo work folder:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
reshoot skills claude --directory .
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
This installs the same three skills into `.claude/skills/`. In Claude Code:
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
/reshoot-demo
|
|
113
|
+
Create a short demo of saving a task and finding it by search.
|
|
114
|
+
Produce an MP4 and a README GIF using synthetic data.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Claude Code plugin
|
|
118
|
+
|
|
119
|
+
To install all ten skills through Claude Code's plugin system, run these
|
|
120
|
+
commands inside Claude Code and follow its installation prompts:
|
|
121
|
+
|
|
122
|
+
```text
|
|
123
|
+
/plugin marketplace add mumit/reshoot
|
|
124
|
+
/plugin install reshoot@reshoot
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Use `/reshoot:reshoot-demo`, `/reshoot:reshoot-refresh` or
|
|
128
|
+
`/reshoot:reshoot-review`, followed by the task. The plugin includes seven
|
|
129
|
+
supporting skills for planning, individual recordings, editing, privacy checks
|
|
130
|
+
and CI. Install the CLI and recording dependencies as well.
|
|
131
|
+
|
|
132
|
+
The [agent quickstart](guide/agent-quickstart.md#install-the-skills-yourself)
|
|
133
|
+
covers skill discovery and the differences between these routes. The CLI
|
|
134
|
+
installer preserves existing skill folders; compare updates before replacing
|
|
135
|
+
local changes.
|
|
136
|
+
|
|
137
|
+
## Keep the demo with the code
|
|
138
|
+
|
|
139
|
+
Reshoot records real interactions with the app. The demo project describes
|
|
140
|
+
what to do, what should happen, how long the result should remain visible and
|
|
141
|
+
which formats to export.
|
|
142
|
+
|
|
143
|
+
| Keep in a browser project | Purpose |
|
|
144
|
+
|---|---|
|
|
145
|
+
| `BRIEF.md` | Audience, task, visible result and destination |
|
|
146
|
+
| `storyboard.toml` | Actions, captions and expected results |
|
|
147
|
+
| `edit.toml` | Cuts, result holds and output formats |
|
|
148
|
+
| `reshoot.toml` | App startup, recording and check settings |
|
|
149
|
+
|
|
150
|
+
Each versioned browser or terminal candidate retains its report, video, GIF and
|
|
151
|
+
review evidence under `takes/runs/ID/`. Keep the recording source in version control and generated
|
|
152
|
+
takes outside it. Select an explicit baseline when comparing updates.
|
|
153
|
+
|
|
154
|
+
Native demos keep their capture instructions and edit script separately; see
|
|
155
|
+
the [macOS window workflow](guide/macos-window.md).
|
|
156
|
+
Use the [CI workflow](guide/ci.md) to record browser and terminal candidates after
|
|
157
|
+
app changes. Review the outputs before updating published demo media.
|
|
158
|
+
|
|
159
|
+
## Choose the recording for the task
|
|
160
|
+
|
|
161
|
+
| Show | Tools |
|
|
162
|
+
|---|---|
|
|
163
|
+
| A web app | Headless Chrome, native browser actions, cursor, typing and captions |
|
|
164
|
+
| A CLI or an agent at work | [VHS](https://github.com/charmbracelet/vhs) terminal recordings |
|
|
165
|
+
| A native app on macOS | One window captured by its ID; app-specific automation or manual interaction |
|
|
166
|
+
| The result in different formats | MP4 and GIF exports, custom edits and intentional portrait crops |
|
|
167
|
+
| A narrated explanation | Optional voiceover, music and subtitles |
|
|
168
|
+
|
|
169
|
+
Use synthetic demo data. Capture a browser page, a terminal or one app window.
|
|
170
|
+
Watch the finished exports and inspect the scan sheets. Automatic checks flag
|
|
171
|
+
potential problems; you make the final review decisions. Reshoot keeps
|
|
172
|
+
publication manual.
|
|
173
|
+
|
|
174
|
+
Browser workflows are tested on macOS and Linux. Native window capture and
|
|
175
|
+
Vision face/person detection require macOS; Linux uses Tesseract for text.
|
|
176
|
+
See [platforms and tested limits](guide/README.md#platforms).
|
|
177
|
+
|
|
178
|
+
## Use the CLI directly
|
|
179
|
+
|
|
180
|
+
Start with the bundled notes app to try the tools without a coding agent:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
reshoot init demo
|
|
184
|
+
reshoot doctor --config demo/reshoot.toml
|
|
185
|
+
reshoot preview demo/reshoot.toml
|
|
186
|
+
reshoot run demo/reshoot.toml
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
The [CLI tutorial](guide/step-by-step.md) covers the complete first recording,
|
|
190
|
+
an app change, a deliberate failure, repair, comparison, review and export.
|
|
191
|
+
For your own app, `reshoot init demo --url http://localhost:3000/` creates a
|
|
192
|
+
project draft. Replace its placeholder story with actions and result checks
|
|
193
|
+
using the [own-app walkthrough](guide/your-app.md).
|
|
194
|
+
|
|
195
|
+
## Grow the demo at your own pace
|
|
196
|
+
|
|
197
|
+
| Stage | Start here |
|
|
198
|
+
|---|---|
|
|
199
|
+
| 1. Get a first recording | [One agent prompt](guide/agent-quickstart.md), or the [CLI notes tutorial](guide/step-by-step.md) |
|
|
200
|
+
| 2. See what else is possible | [Explore features and examples](guide/features.md) |
|
|
201
|
+
| 3. Change something small | [Edit a caption, timing and GIF size](guide/customize.md) |
|
|
202
|
+
| 4. Make a fuller demo or tutorial | [Build the story and edit](guide/make-demo.md) |
|
|
203
|
+
| 5. Keep it current and share it | [Updates and publishing](guide/publish.md), then [GitHub Actions](guide/ci.md) |
|
|
204
|
+
|
|
205
|
+
Start from [source code](guide/your-app.md), a [running web URL](guide/running-web-app.md)
|
|
206
|
+
or a [macOS app window](guide/macos-window.md). Skip directly to the stage you need.
|
|
207
|
+
|
|
208
|
+
## Find the right guide
|
|
209
|
+
|
|
210
|
+
| Task | Start here |
|
|
211
|
+
|---|---|
|
|
212
|
+
| Get a first demo with an agent | [Agent quickstart](guide/agent-quickstart.md) |
|
|
213
|
+
| Browse the skill package | [Skill catalog](skills/README.md) |
|
|
214
|
+
| Install or upgrade the tools | [Installation](guide/install.md) |
|
|
215
|
+
| Learn the CLI workflow from scratch | [Notes tutorial](guide/step-by-step.md) |
|
|
216
|
+
| Write a story for an existing app | [Own-app walkthrough](guide/your-app.md) |
|
|
217
|
+
| Look up actions, captions, edits and exports | [Project reference](guide/projects.md) |
|
|
218
|
+
| Find a command or fix a failed step | [Command map](guide/commands.md) · [Troubleshooting](guide/troubleshooting.md) |
|
|
219
|
+
| Record a terminal or native window | [Manual workflow](guide/manual.md) |
|
|
220
|
+
| Reproduce the README demo | [Before-and-after recipe](examples/promo/README.md) |
|
|
221
|
+
|
|
222
|
+
## Why reshoot exists
|
|
223
|
+
|
|
224
|
+
I made the launch video for [photosearch](https://github.com/mumit/photosearch)
|
|
225
|
+
this way, and pulled the tools and what I learned into reshoot. A demo takes
|
|
226
|
+
work to make. Keeping its story beside the app makes that work useful again
|
|
227
|
+
when the product changes.
|
|
228
|
+
|
|
229
|
+
The [original notes recording](docs/demo/notes.mp4) and its
|
|
230
|
+
[source files](examples/notes/) remain available.
|
|
231
|
+
|
|
232
|
+
## Contributing
|
|
233
|
+
|
|
234
|
+
New pitfalls, skills and fixes are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
235
|
+
for contribution instructions and [ROADMAP.md](ROADMAP.md) for planned work.
|
|
236
|
+
|
|
237
|
+
## License
|
|
238
|
+
|
|
239
|
+
MIT. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>About Notes</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root { color-scheme: light dark; --bg: #f6f4f0; --fg: #1d1b18; --muted: #77716a; --accent: #c8641e; }
|
|
9
|
+
@media (prefers-color-scheme: dark) { :root { --bg: #0e0d0c; --fg: #f1ede7; --muted: #a39b91; --accent: #f5b43c; } }
|
|
10
|
+
body { margin: 0; background: var(--bg); color: var(--fg); font: 17px/1.45 -apple-system, system-ui, sans-serif; }
|
|
11
|
+
main { max-width: 760px; margin: 0 auto; padding: 48px 16px; }
|
|
12
|
+
h1 { margin: 0 0 16px; font-size: 34px; letter-spacing: -.02em; }
|
|
13
|
+
a { color: var(--accent); }
|
|
14
|
+
</style>
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<main>
|
|
18
|
+
<h1>About Notes</h1>
|
|
19
|
+
<p>A made-up app for trying reshoot. This second page is here so a storyboard can follow a link to a new page.</p>
|
|
20
|
+
<p><a id="back" href="index.html">Back to notes</a></p>
|
|
21
|
+
</main>
|
|
22
|
+
</body>
|
|
23
|
+
</html>
|