Harness Everything Routing Orchestrator

Drive the coding sessions on your machine, from any browser

HERO is a web dashboard over the Claude Code and Codex sessions already running on your machine. List them, send a message and watch the reply stream in, approve or deny a tool-permission prompt — from your phone if you like.

It is a thin wrapper over the official CLIs, not another agent: the CLIs do the work, HERO adds the interface, remote access, and session management.

What it's for

Start something long, then walk away

Kick off a big refactor or a full test run and leave the keyboard. Watch it stream on your phone, send a follow-up, approve a permission prompt if one comes up.

One dashboard across projects and both CLIs

Several projects, and Claude Code and Codex side by side, in one place — instead of hunting through `claude --resume` or `codex resume`.

Route work from one main chat

Quick slash commands by default; turn on the optional LLM agent and use plain language: "run the tests in the auth session and tell me what fails".

A terminal inside a session

Open one tmux shell per session, starting in that session's working directory.

Two ways to run it, with different boundaries

The data boundary is not the same for both. We'd rather write that down than paper over it.

Self-hosted

Runs on your own machine

The core dashboard has no HERO account, no cloud, and no relay. Sessions, transcripts, and CLI processes stay on your machine. To reach it from another device, run your own tunnel on that same machine (Tailscale or Cloudflare Tunnel) — HERO keeps listening on 127.0.0.1.

Except for services you explicitly connect: the optional LLM agent, Telegram / Lark, Web Push, or a tunnel each send the data that feature needs to its provider.

Hosted control plane

A dedicated instance we operate

We provision a separate control-plane instance per customer, with its own subdomain and HTTPS certificate. The isolation boundary is the instance — not a tenant ID column in a shared database. Your nodes dial out to it from your own machines.

We operate and maintain that control plane, so session metadata and transcripts that pass through it live on an instance we run. Teams for whom that is the wrong trade-off should self-host.

How it works

  1. 01

    Discovery is read-only

    HERO watches ~/.claude/projects/ and ~/.codex/sessions/ and lists every session — including ones you started in a terminal or IDE — tagged with the CLI that produced it. It never takes ownership.

  2. 02

    It drives the official CLIs

    Sending uses a long-running `claude -p` stream-json process per active session, and one `codex app-server` worker per live root Codex session. Session logs remain the content source.

  3. 03

    Permissions ride the native channels

    Prompts flow through Claude's `can_use_tool` callback and Codex app-server approval requests. A request blocks until you decide in the UI.

Run it yourself first

Self-hosting is free and works the moment it's installed. Come back for a hosted plan when you need several machines, several people, and one dashboard over all of it.