venice-video-harness 2.11.0 → 2.11.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.11.2 — 2026-08-05
4
+
5
+ ### Changed
6
+
7
+ - **README: added `HERMES-AGENT-SETUP.md` and trimmed the ACP explainer.** A
8
+ paste-ready re-setup prompt for Hermes users on an old global install (which
9
+ shipped only the compiled CLI — no `AGENTS.md`, skills, or MCP) is now linked
10
+ from the Hermes/OpenClaw quick start. Removed the "ACP does not run the
11
+ harness" section — it was conceptual myth-busting, not setup or operating
12
+ guidance — and reworded the "separate runtime" section to stand on its own.
13
+ The operational runtime/long-render guidance is unchanged. Docs only.
14
+
15
+ ## 2.11.1 — 2026-08-05
16
+
17
+ ### Changed
18
+
19
+ - **README agent instructions rewritten around the published packages.** With
20
+ both `venice-video-harness` and `venice-video-mcp` on npm, the Hermes/OpenClaw
21
+ path is now a plain global install rather than a two-repo clone with
22
+ hand-written absolute paths. Added a "Quick start for Hermes and OpenClaw"
23
+ block, rewrote "Registering the MCP server" to lead with the published
24
+ `venice-video-mcp` bin (and an `npx -y venice-video-mcp` variant) while keeping
25
+ the clone + `HARNESS_BIN`/`HARNESS_PATH` path as a documented dev alternative,
26
+ and switched the companion-skills step to the on-PATH
27
+ `venice-video-mcp-install-skills` bin. Clarified that with both packages
28
+ installed globally you set none of the harness path variables — the MCP finds
29
+ `venice-video` on `PATH`. Softened the stale "npm latest trails this repo"
30
+ version-drift note. Docs only; no code change.
31
+
3
32
  ## 2.11.0 — 2026-08-05
4
33
 
5
34
  ### Added
