---
title: Introduction
description: HermesOS is a composable TypeScript runtime for autonomous AI — a kernel that runs a graph of tasks toward a goal.
url: https://hermesos.thally.app/
---

# Introduction

HermesOS is a composable TypeScript runtime for autonomous AI — a kernel that runs a graph of tasks toward a goal.

## What HermesOS is

HermesOS is a production-grade runtime for autonomous AI, built as a TypeScript
and pnpm monorepo. You give it a goal; the kernel compiles that goal into a
graph of tasks and runs them, calling models and tools along the way.

Every subsystem is strongly typed, deterministic — a pure function of injected
clocks and transports — and documented by its own RFC.

#### [Run your first mission](/quickstart)

    Clone, build, and get the API service answering in about five minutes.

#### [Understand missions and tasks](/concepts/missions-and-tasks)

    How the kernel turns a goal into a graph, and what it refuses to know.

#### [Write a tool](/guides/write-a-tool)

    Declare a tool that can describe its own arguments to a model.

#### [Grant permissions](/concepts/permissions)

    Decide what your tools are allowed to do, at the composition root.

## Design principles

**Ports and adapters.** Every external dependency — a clock, a transport, a
sink, a store — is an injected interface with a deterministic fake. No test
touches a real network or a real wall clock.

**Zero-dependency cores.** Most packages have no runtime dependencies at all.
The only non-`@hermes/*` runtime dependency in the entire monorepo is `pg`.

**Fail closed.** Authorization is default-deny. Secrets redact by construction.
A corrupt inbound trace header starts a fresh trace rather than trusting a
forged value.

## How the packages fit together

The build follows the dependency graph, tier by tier.

| Tier | What it provides | Examples |
| --- | --- | --- |
| Foundations | The kernel and core contracts | `@hermes/kernel`, `@hermes/model`, `@hermes/tools` |
| Tools | Sandboxed capabilities | fs, shell, http, git, github, browser |
| Models | Provider-agnostic model access | embedding, router, OpenAI / Anthropic / Gemini providers |
| Runtime and interfaces | Execution and surfaces | scheduler, worker, REST, CLI, Telegram |
| Platform | Cross-cutting infrastructure | config, secrets, auth, authz, plugins, metrics, tracing |
| Production | Deployable and operable | `apps/api`, Docker, CI/CD, load testing |

> **Note:**
  Design decisions live in `docs/rfcs` (RFC-0001 through RFC-0036) in the
  repository. Where this documentation explains *what*, the RFC explains *why*.