---
title: Package map
description: Every package in the HermesOS monorepo and what it is responsible for.
url: https://hermesos.thally.app/reference/packages
---

# Package map

Every package in the HermesOS monorepo and what it is responsible for.

HermesOS is a pnpm workspace. Packages depend downward through the tiers below,
never upward.

## Foundations

| Package | Responsibility |
| --- | --- |
| `@hermes/kernel` | Missions, tasks, scheduler, event bus, plugin registry |
| `@hermes/model` | Provider-agnostic model contracts |
| `@hermes/tools` | Tool authoring, schemas, metadata, permissions, discovery |
| `@hermes/shared` | Types and helpers shared across packages |

## Tools

| Package | Responsibility |
| --- | --- |
| `@hermes/tools-fs` | Filesystem read and write |
| `@hermes/tools-shell` | Shell execution |
| `@hermes/tools-http` | HTTP requests |
| `@hermes/tools-git` | Local git operations |
| `@hermes/tools-github` | GitHub API integration |
| `@hermes/tools-browser` | Browser automation |

## Models

| Package | Responsibility |
| --- | --- |
| `@hermes/model-router` | Routing across providers |
| `@hermes/embedding` | Embedding service |
| `@hermes/context` | Context building |
| `@hermes/provider-openai` | OpenAI, and OpenAI-compatible endpoints such as Ollama |
| `@hermes/provider-anthropic` | Anthropic |
| `@hermes/provider-google` | Gemini |
| `@hermes/provider-http` | Generic HTTP provider transport |

## Runtime and interfaces

| Package | Responsibility |
| --- | --- |
| `@hermes/scheduler` | Scheduled and recurring work |
| `@hermes/worker` | Background execution |
| `@hermes/rest` | REST surface |
| `@hermes/cli` | A framework for building CLIs, not a shipped binary |
| `@hermes/telegram` | Telegram interface |

## Services

| Service | Responsibility |
| --- | --- |
| `services/planner` | Turns a goal into a plan |
| `services/execution` | Compiles and runs the execution graph |
| `services/agent` | The agent loop and its middleware |
| `services/memory` | Persistence and recall |

## Platform

| Package | Responsibility |
| --- | --- |
| `@hermes/config` | Configuration loading |
| `@hermes/secrets` | Secret handling that redacts by construction |
| `@hermes/auth` | Authentication |
| `@hermes/authz` | Authorization, default-deny |
| `@hermes/plugin-sdk` | Authoring plugins |
| `@hermes/plugin-loader` | Loading plugins |
| `@hermes/metrics` | Prometheus metrics |
| `@hermes/tracing` | Distributed tracing |
| `@hermes/logger` | Structured logging |
| `@hermes/health` | Health checks |
| `@hermes/loadtest` | Load testing harness |

## Apps

| App | Responsibility |
| --- | --- |
| `apps/api` | The deployable HTTP service |
| `apps/telegram` | The deployable Telegram bot |

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