New: Decision Runtime — closed-set judgments for Agent OS. Read the guide →
HazelJS LogoHazelJS
HAZELJS AGENT OS

The Agent OS for TypeScript

Operate agents like production systems.

Frameworks help you build agents. HazelJS helps you run them — durable, governed, local-first.

DocsGitHub37+ stars200K+ downloads / 30d

Get started

Local Agent OS in minutes

TypeScript

Install CLI

$ npm install -g @hazeljs/cli
  1. 1

    Create an agent

    $ hazel new agent support-agent
  2. 2

    Install deps

    $ cd support-agent && npm install
  3. 3

    Apply (starts hazeld)

    $ hazel apply

Install → Apply → Running · survives closing the terminal

Explore
Category

Why an Agent OS?

Frameworks get you to a demo. An Agent OS keeps agents alive in production — durable runs, governance, and local apply in TypeScript.

01

Frameworks help you build

Prompt loops and tools get you to a demo.

02

Agent OS helps you operate

Durable runs, Gatekeeper, DNA, and HITL keep agents running for real.

03

Local-first TypeScript

hazel apply on your laptop. Cloud and Kubernetes are optional.

What is an Agent OS?

Architecture

Five layers. One Agent OS.

Define → Run → Decide → Govern → Survive — inside your TypeScript backend.

Architecture

Inside HazelJS Agent OS

TypeScript
01

Define & Deploy

Version identity, prompt, skills, and policies as DNA. Declare desired state with Store/Apply — tools stay in TypeScript.

DNAStoreApply
02

Run

Agent Runtime executes the loop. Agent VM classifies effects and enables speculation/undo. Organism self-organizes specialists from a mission and environment signals.

RuntimeAgent VMOrganism
03

Decide

Bounded closed-set judgment before side effects. Evidence, judge, critic, and confidence inform policy — never authorize. Default provider is native hazel-agent, not an external-model wrapper.

Decision RuntimeConfidencePolicy
04

Govern

Skillgate curates which APIs become capabilities. Gatekeeper authorizes each tool call — default deny, approvals, rewrite.

SkillgateGatekeeper
05

Survive

Durable runs, crash-safe HITL, leases, state, and recovery — so agents outlive process restarts.

Durable RunsHITLRecovery

TypeScript / Node.js Backend

Runs beside your APIs — local-first, no separate runtime plane required.

Define → Run → Decide → Govern → Survive

Explore Agent OS →

Flagship

Clone Meridian — see the whole Agent OS

One repo that teaches DNA vs tools, Store vs platform vs run, Skillgate, router, and HITL. Copy the pattern into your product.

01

store:sync

Publish DNA packages + lockfile

02

platform:sync

Apply Definitions / Deployments

03

npm run dev

Chat with real @Tool handlers

terminal

git clone https://github.com/hazel-js/hazeljs-meridian-ops.git
cd hazeljs-meridian-ops && npm i && npm run store:sync && npm run platform:sync && npm run dev

Local Store is enough to start. Hosted registry (promote/share packages) is an optional Team SKU — never required for local correctness.

Coming soon

Agent Bay

Your shell. Your agents. One bay.

Native PTY first — Mission Control and Gatekeeper when you want agents. Watch the same Shell → Propose → Gatekeeper → Approve → Run loop as the product site.

  1. 01 · Shell
  2. 02 · Propose
  3. 03 · Gatekeeper
  4. 04 · Approve
  5. 05 · Run
⌕Search workspace
agent-terminal-landing
hazeljs-agent-os-starter
+
agent-terminal-landing
(*|local)➜agent-terminal-landinggit:(main)
hazeljs-agent-os-starter/agent-terminal-landing
2 tabslocallocal
Also shipped on HazelJS

Zynli — production SaaS on the HazelJS stack

Proof that HazelJS packages ship real products. Zynli is multi-tenant AI support (RAG, flows, billing) — supporting ecosystem, not the Agent OS teaching path. For DNA, HITL, Skillgate, and apply, clone Meridian.

Zynli.AI

Live in production

Multi-tenant AI support — RAG, flows, billing, and real-time handoff. Built by HumanBee AB.

Status
Live
Product
zynli.ai
Widget on
hazeljs.ai

01

Agentic RAG inbox

Visitors get KB-grounded answers first; low-confidence turns escalate to live agents with full context.

02

Guided flows & tools

Intent routing runs order tracking, ticket creation, and custom HTTP actions — HazelJS stack patterns in production.

03

Production SaaS stack

Multi-tenant workspaces, subscriptions, real-time Socket.IO, and an embeddable React widget — shipped, not a demo repo.

HazelJS stack in production

@hazeljs/rag@hazeljs/ai@hazeljs/core@hazeljs/memory@hazeljs/payment@hazeljs/queue

Try the support widget on this page — it runs on the same HazelJS RAG stack as Zynli.

visitor-bot-reply.ts
// KB → guided flow → ticket bot → LLM → human handoff
await askRag(question, tenantId, { sessionId });
await matchVisitorIntent(tenantId, message);
await tryExecuteVisitorFlow({ conversationId, tenantId, ... });

Build your first agent

Five minutes on your laptop. Apache 2.0. No cloud required.

Want hosted deploy later? Cloud waitlist →