@@ -0,0 +1,56 @@
1
+ # Setting up the Venice video harness on Hermes (existing / old install)
2
+
3
+ For a Hermes user who already has an **old** `venice-video` (e.g. a stale global
4
+ `2.6.0`) and wants to re-set-up and use it properly with the published packages.
5
+
6
+ It upgrades the stale global, adds the MCP server (which almost certainly was
7
+ never installed, since it wasn't on npm before), wires the companion skills, and
8
+ makes the agent read the operating rules before it touches the gated pipeline.
9
+
10
+ ## The prompt to paste into Hermes
11
+
12
+ ```
13
+ Set up the Venice video harness fresh and confirm it works, in this order:
14
+
15
+ 1. Install both packages globally at their latest versions:
16
+ npm install -g venice-video-harness@latest venice-video-mcp@latest
17
+ Then confirm the upgrade actually landed: `venice-video --version` must
18
+ report 2.11.x (an old global like 2.6.0 means the PATH copy didn't update —
19
+ fix PATH or the npm prefix before continuing).
20
+
21
+ 2. Check the environment: `venice-video doctor` (it verifies the Venice API
22
+ key, ffmpeg, and ffprobe). If it complains about the key, run
23
+ `venice-video setup`. Set a workspace you own:
24
+ export VENICE_VIDEO_WORKSPACE=~/VeniceVideos
25
+
26
+ 3. Register the MCP server by its published bin (no clone, no absolute paths):
27
+ hermes mcp add venice-video --command venice-video-mcp
28
+ Make sure the server's env has VENICE_API_KEY and HARNESS_WORKSPACE set,
29
+ then: hermes mcp test venice-video (must handshake and list 7 tools).
30
+
31
+ 4. Install the companion skills into Hermes:
32
+ venice-video-mcp-install-skills --target hermes
33
+
34
+ 5. Before running any workflow, read the operating rules — the pipeline is
35
+ gated and some stages spend money at queue time:
36
+ venice-video agent-guide
37
+ venice-video pipeline --json
38
+ and read AGENTS.md at "$(npm root -g)/venice-video-harness/AGENTS.md".
39
+
40
+ Report the version, doctor result, the MCP tool list, and confirm the skills
41
+ are installed.
42
+ ```
43
+
44
+ ## Two things to know (the failure modes that make it look broken)
45
+
46
+ - **The only values you must supply are real:** your Venice API key, and a
47
+ workspace path you own for `HARNESS_WORKSPACE`. Everything else is defaulted.
48
+ - **If `venice-video --version` still shows the old number after step 1**, npm
49
+ installed into a different prefix than the `venice-video` on your `PATH`
50
+ (common with node version managers). The harness README's "Version-drift
51
+ check" and `venice-video update` both handle this; the quickest tell is
52
+ comparing `command -v venice-video` against `npm prefix -g`.
53
+
54
+ After this, you drive it in plain language through Hermes (the MCP tools), or the
55
+ agent runs the CLI directly — either way it now has the embedded `agent-guide`,
56
+ the shipped `AGENTS.md`, and the Hermes skills, instead of guessing from `--help`.
package/README.md CHANGED
@@ -41,8 +41,55 @@ knowledge reaches you, which is the single largest predictor of output quality.
41
41
  | Surface | How it runs | What you get | Use when |
42
42
  |---|---|---|---|
43
43
  | **Repo-resident agent** | Agent's cwd is a clone of this repo | Everything: `AGENTS.md` (47 rules, 20 anti-patterns), `.claude/commands/`, `.claude/agents/`, `.claude/skills/`, `.cursor/rules/` | Authoring and iteration — the best results by a wide margin |
44
- | **MCP** | `venice-video-mcp` shells out to this CLI | 7 action-discriminated tools, structured JSON responses, progress notifications, plus 4 companion skills carrying the pipeline order | Any agent that supports MCP but is not sitting in this repo |
45
- | **Bare global CLI** | `npm install -g`, shell tool, `--help` | The compiled CLI, this README, and the self-describing commands below (`agent-guide`, `pipeline`) | Last resort, but no longer knowledge-free — start with `venice-video agent-guide` |
44
+ | **MCP** | `venice-video-mcp` (on npm) shells out to this CLI | 7 action-discriminated tools, structured JSON responses, progress notifications, plus 4 companion skills carrying the pipeline order | Any agent that supports MCP — Hermes, OpenClaw, Cursor, Claude — with no clone required |
45
+ | **Bare global CLI** | `npm install -g`, shell tool, `--help` | The compiled CLI, this README, `AGENTS.md`, `.claude/skills/`, and the self-describing commands below (`agent-guide`, `pipeline`) | When your runner has a shell but no MCP — start with `venice-video agent-guide` |
46
+
47
+ ### Quick start for Hermes and OpenClaw (no clone, no absolute paths)
48
+
49
+ Both packages are on npm, so an agent whose entire environment is a global
50
+ install and a chat box has a complete, knowledge-bearing setup. Nothing here
51
+ requires cloning a repo or hand-writing a path.
52
+
53
+ > **Tried the harness or MCP before and got poor results?** Earlier global
54
+ > installs shipped only the compiled CLI — no `AGENTS.md`, no skills, no MCP on
55
+ > npm — so the agent was guessing from `--help`. That is fixed now.
56
+ > [`HERMES-AGENT-SETUP.md`](HERMES-AGENT-SETUP.md) is a paste-ready prompt that
57
+ > upgrades a stale global, registers the MCP, installs the Hermes skills, and
58
+ > points the agent at the operating rules — run it once and re-set-up cleanly.
59
+
60
+ ```bash
61
+ # 1. Install both globally. The harness ships AGENTS.md + .claude/skills/;
62
+ # the MCP ships its 7 tools and 4 companion skills.
63
+ npm install -g venice-video-harness venice-video-mcp --foreground-scripts
64
+
65
+ # 2. Point the harness at a workspace and confirm the environment.
66
+ export VENICE_API_KEY=vn_...
67
+ export VENICE_VIDEO_WORKSPACE=~/VeniceVideos
68
+ venice-video doctor # checks API key, ffmpeg, ffprobe
69
+ venice-video agent-guide # the core operating rules, inside the binary
70
+
71
+ # 3a. Hermes — register the MCP by its published bin (it is on PATH now):
72
+ hermes mcp add venice-video --command venice-video-mcp
73
+ hermes mcp test venice-video # confirm the handshake
74
+ venice-video-mcp-install-skills --target hermes # skills → ~/.hermes/skills/venice/
75
+
76
+ # 3b. OpenClaw / any MCP runner — same idea, using whatever the runner's
77
+ # "add MCP server" command is, with command `venice-video-mcp` and the
78
+ # env below. Install its skills into the runner's skills dir:
79
+ venice-video-mcp-install-skills --dir <that runner's skills dir>
80
+ ```
81
+
82
+ When both are installed globally, the MCP finds `venice-video` on your `PATH`
83
+ automatically — you do **not** need `HARNESS_BIN` or `HARNESS_PATH`. The only
84
+ required env for the MCP process is `VENICE_API_KEY`, plus `VENICE_VIDEO_WORKSPACE`
85
+ (or `HARNESS_WORKSPACE`) if you want projects somewhere other than the cwd. See
86
+ [Registering the MCP server](#registering-the-mcp-server) for the details and the
87
+ one case where you *do* set a path (pointing at a local build).
88
+
89
+ OpenClaw's exact MCP-registration and skills-directory conventions are not yet
90
+ verified here; the shapes above are what to adapt. `venice-video-mcp-install-skills
91
+ --target openclaw` currently errors on purpose rather than guessing a path — pass
92
+ `--dir` once you know it.
46
93
 
47
94
  **The bare-CLI trap, and how to check whether you are in it.** Through version
48
95
  **2.9.0** the npm package published only `dist`, `README.md`, `CHANGELOG.md`,
@@ -92,31 +139,11 @@ same core rules are installable as a skill for runners that pull skills from
92
139
  GitHub: `hermes skills install jordanurbs/venice-video-harness/venice-agent-guide`
93
140
  (and any of the other `.claude/skills/` by name).
94
141
 
95
- ### ACP does not run the harness, and it does not provision a runtime
96
-
97
- ACP is the **Agent Client Protocol**, and it is worth being precise about the
98
- direction it points, because two different readings lead to two different setups.
99
-
100
- ACP connects an **editor (the client) to an agent**. The editor spawns the agent
101
- as a subprocess and speaks JSON-RPC to it over stdio, and the **editor supplies
102
- the working directory** — in Hermes's adapter, `session/new` receives `cwd` from
103
- the client and the agent adopts it. So ACP does not start a runtime, does not
104
- provision a sandbox, and does not move work off the workspace; it standardizes an
105
- editor driving an agent against a workspace the editor already has open. It is
106
- also stdio-only and local-trust by design, so there is no remote endpoint in the
107
- picture.
142
+ ### Running the harness in a separate runtime (containers, remote backends)
108
143
 
109
- That means the harness has no position in an ACP conversation. The harness is a
110
- **tool the agent calls**; ACP describes who calls the agent. The tool-side
111
- protocol is MCP, which already exists as a separate package. The two stack rather
112
- than compete: an editor drives your agent over ACP, and that agent drives the
113
- harness over MCP or a shell.
114
-
115
- ### Running the harness in a separate runtime (this is the real question)
116
-
117
- Starting a fresh runtime to run long workflows off the main workspace is a real
118
- and useful capability — it is just not ACP. In Hermes it is the **terminal
119
- backend**, configured independently of any protocol:
144
+ Running long renders off the main machine is a real and useful capability. In
145
+ Hermes it is the **terminal backend**, configured independently of any agent
146
+ protocol:
120
147
 
121
148
  ```yaml
122
149
  # ~/.hermes/config.yaml
@@ -170,35 +197,53 @@ Because Venice bills at queue time, a killed render is **already paid for**. So:
170
197
 
171
198
  ### Registering the MCP server
172
199
 
200
+ **Published package (recommended — no clone, no absolute paths).** The
201
+ `venice-video-mcp` bin is on your `PATH` after a global install, and it finds the
202
+ `venice-video` harness the same way:
203
+
173
204
  ```bash
205
+ npm install -g venice-video-harness venice-video-mcp
206
+
174
207
  # Hermes Agent
175
- hermes mcp add venice-video --command node \
176
- --args /ABS/PATH/venice-video-mcp/bin/venice-video-mcp.js
208
+ hermes mcp add venice-video --command venice-video-mcp
177
209
  hermes mcp test venice-video # confirm the handshake before relying on it
178
210
 
179
- # Cursor / Claude Desktop: see venice-video-mcp/examples/
211
+ # Cursor / Claude Desktop / any runner that reads a JSON config:
212
+ # "venice-video": { "command": "venice-video-mcp", "env": { "VENICE_API_KEY": "vn_..." } }
213
+ # or, with no global install at all, run it on demand:
214
+ # "venice-video": { "command": "npx", "args": ["-y", "venice-video-mcp"], "env": { … } }
180
215
  ```
181
216
 
182
- This path does not depend on a published release: pointed at a built clone, it
183
- runs whatever you have checked out, so it works ahead of npm.
217
+ **Local build (development / running ahead of npm).** Point the server at a built
218
+ clone instead. This runs whatever you have checked out:
219
+
220
+ ```bash
221
+ hermes mcp add venice-video --command node \
222
+ --args /ABS/PATH/venice-video-mcp/bin/venice-video-mcp.js
223
+ # plus HARNESS_BIN or HARNESS_PATH in the env, see below
224
+ ```
184
225
 
185
226
  Environment for the server process:
186
227
 
187
228
  | Variable | Purpose |
188
229
  |---|---|
189
- | `VENICE_API_KEY` | Required. Forwarded to the harness |
190
- | `HARNESS_BIN` | Absolute path to `dist/mini-drama/cli.js` in a built clone. **Set this** |
191
- | `HARNESS_PATH` | Absolute path to a built clone. Fallback only — see below |
192
- | `HARNESS_WORKSPACE` | Absolute path where projects are created. Must already exist |
193
-
194
- **Resolution order (fixed in `venice-video-mcp` 0.4.0).** The server now resolves
195
- the harness as `HARNESS_BIN`, then `HARNESS_PATH/dist/mini-drama/cli.js`, then a
196
- `venice-video` on `PATH`. An explicit `HARNESS_PATH` now outranks an ambient
197
- global install, because setting it is a statement of intent — the old order let a
198
- stale global (npm `latest` trails this repo) silently win over a clone you pointed
199
- at deliberately. The server also logs the resolved binary once to stderr
200
- (`[venice-video-mcp] harness: …`), so the choice is never silent. `HARNESS_BIN` is
201
- still the most explicit and is recommended when you have a specific build in mind.
230
+ | `VENICE_API_KEY` | **Required.** Forwarded to the harness |
231
+ | `HARNESS_WORKSPACE` | Where projects are created. Must already exist. Falls back to the cwd, which is rarely right for a GUI-launched runner — set it |
232
+ | `HARNESS_BIN` | Optional. Absolute path to `dist/mini-drama/cli.js` in a built clone. Set only to pin a specific local build |
233
+ | `HARNESS_PATH` | Optional. Absolute path to a built clone. Fallback for a local build — see below |
234
+
235
+ With both packages installed globally you set **none** of the three harness paths:
236
+ the server finds `venice-video` on `PATH`. You only reach for `HARNESS_BIN` /
237
+ `HARNESS_PATH` when you deliberately want a local checkout instead of the published
238
+ CLI.
239
+
240
+ **Resolution order (fixed in `venice-video-mcp` 0.4.0).** The server resolves the
241
+ harness as `HARNESS_BIN`, then `HARNESS_PATH/dist/mini-drama/cli.js`, then a
242
+ `venice-video` on `PATH`. An explicit `HARNESS_PATH` outranks an ambient global
243
+ install, because setting it is a statement of intent — the old order let a stale
244
+ global silently win over a clone you pointed at deliberately. The server also logs
245
+ the resolved binary once to stderr (`[venice-video-mcp] harness: …`) on the first
246
+ tool call, so the choice is never silent.
202
247
 
203
248
  Every MCP response includes the exact command it ran, so you can confirm which
204
249
  binary answered:
@@ -211,12 +256,13 @@ If that shows a path under a global npm prefix when you meant to use a clone,
211
256
  `HARNESS_BIN` is missing.
212
257
 
213
258
  Then install its companion skills, which carry the pipeline order the tool
214
- descriptions deliberately leave out:
259
+ descriptions deliberately leave out. From a global install the command is on
260
+ `PATH` (use `node /ABS/PATH/venice-video-mcp/bin/install-skills.js …` for a clone):
215
261
 
216
262
  ```bash
217
- node /ABS/PATH/venice-video-mcp/bin/install-skills.js --global # Claude/Cursor: ~/.claude/skills/
218
- node /ABS/PATH/venice-video-mcp/bin/install-skills.js --target hermes # Hermes: ~/.hermes/skills/venice/
219
- node /ABS/PATH/venice-video-mcp/bin/install-skills.js --dir <path> # any other runner's skills dir
263
+ venice-video-mcp-install-skills --global # Claude/Cursor: ~/.claude/skills/
264
+ venice-video-mcp-install-skills --target hermes # Hermes: ~/.hermes/skills/venice/
265
+ venice-video-mcp-install-skills --dir <path> # any other runner's skills dir
220
266
  ```
221
267
 
222
268
  The four skills are `venice-mcp-pipeline` (request-to-tool-call mapping and the
@@ -236,9 +282,9 @@ venice-video doctor # API key, ffmpeg, ffprobe
236
282
  venice-video status -p <dir> # pipeline stage + the next command to run
237
283
  ```
238
284
 
239
- **Version-drift check is not optional.** The published npm `latest` trails this
240
- repo. Documentation for an unreleased version describes flags the installed
241
- binary rejects:
285
+ **Version-drift check is not optional.** Releases can lag commits, so the
286
+ published npm `latest` may trail this repo. Documentation for a version newer
287
+ than your installed binary describes flags it rejects:
242
288
 
243
289
  ```bash
244
290
  $ venice-video new --intelligence kimi-k3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "venice-video-harness",
3
- "version": "2.11.0",
3
+ "version": "2.11.2",
4
4
  "description": "Standalone consistency-first video production CLI powered by the Venice API",
5
5
  "homepage": "https://github.com/jordanurbs/venice-video-harness",
6
6
  "repository": {
@@ -71,6 +71,7 @@
71
71
  "CHANGELOG.md",
72
72
  "LICENSE",
73
73
  "AGENTS.md",
74
+ "HERMES-AGENT-SETUP.md",
74
75
  ".claude/commands",
75
76
  ".claude/agents",
76
77
  ".claude/skills",