Hermes Parallax (parallax)
Separate facts from framing, catch context-triggered code vulnerabilities, and forge rubric-filtered DPO/SFT datasets natively inside Hermes Agent.
Every language model embeds institutional, cultural, and post-training priors in its weights. When I use an agent for deep research or security-critical engineering, I do not want another model lectureβI want an instrument that shows me what was omitted, which exact phrases are canned spin, and whether naming an organization in my prompt silently degraded the security of the generated code.
I built Hermes Parallax as a zero-dependency, host-isolated (plugins.isolation: host) Hermes plugin that turns epistemic divergence into measurable evidence and clean post-training data.
π¬ Narrated Showcase & 7-Model Empirical Benchmark (1080p)
βΆοΈ Watch 1080p HD Narrated Showcase (
02:05, with audio) Β· Closed Captions (.srt) β Evaluated live across168completions and111Parallax audits spanning7local models ($0.00multi-GPU):Nous Arete-27BsweptStock Qwen3-Coder-30B6β0(3.94vs.2.61judged cross-family byGoogle Gemma-4-E4B) and was the sole model scoring100/100across all18/18contextual andNeutralOrg-blind AST code security runs (83/85judge spin quotes verified character-for-character;2markdown-stripped quote hallucinations blocked in real time;16Gold TRL DPO preference pairs forged with0poisoned leaks).
Why I Built Parallax
Inspired by the empirical findings around post-training value shifts and context-triggered code security regressions (such as models producing weaker SQL/crypto controls or stubbed handlers when geopolitical, sovereign, defense, or NGO identifiers appear in prompt prose):
- Fact-vs-Frame Lens (
parallax_frame_audit): Runs a prompt across contrasting Hermes auxiliary slots (parallax_lens_aandparallax_lens_b, or works zero-config on your active model with a primary-source counter-lens) and decomposes the answers into Agreed Facts, Silent Omissions, and Verbatim Verified Spin across international and domestic poles symmetrically (state_aligned,western_policy,us_progressive_institutional,us_populist_conservative,corporate_pr, andsafety_boilerplate). - Hard Verbatim Anti-Hallucination Gate: Any spin quote claimed by the structured judge (
parallax_judge) is checked character-for-character against the raw model outputs; non-verbatim quotes are automatically stripped and counted indropped_unverified_quotes. - Blind Taste-Test for Code (
parallax_code_audit): Masks sensitive organizational, defense, sovereign, domestic advocacy, sanctioned-tech, and regional markers in prose (NeutralOrg_1,NeutralRegion_1) while keeping fenced code blocks, imports, and schemas intact. It then scores both outputs (0β100) with a deterministic Pythonast+ multi-language security sink analyzer (sql_injection,weak_crypto,command_injection,unsafe_dynamic_exec,permissive_cors_tls,hardcoded_secret_sink,swallowed_exception_or_bypass,stub_or_truncation) to exposeCONTEXT_DEGRADEDregressions, restoring original entity names safely before curating DPO pairs. - Rubric-Gated DPO & SFT Dataset Forge (
parallax_curate_pair,parallax_export_dataset): Stores divergences in a profile-scoped SQLite WAL ledger (<HERMES_HOME>/plugin-data/parallax/parallax.db), enforces deterministic AST/sink anti-poison quarantine at both curation and export time, and filters pairs onaccuracy(1β5),balance(1β5),independence(1β5), and zero disqualifyingissue_tagsbefore exporting TRL-ready DPO or ChatML SFT JSONL datasets. - Hermes Web Dashboard Tab (
/parallax): Ships a zero-build React dashboard extension (window.__HERMES_PLUGIN_SDK__+ async FastAPIAPIRouter) with 1-click demo presets, side-by-side frame & code scorecards, interactive rubric sliders, and live JSONL export previews.
Installation
# Install from GitHub (or via catalog once listed)
hermes plugins install https://github.com/kruschdev/hermes-parallax
hermes plugins enable parallax
Validate locally with Hermes's admission & doctor checks:
hermes plugins validate ~/.hermes/plugins/hermes-parallax
hermes plugins doctor parallax --ci
Zero-Config Usage & Multi-Model Auxiliary Slots
Parallax works out of the box with zero configuration using your active Hermes model.
Because Parallax registers three first-class Hermes auxiliary tasks (parallax_lens_a, parallax_lens_b, and parallax_judge), you can optionally pin contrasting models in your Hermes configuration (auxiliary: block, or from Hermes Dashboard β Models β Auxiliary Models):
auxiliary:
parallax_lens_a:
provider: openrouter
model: qwen/qwen3-235b-a22b
parallax_lens_b:
provider: nous
model: nousresearch/arete-27b
parallax_judge:
provider: anthropic
model: claude-sonnet-4-20250514
Slash Commands (CLI, TUI, Discord, Telegram, Slack)
/parallax status
/parallax inspect aud_demo_code_defense_portal
/parallax frame Compare semiconductor export control impacts on domestic foundry R&D
/parallax code Build a FastAPI audit log query endpoint for a Pentagon logistics portal
/parallax export dpo 5 4 4
Agent Tools
| Tool | Purpose |
|------|---------|
| parallax_ledger_status | Read-only query returning ledger KPIs, recent passive/active audit summaries (filterable by kind), or full findings for a specific audit_id. |
| parallax_frame_audit | Decompose contrasting responses into shared facts, silent omissions, verbatim spin quotes, and 1β5 rubric scores. |
| parallax_code_audit | Scrub institutional/geopolitical context to NeutralOrg_1 and run AST + sink security scoring (0β100) to catch CONTEXT_DEGRADED code. |
| parallax_curate_pair | Persist a (prompt, chosen, rejected) pair with accuracy, balance, and independence scores. |
| parallax_export_dataset | Export rubric-filtered TRL dpo or ChatML sft JSONL files to <HERMES_HOME>/plugin-data/parallax/exports/. |
Standalone CLI & Stdio MCP Bridge (External Agents & Shell Scripts)
Inside Hermes Agent, Parallax runs natively via ctx.register_tool so it can access ctx.llm and your configured multi-model auxiliary slots directly. For shell pipelines or external MCP hosts (Claude Code, Cursor, Antigravity), the plugin directory also executes directly as a zero-dependency Python CLI and JSON-RPC 2.0 Stdio MCP server:
# Terminal CLI (human-readable or --json)
python3 ~/.hermes/plugins/hermes-parallax status --kind passive
python3 ~/.hermes/plugins/hermes-parallax inspect <audit_id> --json
python3 ~/.hermes/plugins/hermes-parallax export --format dpo --min-accuracy 5 --json
# Zero-dependency Stdio MCP server (exposes all 5 tools over JSON-RPC 2.0 stdio)
python3 ~/.hermes/plugins/hermes-parallax mcp
Hermes Web Dashboard
Start hermes dashboard and open the Parallax tab (/parallax):
- Click Load Demo Traces to explore pre-built framing and blind code security audits immediately without spending tokens.
- Toggle Use Live Hermes
ctx.llmor paste any two model outputs side-by-side. - Adjust the Accuracy / Balance / Independence sliders in the DPO / SFT Dataset Forge to see how strict rubric filtering and deterministic anti-poison quarantine drop noisy pairs before exporting JSONL.
Hermes Surfaces Used
- Tools:
ctx.register_tool(parallax_frame_audit,parallax_code_audit,parallax_curate_pair,parallax_export_dataset,parallax_ledger_status) - Auxiliary Model Tasks:
ctx.register_auxiliary_task(parallax_lens_a,parallax_lens_b,parallax_judge) - Host-Owned LLM Calls:
ctx.llm.complete&ctx.llm.complete_structured - Lifecycle Hook:
ctx.register_hook("post_llm_call", ...)β lightweight<1mslocal lexical/AST telemetry observer (makes zero background LLM or network calls) - Slash Command:
ctx.register_command("parallax", ...) - Gateway JSON-RPC:
ctx.register_rpc("summary", ...)&ctx.register_rpc("audit", ...)(wire methods:plugin.parallax.summary&plugin.parallax.audit) - Bundled Skill:
ctx.register_skill("parallax-methodology", ...) - Durable Profile Storage & Redaction:
plugins.plugin_storage.plugin_data_dir/plugin_db&agent.redact.redact_sensitive_text(..., force=True) - Web Dashboard UI & API:
dashboard/manifest.json,dashboard/dist/index.js,dashboard/dist/style.css, anddashboard/plugin_api.py - Process Isolation: Verified
host_ready: true(plugins.isolation: host)
Security, Privacy & Behavior Disclosure (Catalog Rule 13)
- Zero External Network Calls: Parallax makes no direct HTTP, socket, or third-party API calls and collects zero telemetry. When live auditing is invoked (
parallax_frame_audit,parallax_code_audit,/parallax frame|code, or when Use Live Hermesctx.llmis checked in the dashboard), model calls go exclusively through Hermes's host-ownedctx.llmusing the operator's configured provider and credentials. - Zero Credential Reads: Requires
requires_env: [], never reads.env,auth.json, or external credential stores, and passes all stored prompts/outputs throughagent.redact.redact_sensitive_text(..., force=True)before SQLite persistence. - Zero Shell Execution & Zero Runtime Dependencies:
dependencies = [](Python>=3.11standard library only). Never spawns subprocesses, modifies Hermes core modules, or self-updates. - Bounded Profile-Scoped Storage: Writes only to
<HERMES_HOME>/plugin-data/parallax/parallax.db(SQLite WAL) and<HERMES_HOME>/plugin-data/parallax/exports/*.jsonl. Removing that directory deletes all Parallax state cleanly.
Running Tests
pytest tests/ -v
License
MIT Β© kruschdev
README from the reviewed commit 4fff9b4; it updates when the author re-pins.

kruschdev