{
  "schemaVersion": 1,
  "generatedAt": "2026-10-22",
  "product": {
    "name": "Harthelm",
    "summary": "Cloud workspaces and hosting for your team, on your own Kubernetes.",
    "version": "1.6.0",
    "ref": "v1.6.0",
    "commit": "273bdc8b21bf03340bec6007b1dffdfd38d5cf08",
    "committedAt": "2026-10-20T13:37:46+02:00",
    "stable": true,
    "released": "2026-10-20",
    "apiVersion": "0.12.0"
  },
  "docs": {
    "home": "https://docs.harthelm.dev/",
    "llmsTxt": "https://docs.harthelm.dev/llms.txt",
    "llmsFullTxt": "https://docs.harthelm.dev/llms-full.txt",
    "markdown": {
      "urlPattern": "https://docs.harthelm.dev/{page}.md",
      "accept": "text/markdown",
      "example": "https://docs.harthelm.dev/getting-started/quickstart.md"
    },
    "sitemap": "https://docs.harthelm.dev/sitemap.xml",
    "capabilitiesPage": "https://docs.harthelm.dev/reference/machine-readable/"
  },
  "releaseChannel": {
    "registry": {
      "host": "registry.harthelm.dev",
      "images": "registry.harthelm.dev/harthelm/<image>:<tag>",
      "chart": "oci://registry.harthelm.dev/harthelm/charts/harthelm",
      "access": "a login with your licence id and registry token"
    },
    "files": {
      "host": "get.harthelm.dev",
      "release": "https://get.harthelm.dev/releases/1.6.0/",
      "sources": "https://get.harthelm.dev/sources/",
      "access": "public HTTPS, no login"
    },
    "signingKey": "https://docs.harthelm.dev/cosign.pub",
    "guide": "https://docs.harthelm.dev/self-hosting/install/get-harthelm/"
  },
  "features": [
    {
      "id": "how-harthelm-works",
      "title": "How Harthelm works",
      "summary": "The parts you meet: the console, the API, the router, workspace pods and the platform database.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/how-harthelm-works/",
      "markdown": "https://docs.harthelm.dev/concepts/how-harthelm-works.md"
    },
    {
      "id": "organizations-and-teams",
      "title": "Organizations and teams",
      "summary": "Organizations, teams, roles and invitations, and what belongs to a team.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/organizations-and-teams/",
      "markdown": "https://docs.harthelm.dev/concepts/organizations-and-teams.md"
    },
    {
      "id": "workspaces",
      "title": "Workspaces",
      "summary": "A workspace: your code on its own volume, the IDE, terminals, plans and visibility.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/workspaces/",
      "markdown": "https://docs.harthelm.dev/concepts/workspaces.md"
    },
    {
      "id": "landscapes",
      "title": "Landscapes",
      "summary": "harthelm.yml describes a landscape; Sync changes it, Run starts it, and the stages prepare, test and run.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/landscapes/",
      "markdown": "https://docs.harthelm.dev/concepts/landscapes.md"
    },
    {
      "id": "services",
      "title": "Services",
      "summary": "The four service types steps, container, managed and forward, and when to pick which.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/services/",
      "markdown": "https://docs.harthelm.dev/concepts/services.md"
    },
    {
      "id": "sleep-and-wake",
      "title": "Sleep and wake",
      "summary": "Sleeps when idle or always running: idle timeouts, why something sleeps and how it wakes.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/sleep-and-wake/",
      "markdown": "https://docs.harthelm.dev/concepts/sleep-and-wake.md"
    },
    {
      "id": "urls-and-routing",
      "title": "URLs and routing",
      "summary": "Dev URLs, ports and routes, private and public, managed services' hosts, and custom domains.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/urls-and-routing/",
      "markdown": "https://docs.harthelm.dev/concepts/urls-and-routing.md"
    },
    {
      "id": "managed-services",
      "title": "Managed services",
      "summary": "The catalog and its providers, bound and standalone services, connecting, TLS, browser hosts, backups.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/managed-services/",
      "markdown": "https://docs.harthelm.dev/concepts/managed-services.md"
    },
    {
      "id": "env-vars-and-secrets",
      "title": "Environment variables and secrets",
      "summary": "Workspace env vars, the vault, templates in harthelm.yml and what reaches which stage.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/env-vars-and-secrets/",
      "markdown": "https://docs.harthelm.dev/concepts/env-vars-and-secrets.md"
    },
    {
      "id": "plans-and-quotas",
      "title": "Plans and quotas",
      "summary": "Workspace plans, service plans and the team quota.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/plans-and-quotas/",
      "markdown": "https://docs.harthelm.dev/concepts/plans-and-quotas.md"
    },
    {
      "id": "api-and-automation",
      "title": "API and automation",
      "summary": "The REST API, API keys, operations and how hart and the console use the same API.",
      "kind": "concept",
      "group": null,
      "url": "https://docs.harthelm.dev/concepts/api-and-automation/",
      "markdown": "https://docs.harthelm.dev/concepts/api-and-automation.md"
    },
    {
      "id": "start-from-a-repository",
      "title": "Start from a repository",
      "summary": "Connect a Git account and create a workspace from a repository and branch.",
      "kind": "guide",
      "group": "Workspaces",
      "url": "https://docs.harthelm.dev/guides/start-from-a-repository/",
      "markdown": "https://docs.harthelm.dev/guides/start-from-a-repository.md"
    },
    {
      "id": "work-in-the-ide",
      "title": "Work in the IDE",
      "summary": "The editor, terminals, the Run panel and harthelm.yml help in the IDE.",
      "kind": "guide",
      "group": "Workspaces",
      "url": "https://docs.harthelm.dev/guides/work-in-the-ide/",
      "markdown": "https://docs.harthelm.dev/guides/work-in-the-ide.md"
    },
    {
      "id": "keep-a-workspace-awake",
      "title": "Keep a workspace awake",
      "summary": "Keep a workspace from sleeping for a while, or keep it always running.",
      "kind": "guide",
      "group": "Workspaces",
      "url": "https://docs.harthelm.dev/guides/keep-a-workspace-awake/",
      "markdown": "https://docs.harthelm.dev/guides/keep-a-workspace-awake.md"
    },
    {
      "id": "restore-a-workspace",
      "title": "Restore a workspace",
      "summary": "Bring back a deleted workspace, or restore an archive into a new one.",
      "kind": "guide",
      "group": "Workspaces",
      "url": "https://docs.harthelm.dev/guides/restore-a-workspace/",
      "markdown": "https://docs.harthelm.dev/guides/restore-a-workspace.md"
    },
    {
      "id": "run-commands-remotely",
      "title": "Run commands remotely",
      "summary": "Run a command in a workspace with hart exec.",
      "kind": "guide",
      "group": "Workspaces",
      "url": "https://docs.harthelm.dev/guides/run-commands-remotely/",
      "markdown": "https://docs.harthelm.dev/guides/run-commands-remotely.md"
    },
    {
      "id": "configure-services",
      "title": "Configure services",
      "summary": "Ports, routes, health checks, replicas and env vars per service.",
      "kind": "guide",
      "group": "Landscapes",
      "url": "https://docs.harthelm.dev/guides/configure-services/",
      "markdown": "https://docs.harthelm.dev/guides/configure-services.md"
    },
    {
      "id": "services-that-need-each-other",
      "title": "Services that need each other",
      "summary": "Start order and readiness with needs.",
      "kind": "guide",
      "group": "Landscapes",
      "url": "https://docs.harthelm.dev/guides/services-that-need-each-other/",
      "markdown": "https://docs.harthelm.dev/guides/services-that-need-each-other.md"
    },
    {
      "id": "run-a-container-image",
      "title": "Run a container image",
      "summary": "Run your own OCI image as a container service.",
      "kind": "guide",
      "group": "Landscapes",
      "url": "https://docs.harthelm.dev/guides/run-a-container-image/",
      "markdown": "https://docs.harthelm.dev/guides/run-a-container-image.md"
    },
    {
      "id": "use-private-registries",
      "title": "Use private registries",
      "summary": "Register a container registry and its credentials for your team.",
      "kind": "guide",
      "group": "Landscapes",
      "url": "https://docs.harthelm.dev/guides/use-private-registries/",
      "markdown": "https://docs.harthelm.dev/guides/use-private-registries.md"
    },
    {
      "id": "profiles",
      "title": "Profiles",
      "summary": "Keep variants of harthelm.yml as profiles and pick one when you Sync.",
      "kind": "guide",
      "group": "Landscapes",
      "url": "https://docs.harthelm.dev/guides/profiles/",
      "markdown": "https://docs.harthelm.dev/guides/profiles.md"
    },
    {
      "id": "test-stage",
      "title": "The test stage",
      "summary": "Run tests in the test stage from the console, hart and CI.",
      "kind": "guide",
      "group": "Landscapes",
      "url": "https://docs.harthelm.dev/guides/test-stage/",
      "markdown": "https://docs.harthelm.dev/guides/test-stage.md"
    },
    {
      "id": "mounts",
      "title": "Mounts",
      "summary": "Mount files and directories of your code into a service.",
      "kind": "guide",
      "group": "Landscapes",
      "url": "https://docs.harthelm.dev/guides/mounts/",
      "markdown": "https://docs.harthelm.dev/guides/mounts.md"
    },
    {
      "id": "add-a-database",
      "title": "Add a database",
      "summary": "Add a managed PostgreSQL to the landscape and wire its secrets into env vars.",
      "kind": "guide",
      "group": "Data",
      "url": "https://docs.harthelm.dev/guides/add-a-database/",
      "markdown": "https://docs.harthelm.dev/guides/add-a-database.md"
    },
    {
      "id": "secrets",
      "title": "Secrets",
      "summary": "Set, generate and delete vault secrets and reference them from harthelm.yml.",
      "kind": "guide",
      "group": "Data",
      "url": "https://docs.harthelm.dev/guides/secrets/",
      "markdown": "https://docs.harthelm.dev/guides/secrets.md"
    },
    {
      "id": "custom-domains",
      "title": "Custom domains",
      "summary": "Add a domain, prove you own it, point it at Harthelm and route paths to workspaces.",
      "kind": "guide",
      "group": "Networking",
      "url": "https://docs.harthelm.dev/guides/custom-domains/",
      "markdown": "https://docs.harthelm.dev/guides/custom-domains.md"
    },
    {
      "id": "path-routing-and-split-traffic",
      "title": "Path routing and split traffic",
      "summary": "Several routes per domain, and several workspaces behind one route.",
      "kind": "guide",
      "group": "Networking",
      "url": "https://docs.harthelm.dev/guides/path-routing-and-split-traffic/",
      "markdown": "https://docs.harthelm.dev/guides/path-routing-and-split-traffic.md"
    },
    {
      "id": "private-apps",
      "title": "Private apps",
      "summary": "Keep an app private to your team and reach it with hart curl.",
      "kind": "guide",
      "group": "Networking",
      "url": "https://docs.harthelm.dev/guides/private-apps/",
      "markdown": "https://docs.harthelm.dev/guides/private-apps.md"
    },
    {
      "id": "use-hart-in-ci",
      "title": "Use hart in CI",
      "summary": "Sign in with an API key, Sync and run stages from a pipeline, and read the exit codes.",
      "kind": "guide",
      "group": "Automation",
      "url": "https://docs.harthelm.dev/guides/use-hart-in-ci/",
      "markdown": "https://docs.harthelm.dev/guides/use-hart-in-ci.md"
    },
    {
      "id": "call-the-api",
      "title": "Call the API",
      "summary": "Authentication, errors, idempotency, ETags, operations, pagination and events.",
      "kind": "guide",
      "group": "Automation",
      "url": "https://docs.harthelm.dev/guides/call-the-api/",
      "markdown": "https://docs.harthelm.dev/guides/call-the-api.md"
    },
    {
      "id": "invite-members",
      "title": "Invite members",
      "summary": "Invite people to a team, pick their role and what accepting needs.",
      "kind": "guide",
      "group": "Teams",
      "url": "https://docs.harthelm.dev/guides/invite-members/",
      "markdown": "https://docs.harthelm.dev/guides/invite-members.md"
    },
    {
      "id": "debug-a-failing-service",
      "title": "Debug a failing service",
      "summary": "Status texts, logs, health checks and the common causes of a service that does not start.",
      "kind": "guide",
      "group": "Teams",
      "url": "https://docs.harthelm.dev/guides/debug-a-failing-service/",
      "markdown": "https://docs.harthelm.dev/guides/debug-a-failing-service.md"
    }
  ],
  "cli": {
    "name": "hart",
    "reference": "https://docs.harthelm.dev/reference/hart/",
    "install": "https://docs.harthelm.dev/getting-started/install-hart/",
    "commands": [
      {
        "name": "hart ctx",
        "group": "Signing in",
        "summary": "List, switch and remove contexts (installations and their default team and workspace)",
        "url": "https://docs.harthelm.dev/reference/hart/ctx/",
        "subcommands": [
          "hart ctx list",
          "hart ctx remove",
          "hart ctx use"
        ]
      },
      {
        "name": "hart login",
        "group": "Signing in",
        "summary": "Sign in and save an API key in a context",
        "url": "https://docs.harthelm.dev/reference/hart/login/",
        "subcommands": []
      },
      {
        "name": "hart logout",
        "group": "Signing in",
        "summary": "Delete the context's API key and remove it from the contexts file",
        "url": "https://docs.harthelm.dev/reference/hart/logout/",
        "subcommands": []
      },
      {
        "name": "hart whoami",
        "group": "Signing in",
        "summary": "Show who the API key belongs to, and the context",
        "url": "https://docs.harthelm.dev/reference/hart/whoami/",
        "subcommands": []
      },
      {
        "name": "hart exec",
        "group": "Workspaces",
        "summary": "Run a command in the workspace",
        "url": "https://docs.harthelm.dev/reference/hart/exec/",
        "subcommands": []
      },
      {
        "name": "hart git",
        "group": "Workspaces",
        "summary": "Git in the workspace: pull, status",
        "url": "https://docs.harthelm.dev/reference/hart/git/",
        "subcommands": [
          "hart git pull",
          "hart git status"
        ]
      },
      {
        "name": "hart keep-awake",
        "group": "Workspaces",
        "summary": "Keep the workspace from sleeping for a while",
        "url": "https://docs.harthelm.dev/reference/hart/keep-awake/",
        "subcommands": []
      },
      {
        "name": "hart ws",
        "group": "Workspaces",
        "summary": "List, create, open, wake and delete workspaces",
        "url": "https://docs.harthelm.dev/reference/hart/ws/",
        "subcommands": [
          "hart ws create",
          "hart ws delete",
          "hart ws list",
          "hart ws open",
          "hart ws purge",
          "hart ws wake"
        ]
      },
      {
        "name": "hart logs",
        "group": "Landscape and stages",
        "summary": "Show the logs of stages and services",
        "url": "https://docs.harthelm.dev/reference/hart/logs/",
        "subcommands": []
      },
      {
        "name": "hart prepare",
        "group": "Landscape and stages",
        "summary": "Run the prepare stage in the workspace",
        "url": "https://docs.harthelm.dev/reference/hart/prepare/",
        "subcommands": []
      },
      {
        "name": "hart run",
        "group": "Landscape and stages",
        "summary": "Start the run stage: every service starts its steps",
        "url": "https://docs.harthelm.dev/reference/hart/run/",
        "subcommands": []
      },
      {
        "name": "hart scale",
        "group": "Landscape and stages",
        "summary": "Set the replicas of services without a Sync",
        "url": "https://docs.harthelm.dev/reference/hart/scale/",
        "subcommands": []
      },
      {
        "name": "hart stop",
        "group": "Landscape and stages",
        "summary": "Stop the run stage, one service, or a running prepare or test",
        "url": "https://docs.harthelm.dev/reference/hart/stop/",
        "subcommands": []
      },
      {
        "name": "hart sync",
        "group": "Landscape and stages",
        "summary": "Sync the landscape with harthelm.yml: review the plan, then apply it",
        "url": "https://docs.harthelm.dev/reference/hart/sync/",
        "subcommands": []
      },
      {
        "name": "hart test",
        "group": "Landscape and stages",
        "summary": "Run the test stage in the workspace",
        "url": "https://docs.harthelm.dev/reference/hart/test/",
        "subcommands": []
      },
      {
        "name": "hart env",
        "group": "Env vars, secrets and managed services",
        "summary": "Workspace environment variables: list, set, unset",
        "url": "https://docs.harthelm.dev/reference/hart/env/",
        "subcommands": [
          "hart env list",
          "hart env set",
          "hart env unset"
        ]
      },
      {
        "name": "hart ms",
        "group": "Env vars, secrets and managed services",
        "summary": "Managed services (databases and more): list, create, rotate, delete",
        "url": "https://docs.harthelm.dev/reference/hart/ms/",
        "subcommands": [
          "hart ms create",
          "hart ms delete",
          "hart ms list",
          "hart ms rotate"
        ]
      },
      {
        "name": "hart secret",
        "group": "Env vars, secrets and managed services",
        "summary": "Vault secrets of the workspace: keys, set, generate, delete",
        "url": "https://docs.harthelm.dev/reference/hart/secret/",
        "subcommands": [
          "hart secret delete",
          "hart secret generate",
          "hart secret keys",
          "hart secret set"
        ]
      },
      {
        "name": "hart domain",
        "group": "Custom domains",
        "summary": "Custom domains of the team: add, verify, route",
        "url": "https://docs.harthelm.dev/reference/hart/domain/",
        "subcommands": [
          "hart domain add",
          "hart domain delete",
          "hart domain list",
          "hart domain route",
          "hart domain set",
          "hart domain show",
          "hart domain verify"
        ]
      },
      {
        "name": "hart completion",
        "group": "Tools",
        "summary": "Generate the autocompletion script for the specified shell",
        "url": "https://docs.harthelm.dev/reference/hart/completion/",
        "subcommands": [
          "hart completion bash",
          "hart completion fish",
          "hart completion powershell",
          "hart completion zsh"
        ]
      },
      {
        "name": "hart curl",
        "group": "Tools",
        "summary": "Make a request to a workspace's dev domain with your API key",
        "url": "https://docs.harthelm.dev/reference/hart/curl/",
        "subcommands": []
      },
      {
        "name": "hart smoke",
        "group": "Tools",
        "summary": "Check an installation end to end with a scratch workspace",
        "url": "https://docs.harthelm.dev/reference/hart/smoke/",
        "subcommands": []
      },
      {
        "name": "hart validate",
        "group": "Tools",
        "summary": "Check a harthelm.yml without a workspace",
        "url": "https://docs.harthelm.dev/reference/hart/validate/",
        "subcommands": []
      },
      {
        "name": "hart version",
        "group": "Tools",
        "summary": "Show hart's version and the server's",
        "url": "https://docs.harthelm.dev/reference/hart/version/",
        "subcommands": []
      },
      {
        "name": "hart admin",
        "group": "Administration",
        "summary": "Cluster administration: doctor, users, audit, licence",
        "url": "https://docs.harthelm.dev/reference/hart/admin/",
        "subcommands": [
          "hart admin audit",
          "hart admin doctor",
          "hart admin license",
          "hart admin license install",
          "hart admin license usage-report",
          "hart admin users"
        ]
      }
    ]
  },
  "references": {
    "openapi": {
      "document": "https://docs.harthelm.dev/openapi.json",
      "openapi": "3.1.0",
      "apiVersion": "0.12.0",
      "page": "https://docs.harthelm.dev/reference/api/",
      "installationPath": "/api/v1/openapi.yaml"
    },
    "harthelmYml": {
      "schema": "https://docs.harthelm.dev/schemas/harthelm.schema.json",
      "id": "urn:harthelm:schema:harthelm-v1",
      "page": "https://docs.harthelm.dev/reference/harthelm-yml/",
      "installationPath": "/api/v1/schemas/harthelm.json"
    },
    "chartValues": {
      "page": "https://docs.harthelm.dev/reference/chart-values/",
      "chart": "oci://registry.harthelm.dev/harthelm/charts/harthelm"
    },
    "releaseNotes": {
      "index": "https://docs.harthelm.dev/releases/",
      "current": "https://docs.harthelm.dev/releases/v1-6-0/"
    }
  }
}
