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 +29 -0
- package/HERMES-AGENT-SETUP.md +56 -0
- package/README.md +97 -51
- package/package.json +2 -1
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
|
|
45
|
-
| **Bare global CLI** | `npm install -g`, shell tool, `--help` | The compiled CLI, this README, and the self-describing commands below (`agent-guide`, `pipeline`) |
|
|
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
|
-
###
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
protocol
|
|
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
|
|
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
|
|
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
|
-
|
|
183
|
-
runs whatever you have checked out
|
|
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
|
|
190
|
-
| `
|
|
191
|
-
| `
|
|
192
|
-
| `
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
the
|
|
196
|
-
`
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
218
|
-
|
|
219
|
-
|
|
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.**
|
|
240
|
-
repo. Documentation for
|
|
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.
|
|
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",
|