Open source · Apache 2.0 · Self-hosted

One chat. Multiple AI agents working in parallel.

HydraOps is a multi-agent system that runs on your machine. Agents with their own personality write code, answer questions and generate images and video, with API or local models. Your keys never leave home: everything goes through a credential firewall.

I use it every day on my own machine. There is a Windows desktop installer and a headless server mode; a container image is on the way.

Works with your API key from
OpenAIAnthropicGeminiGroqxAIMistralDeepSeekQwenKimiGLMMiniMaxOpenRouterLeonardo
and with local models, no key needed, via
llama.cppLM StudiovLLMOllama

What you get

If you have tried OpenClaw-style personal assistants, this is the multi-agent take: several agents in one chat, orchestrated locally. No mandatory external services. Your keys and your data never leave your machine.

Agents with personality

Each agent is six Markdown files, editable from the interface itself: soul, skills, tools, memory, heartbeat and profile.

Four worker types

Code, general, image and video. Each one has its own engine and resolution, and you can configure them per agent.

Extensible tools

Native add-ons, your own in my_addons/ with hot loading, and MCP servers over HTTP.

Credential firewall

API keys are never in the repository, the database or the .env: a local proxy injects them at the network boundary. Workers only ever see the "proxy" placeholder.

Tool guard

Every tool goes through a filter that blocks credential paths, catastrophic commands and requests to internal networks, and redacts secrets from results.

Full-featured chat

Attachments, inline images and video, scheduled tasks (cron), statistics and an interface in five languages: es, en, it, fr and pt-BR.

Architecture

A pnpm monorepo in TypeScript ESM. No service publishes directly to NATS: everything is written to a SQLite outbox first and a single process drains it, so a network failure never loses events.

  1. UI · Angularthe chat and every view
  2. API · ExpressREST and file server
  3. SQLite outboxevery event is persisted before it travels
  4. outbox-workera single process drains the outbox to NATS
  5. NATS JetStreamthe message bus
  6. Orchestratorassigns each task to the right agent
  7. Workerscoder · general · graphic · video: they run the task and send the result back to the chat

Security built in

Four things already taken care of, so you don’t have to think about them.

01

Keys never cross the firewall

They live outside the project and the key-proxy injects them at the network boundary: neither the workers, nor the database, nor the .env ever see a real key.

02

A guard on every tool

It blocks credential paths and destructive commands, redacts secrets from results, and keeps fetch_url away from internal addresses.

03

The API listens only on 127.0.0.1

Out of the box it is not reachable from another machine. Nothing gets exposed by accident.

04

Opening it to the network requires a token

With HYDRA_HOST=0.0.0.0 the API demands a HYDRA_AUTH_TOKEN: the browser asks for it once, and with no token defined the API simply refuses to open up.

To report a vulnerability: security@hydraops.org

Install

Three ways to get it running, from fastest to most flexible.

Windows installer

Download the .exe from Releases. It needs no Node and no pnpm: the services run on the Node bundled with Electron. Your data and keys stay outside the installation directory and the app updates itself.

Download .exe

From source

For Windows, Linux and macOS. Requirements: Node 20+, pnpm 9 and the nats-server binary (on your PATH, in a nats/ folder inside the repo, or via NATS_SERVER_BIN in the .env). No build steps to remember: pnpm desktop builds packages and interface and opens the app window.

git clone https://github.com/TraX22/HydraOps.git
cd HydraOps
pnpm install
cp .env.example .env
pnpm desktop

24/7 server mode

For a screenless mini PC: a single command builds, brings up NATS and all eight services, applies migrations and seeds the database, health-checks each phase and restarts anything that crashes. A systemd unit ships in deploy/.

pnpm serve