Content
# Hermes Video Cannon
Clean-room, local-first video understanding and editing tools for Hermes.
MVP+ features:
- project create/list/open/delete
- ffprobe metadata
- transcript import/search
- optional faster-whisper transcription
- optional sentence-transformers semantic search with SQLite embedding cache
- highlight heuristic
- EDL creation
- multi-segment FFmpeg rendering via concat
- caption burn-in from transcript segments
- MCP stdio server for Hermes
- generated Hermes-native tool module
## Install
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Optional heavy/local ML features:
pip install -e ".[asr]" # faster-whisper transcription
pip install -e ".[semantic]" # sentence-transformers semantic search
```
## Hermes MCP config
The MCP path remains supported and is the least invasive install mode.
```yaml
mcp_servers:
video_cannon:
command: "bash"
args:
- "-lc"
- "cd /tmp/reverse/hermes-video-cannon && source .venv/bin/activate && hermes-video-cannon-mcp"
timeout: 600
connect_timeout: 60
sampling:
enabled: false
```
## Hermes-native toolset adapter
`src/hermes_video_cannon/hermes_native.py` exposes helpers for registering the
same Video Cannon tools directly with Hermes Agent's native `tools.registry`.
It reuses the MCP tool declarations and dispatcher so the native and MCP paths
stay in sync.
### Install into Hermes core source
If your Hermes Agent checkout is at `/opt/hermes`:
```bash
cd /tmp/reverse/hermes-video-cannon
source .venv/bin/activate
python3 -m hermes_video_cannon.hermes_native /opt/hermes/tools/video_cannon_tool.py
```
The generated module embeds the current package `src/` path as a default import
fallback and also honors `HERMES_VIDEO_CANNON_SRC=/path/to/hermes-video-cannon/src`.
For production, prefer installing this package into the same Python environment
Hermes uses; the embedded path fallback is for local source checkouts and agent
workspaces.
The generator writes an explicit Hermes core module containing top-level
`registry.register(...)` calls because current Hermes core discovery scans for
that AST shape before importing built-in tool modules. If your Hermes checkout
uses a different path, replace `/opt/hermes/tools/video_cannon_tool.py` with
`/path/to/hermes/tools/video_cannon_tool.py`.
After restarting Hermes, enable the `video_cannon` toolset (alias: `video`) the
same way you enable other native Hermes toolsets.