Namespace
nousresearch
Image / Tag
hermes-agent:main-desktop
Content Digest
sha256:9d826562ff6edab8b52eecc19697e01161fceebff8b88af4f20c54c7a937c1cb
Details
Created

2026-09-27 15:40:45 UTC

Size

1.29 GB

Content Digest
Labels
  • org.opencontainers.image.revision
    6f7a7991bb069db07ae74a479823ce8310f8c7e0

Environment
CC

gcc

CXX

g++

HERMES_HOME

/opt/data

HERMES_PYTHON

/usr/local/bin/python3

HERMES_RUNTIME_DIR

/opt/hermes/tools

HERMES_TUI_DIR

/opt/hermes/ui-tui

HERMES_WEB_DIST

/opt/hermes/hermes_cli/web_dist

HERMES_WRITE_SAFE_ROOT

/opt/data

PATH

/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PLAYWRIGHT_BROWSERS_PATH

/opt/hermes/tools

PYTHONDONTWRITEBYTECODE

1

PYTHONUNBUFFERED

1

XDG_RUNTIME_DIR

/tmp/hermes-runtime


Layers

[#000] sha256:307f8152a55ef1e9eeb1acbbee7bc81232615329eaeb00d8dd93b46be297f34c - 3.57% (47 MB)

[#001] sha256:6a1fe50aeb29353e7195228d057968c99b0daf55d0b8669b92109eae9b507cf2 - 22.68% (299 MB)

[#002] sha256:a5ab9eef8297574ccfaf89aece1a83f1e2724f2eed13fd0dd925f80ef46c94c1 - 16.81% (221 MB)

[#003] sha256:845998581afccd9bf8bc28bf0de10d4763eaaa35580ec639879b0b50ab377f10 - 0.07% (883 KB)

[#004] sha256:ab335c55d963a2d4d202191b4f14fa383c26d56dba6cde4b36c50aff5b53e4ad - 0.0% (8.82 KB)

[#005] sha256:9fc23699ab19652129c8aaadf777106532041f6125a5ae460712a5402b36c874 - 0.2% (2.68 MB)

[#006] sha256:be6fb744156edfa48d20da6e30868e1636f0d8d9fe1c23622f56c6c519cb512c - 0.0% (1.43 KB)

[#007] sha256:cd114fe98d950feee09f2e4c73202f3fb803fff45b2f87a27a529ee823458513 - 0.0% (3.25 KB)

[#008] sha256:caf4bed47f0e3eb4ed2bba94447c649d4e12f176c14306c22f34741db784c93c - 0.0% (116 Bytes)

[#009] sha256:537c77595bcbbbd561f9e1f56bb70f08a8fcc76d902ab46ab35edbcfd45f061b - 0.01% (166 KB)

[#010] sha256:6e5c7fdab39a1593a3e4b24864c34809be791108aee51fd70a1779501113c576 - 0.0% (20.9 KB)

[#011] sha256:c76d8661191b0fa7ee2288c91a80b309d056310ce756fbe553eeec2067165661 - 0.0% (4.7 KB)

[#012] sha256:e8493f0d2c7833a146f1d95bec2b225f41f9c3445be77a4321921606c4db843e - 0.0% (3.06 KB)

[#013] sha256:b69e74af69c9ab6ff568d9a0034897b039bee4e3996a72a2fbcf0f5a2d0a3d2b - 43.26% (570 MB)

[#014] sha256:055488d9c99eba5ac3b3b1b4c9b5d265f139b569fea4b9ed8cf6da2f80839dfe - 0.04% (597 KB)

[#015] sha256:60fa719b489b3196c1cefa07a8b88cdd913df298daf87a2d2f599ad698ec11f0 - 0.03% (353 KB)

[#016] sha256:3010354c45f0019e09630d03288d36319992b5651be0aefecbfebc8c3ee1e637 - 0.0% (155 Bytes)

[#017] sha256:cac465c2928e600fe82dfe3d1eaa5c773bfdefefcce6de281876a757452b2f57 - 10.03% (132 MB)

[#018] sha256:cfa4f99975f54169136b2cb028293a0f2017da61f7bec269905a9b6180e3e045 - 0.33% (4.34 MB)

[#019] sha256:1459f55334a20fd12a9e32191fc284957e3c0c8ba24f8e68c48805c0ebde55f4 - 0.0% (198 Bytes)

[#020] sha256:f581243909cc848ce487c7e462f13c70247cb88fd080e0fb67b616c9789fb122 - 0.0% (15.6 KB)

[#021] sha256:547e0666a547ce6afc9ca211cb40445ad73665f252cd3babdfd6b5089b609f5b - 1.19% (15.7 MB)

[#022] sha256:2187a06ec62b2f65ba109f810b04f5c7fcddbc8fc8651f128bf357fc99f27ffd - 0.06% (754 KB)

[#023] sha256:a9a94039f0a381d33e68049a00d5d3273d75733322e5e87bebeff2fc0df9365f - 0.11% (1.47 MB)

[#024] sha256:3771ea97caef896dde0d20b277c4301a7d09d61218f56940100d3a9dbac3e7a7 - 0.0% (116 Bytes)

[#025] sha256:e40887905f0cd14239166d0fc832069f4a1d5a3ae2da046a6105ee6df85aaff0 - 0.0% (128 Bytes)

[#026] sha256:300943de4a4929f9bc76413af43f86b3084f88dfb5115878be9ff510ae92700b - 1.55% (20.4 MB)

[#027] sha256:349853d121c7d08584ac0180fa1f3743779c5ffc87394f7e4768fa9e8bede410 - 0.06% (759 KB)

[#028] sha256:1a5837a531f9ca76e95f281d5ead9c2c9569c56a77a5a291f77bd15d1d606b54 - 0.0% (1.93 KB)

[#029] sha256:f0c738f78269b6aec03ea85d48ab78d09dadd498c9c4718741701545a959015a - 0.0% (542 Bytes)

[#030] sha256:45becf24178e42de2ef0bc7049de95b0ff44a6c7aa70be48165804ef501d6240 - 0.0% (2.65 KB)

[#031] sha256:c053d6fe02cbf502b845bf854f6feb526fdabe99db378389914271cc7d9a9b96 - 0.0% (208 Bytes)

[#032] sha256:a399a8993920c29c273cc30e07bbc90c581213fcaba3b5a49df3eb8bd0660d9c - 0.0% (1.9 KB)

[#033] sha256:1519c2fde3913441d91d59f0b9feadd51f2dafc0696c076bd30547ee3ee16538 - 0.0% (1.19 KB)

[#034] sha256:eec0d7a5de661badb72ce0977cd57987243e8386983508ad3769fda2f294925c - 0.0% (1.89 KB)

[#035] sha256:369fd21a8f01a0a6110d7896565635ef7ba79ba21857dad1adc673a06f04bd91 - 0.0% (812 Bytes)

[#036] sha256:3140a8302c2886829df65b036c6d95efe603ef8a822cd5e4931e36480ab19d32 - 0.0% (1.17 KB)


History
2026-05-05 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'amd64' out/ 'trixie' '@1777939200'

2026-09-27 11:19:04 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-09-27 11:19:04 UTC (buildkit.dockerfile.v0)

ENV PYTHONDONTWRITEBYTECODE=1

2026-09-27 11:19:04 UTC (buildkit.dockerfile.v0)

ENV PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/tools

2026-09-27 11:19:04 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y --no-install-recommends ca-certificates curl iputils-ping python3 python-is-python3 gcc g++ make cmake python3-dev python3-venv libffi-dev libolm-dev libatomic1 procps git openssh-client docker-cli xz-utils libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libcairo2 libcups2t64 libdbus-1-3 libgbm1 libglib2.0-0t64 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 && rm -rf /var/lib/apt/lists/* # buildkit

2026-09-27 11:19:04 UTC (buildkit.dockerfile.v0)

ARG HERMES_BOT_DESKTOP=1

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

RUN |1 HERMES_BOT_DESKTOP=1 /bin/sh -c if [ "$HERMES_BOT_DESKTOP" = "1" ]; then apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 install -y --no-install-recommends tigervnc-standalone-server xfce4-panel xfwm4 xfdesktop4 xfce4-settings xfce4-terminal dbus-x11 x11-xserver-utils x11-utils x11-xkb-utils xauth fonts-dejavu-core chromium && rm -rf /var/lib/apt/lists/*; fi # buildkit

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

COPY /opt/sqlite-fixed/lib/libsqlite3.so.3.53.4 /usr/local/lib/ # buildkit

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

RUN |1 HERMES_BOT_DESKTOP=1 /bin/sh -c ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so.0 && ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so && printf '/usr/local/lib\n' > /etc/ld.so.conf.d/000-sqlite-fixed.conf && ldconfig && python3 -c "import sqlite3, sys; v = sqlite3.sqlite_version_info; sys.exit(f'linked SQLite {sqlite3.sqlite_version} still has the WAL-reset bug') if v < (3, 51, 3) else None; db = sqlite3.connect(':memory:'); db.execute(\"CREATE VIRTUAL TABLE docs USING fts5(content, tokenize='trigram')\"); db.execute(\"INSERT INTO docs VALUES ('hermes')\"); sys.exit('SQLite FTS5 trigram self-test failed') if db.execute(\"SELECT count(*) FROM docs WHERE docs MATCH 'erm'\").fetchone()[0] != 1 else None; db.close()" # buildkit

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_VERSION=3.2.3.0

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; case "${TARGETARCH:-amd64}" in amd64) s6_arch="x86_64"; s6_arch_sha="${S6_OVERLAY_X86_64_SHA256}" ;; arm64) s6_arch="aarch64"; s6_arch_sha="${S6_OVERLAY_AARCH64_SHA256}" ;; *) echo "Unsupported TARGETARCH=${TARGETARCH} for s6-overlay" >&2; exit 1 ;; esac; base="https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}"; curl -fsSL --retry 3 -o /tmp/s6-overlay-noarch.tar.xz "${base}/s6-overlay-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-symlinks-noarch.tar.xz "${base}/s6-overlay-symlinks-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-arch.tar.xz "${base}/s6-overlay-${s6_arch}.tar.xz"; { printf '%s %s\n' "${S6_OVERLAY_NOARCH_SHA256}" /tmp/s6-overlay-noarch.tar.xz; printf '%s %s\n' "${s6_arch_sha}" /tmp/s6-overlay-arch.tar.xz; printf '%s %s\n' "${S6_OVERLAY_SYMLINKS_SHA256}" /tmp/s6-overlay-symlinks-noarch.tar.xz; } > /tmp/s6-overlay.sha256; sha256sum -c /tmp/s6-overlay.sha256; tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-arch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz; rm /tmp/s6-overlay-*.tar.xz /tmp/s6-overlay.sha256 # buildkit

2026-09-27 15:39:23 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/tini-shim.sh /usr/bin/tini # buildkit

2026-09-27 15:39:24 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c useradd -u 10000 -m -d /opt/data hermes # buildkit

2026-09-27 15:39:24 UTC (buildkit.dockerfile.v0)

WORKDIR /opt/hermes

2026-09-27 15:39:24 UTC (buildkit.dockerfile.v0)

ENV HERMES_RUNTIME_DIR=/opt/hermes/tools

2026-09-27 15:39:24 UTC (buildkit.dockerfile.v0)

COPY pm/ pm/ # buildkit

2026-09-27 15:39:24 UTC (buildkit.dockerfile.v0)

COPY hermes_constants.py hermes_constants.py # buildkit

2026-09-27 15:39:24 UTC (buildkit.dockerfile.v0)

COPY hermes_cli/__init__.py hermes_cli/runtime_state.py hermes_cli/ # buildkit

2026-09-27 15:39:24 UTC (buildkit.dockerfile.v0)

COPY scripts/bundles/payload.py scripts/bundles/payload.py # buildkit

2026-09-27 15:39:47 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; python3 -c 'from pm import ensure; [ensure(name, explicit=True) for name in ("uv", "chromium", "npm", "ffmpeg", "ripgrep")]'; python3 -c 'from pathlib import Path; from pm import installed_package; [Path("/usr/local/bin", command).symlink_to(installed_package(package).binary) for command, package in (("python3", "python"), ("node", "node"), ("npm", "npm"), ("ffmpeg", "ffmpeg"), ("rg", "ripgrep"))]; Path("/usr/local/bin/ffprobe").symlink_to(installed_package("ffmpeg").binary.with_name("ffprobe"))'; ffmpeg -version >/dev/null; ffprobe -version >/dev/null; rg --version >/dev/null; python3 -c 'import shutil; from pathlib import Path; from pm import env_for; Path("/usr/local/bin/npx").symlink_to(shutil.which("npx", path=env_for("npm", base_env={})["PATH"]))'; node --version; npm --version; browser_bin="$(python3 -c 'from pm import installed_package; print(installed_package("chromium").binary)')"; test -n "$browser_bin"; "$browser_bin" --version; mkdir -p /etc/hermes; printf '%s' "$browser_bin" > /etc/hermes/agent-browser-executable-path # buildkit

2026-09-27 15:39:48 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -c 'from pathlib import Path; from pm import stage_manager_runtime; from scripts.bundles.payload import seal_pm_runtime; root = Path("/opt/hermes"); python = Path("/usr/local/bin/python3").resolve(); stage_manager_runtime(python=python, destination=root / "pm-runtime", project=root / "pm"); seal_pm_runtime(root, python)' # buildkit

2026-09-27 15:39:48 UTC (buildkit.dockerfile.v0)

ENV HERMES_PYTHON=/usr/local/bin/python3

2026-09-27 15:39:48 UTC (buildkit.dockerfile.v0)

ENV CC=gcc CXX=g++

2026-09-27 15:39:48 UTC (buildkit.dockerfile.v0)

COPY pyproject.toml uv.lock ./ # buildkit

2026-09-27 15:39:48 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c touch ./README.md # buildkit

2026-09-27 15:40:31 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -m pm.build_env --source /opt/hermes --python /usr/local/bin/python3 --out /opt/hermes/.venv --no-install-project --sealed --extra all --extra messaging --extra otlp --extra anthropic --extra bedrock --extra azure-identity --extra matrix --extra google-chat # buildkit

2026-09-27 15:40:42 UTC (buildkit.dockerfile.v0)

COPY /opt/hermes/node_modules/typescript /opt/hermes/node_modules/typescript # buildkit

2026-09-27 15:40:42 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/node_modules/.bin && ln -s ../typescript/bin/tsc /opt/hermes/node_modules/.bin/tsc # buildkit

2026-09-27 15:40:42 UTC (buildkit.dockerfile.v0)

COPY plugins/platforms/photon/sidecar/package.json plugins/platforms/photon/sidecar/package-lock.json plugins/platforms/photon/sidecar/patch-spectrum-mixed-attachments.mjs plugins/platforms/photon/sidecar/ # buildkit

2026-09-27 15:40:44 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c cd plugins/platforms/photon/sidecar && npm ci --no-audit --fetch-retries=5 && npm cache clean --force # buildkit

2026-09-27 15:40:44 UTC (buildkit.dockerfile.v0)

COPY /opt/products/tui /opt/hermes/ui-tui # buildkit

2026-09-27 15:40:44 UTC (buildkit.dockerfile.v0)

COPY /opt/products/web /opt/hermes/hermes_cli/web_dist # buildkit

2026-09-27 15:40:44 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix # buildkit

2026-09-27 15:40:44 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/hermes-runtime && chmod 0700 /tmp/hermes-runtime # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

COPY --chmod=a+rX,go-w . . # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c /opt/hermes/.venv/bin/python -m docker.build_agent # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

USER root

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/bin && cp /opt/hermes/docker/hermes-exec-shim.sh /opt/hermes/bin/hermes && chmod 0755 /opt/hermes /opt/hermes/bin/hermes && printf 'docker\n' > /opt/hermes/.install_method # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; if [ ! -f /opt/hermes/install-stamp.json ]; then printf '{"schemaVersion":2,"commit":"0000000000000000000000000000000000000000","distribution":"docker","source":"fallback","updateMechanism":"external"}\n' > /opt/hermes/install-stamp.json; fi; python3 -c 'import json; from pathlib import Path; path = Path("/opt/hermes/install-stamp.json"); stamp = json.loads(path.read_text()); stamp["pmRuntime"] = "/opt/hermes/pm-runtime"; path.write_text(json.dumps(stamp) + "\n")'; mkdir -p /etc/hermes; python3 -c 'import json, pathlib, tomllib; project = tomllib.loads(pathlib.Path("/opt/hermes/pyproject.toml").read_text(encoding="utf-8"))["project"]; stamp = json.loads(pathlib.Path("/opt/hermes/install-stamp.json").read_text(encoding="utf-8")); commit = stamp.get("commit"); revision = commit if commit and set(commit) != {"0"} else None; marker = pathlib.Path("/etc/hermes/image-provenance.json"); marker.write_text(json.dumps({"schema": 1, "deployment_kind": "image", "manager": "docker", "image": "nousresearch/hermes-agent", "version": project["version"], "revision": revision}, sort_keys=True, separators=(",", ":")) + "\n", encoding="utf-8"); marker.chmod(0o444)' # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

COPY docker/s6-rc.d/ /etc/s6-overlay/s6-rc.d/ # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /etc/cont-init.d && printf '#!/command/with-contenv sh\nexec /opt/hermes/docker/stage2-hook.sh\n' > /etc/cont-init.d/01-hermes-setup && chmod +x /etc/cont-init.d/01-hermes-setup # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/cont-init.d/015-supervise-perms /etc/cont-init.d/015-supervise-perms # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/cont-init.d/02-reconcile-profiles /etc/cont-init.d/02-reconcile-profiles # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

ENV HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

ENV HERMES_TUI_DIR=/opt/hermes/ui-tui

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

ENV HERMES_HOME=/opt/data

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

ENV HERMES_WRITE_SAFE_ROOT=/opt/data

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

ENV XDG_RUNTIME_DIR=/tmp/hermes-runtime

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/hermes-exec-shim.sh /opt/hermes/bin/hermes # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/entrypoint-dispatch.sh /opt/hermes/docker/entrypoint-dispatch.sh # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

ENV PATH=/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/data && chmod 0644 /opt/hermes/tools/facts.json && rm -f /opt/hermes/.venv/.lock /opt/hermes/pm-runtime/.lock # buildkit

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

VOLUME [/opt/data]

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/opt/hermes/docker/entrypoint-dispatch.sh"]

2026-09-27 15:40:45 UTC (buildkit.dockerfile.v0)

CMD []

Details
Created

2026-09-27 15:41:48 UTC

Size

1.26 GB

Content Digest
Labels
  • org.opencontainers.image.revision
    6f7a7991bb069db07ae74a479823ce8310f8c7e0

Environment
CC

gcc

CXX

g++

HERMES_HOME

/opt/data

HERMES_PYTHON

/usr/local/bin/python3

HERMES_RUNTIME_DIR

/opt/hermes/tools

HERMES_TUI_DIR

/opt/hermes/ui-tui

HERMES_WEB_DIST

/opt/hermes/hermes_cli/web_dist

HERMES_WRITE_SAFE_ROOT

/opt/data

PATH

/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PLAYWRIGHT_BROWSERS_PATH

/opt/hermes/tools

PYTHONDONTWRITEBYTECODE

1

PYTHONUNBUFFERED

1

XDG_RUNTIME_DIR

/tmp/hermes-runtime


Layers

[#000] sha256:b5d74b688654dda99557234223479d1600781c2797759908abb12a2e782ab1ad - 3.67% (47.4 MB)

[#001] sha256:44dad65e084e6a2c097f7397b89c66c01610028dcecc8fcd06574e4b5f5213f1 - 22.18% (286 MB)

[#002] sha256:d6e5641246de77ccb312864b18d7fb750a84aed5265fb3781341b1dd797ec360 - 17.44% (225 MB)

[#003] sha256:62a73671ed346e9a1c61209114a009f07dbd080a76ef60938fb7f11c775b69bd - 0.07% (871 KB)

[#004] sha256:cd11b3e98eb214cf44273ca08e8567e210ff6585c004f8292d26a4a193367431 - 0.0% (8.52 KB)

[#005] sha256:c580994f5f7f2bca589793756f83c6079b9dcb3a9b7e5d42a8d9c35a2b7cb7e6 - 0.24% (3.12 MB)

[#006] sha256:57e22de375fcb7548f9aeada259b10c7cc47ba5b1853c54f9d269878a32215f2 - 0.0% (1.43 KB)

[#007] sha256:8442174df9c5c9ce450a28f11a4ade9f0e2de4c600a20e81e570b813142ec3ea - 0.0% (3.24 KB)

[#008] sha256:556be4aab66117d14444547a78ce57d317dea6e3f50e1053e694695060513476 - 0.0% (115 Bytes)

[#009] sha256:d4a5701032ce461f5ad329cfdc160b532e9d391c3aff22ce2f3a8058d6df5da3 - 0.01% (163 KB)

[#010] sha256:784de1f744c296b1b7f109be9662ca460d01b8e3015299d212173f48fc91e806 - 0.0% (20.9 KB)

[#011] sha256:b65776cf72abbe1e7fe484fe3aec63dd23cbcfc80f7a2d21409e4d908711e1a0 - 0.0% (4.71 KB)

[#012] sha256:120cad1c53e2ea127ee31c35df04439b09a98bf7e988a42adc28603c9e20b573 - 0.0% (3.07 KB)

[#013] sha256:67e15e9088aafce14eb61c70fcffeaad60e28585e0f29421491a3bc9bf95214d - 42.82% (553 MB)

[#014] sha256:99ee7df832dde9e4da6be9ff5f9d1b0c5c899cafa78dd48dca9e257a3c420705 - 0.05% (597 KB)

[#015] sha256:e4c0609db391f54a89f4dded16f8847db01b1a2dc03c1cdca7d3024d26e8284b - 0.03% (353 KB)

[#016] sha256:002401bbbb1733365aa4d6acee37c13302e9f3a81dc23d1df1a44503c3b3f214 - 0.0% (154 Bytes)

[#017] sha256:517a16ef47baf70f27ea98c3cac82abd066bc99957485395c7c8cbb2252f9353 - 10.13% (131 MB)

[#018] sha256:fbdb45ff6ab9d35ba0eefb5f1e66330487363e532ecf73d7532465e0c57d9496 - 0.34% (4.34 MB)

[#019] sha256:fac5d2624dad788e12cde0fa4b5bcb2a3ea8c722535958894340f2278858f2f1 - 0.0% (201 Bytes)

[#020] sha256:6cbb5335e07b8943eca32a6e837fb5cd17ed71d7a06fc24d1f4a2e2e618df71f - 0.0% (15.6 KB)

[#021] sha256:45113d91e1bdc39782edcaa516ef76fbf24a7a2c7d62776a4f7d973446348ef2 - 1.22% (15.7 MB)

[#022] sha256:541a20ef50549ab0daf972069ed71834815f7fde5f718e751bf2f6c81c9adfb2 - 0.06% (754 KB)

[#023] sha256:68b725a21d95a1412eec0e8818fb3aa954926b48fad5cce13ac3c69c73dae24a - 0.11% (1.47 MB)

[#024] sha256:620af9f0f374162c5237b0a5f5a0533a10a04cf5b56969a5555f55e3c11b1703 - 0.0% (116 Bytes)

[#025] sha256:42674783f3fddf52a59b3ea0018c37303e1dae72554c1d1c5aaa05c0fdee06f8 - 0.0% (128 Bytes)

[#026] sha256:eefbaad6f4f610e0a5d41a3df2d1527b20685f02c34e1a856eceb93ed9e4d3a8 - 1.58% (20.3 MB)

[#027] sha256:ed7cdfb2a1fc30dc506cb02eaf70be96c12ad20665140d26721f5640d667d76a - 0.06% (759 KB)

[#028] sha256:e78547167470394d5661d32201012cd3899c8f9b58e82214c8a9df2c1b37861e - 0.0% (1.93 KB)

[#029] sha256:8825321dc17cece1f032b3e1f201f7d10e6f8fe0ac3425eeb0d5845b9fbc0fde - 0.0% (544 Bytes)

[#030] sha256:9e45c351df40bcd22f21a210ac7ec5b0c2d13e30f907ffd290746f796ef89402 - 0.0% (2.65 KB)

[#031] sha256:ce42695890249fd6ab191dee6f3336f84e0fdf72cd6ad78f45d2a6c5bde083cc - 0.0% (209 Bytes)

[#032] sha256:b723591621e04e599db4b9021a744005cd039e6256b61376b769b5ba7b4095ad - 0.0% (1.9 KB)

[#033] sha256:43bbeb880266f3e0cb28328c0901db5c16b416d2024dc71994d21dc91937b970 - 0.0% (1.18 KB)

[#034] sha256:5c8e7f1a0bf670b5129c1a46cc79ac0634fb13f1baf641fbc9ec2ecd3fad6184 - 0.0% (1.89 KB)

[#035] sha256:e9c1d32e92435d39f3a8d6595c20320f34d5168092910118291bcccf2766bcea - 0.0% (810 Bytes)

[#036] sha256:90041ea079a7ffe38d7c19066cd58e65e7f89c9c794183ca11e40b214f8b7165 - 0.0% (1.17 KB)


History
2026-05-05 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'arm64' out/ 'trixie' '@1777939200'

2026-09-27 08:50:34 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-09-27 08:50:34 UTC (buildkit.dockerfile.v0)

ENV PYTHONDONTWRITEBYTECODE=1

2026-09-27 08:50:34 UTC (buildkit.dockerfile.v0)

ENV PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/tools

2026-09-27 08:50:34 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y --no-install-recommends ca-certificates curl iputils-ping python3 python-is-python3 gcc g++ make cmake python3-dev python3-venv libffi-dev libolm-dev libatomic1 procps git openssh-client docker-cli xz-utils libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libcairo2 libcups2t64 libdbus-1-3 libgbm1 libglib2.0-0t64 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 && rm -rf /var/lib/apt/lists/* # buildkit

2026-09-27 08:50:34 UTC (buildkit.dockerfile.v0)

ARG HERMES_BOT_DESKTOP=1

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

RUN |1 HERMES_BOT_DESKTOP=1 /bin/sh -c if [ "$HERMES_BOT_DESKTOP" = "1" ]; then apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 install -y --no-install-recommends tigervnc-standalone-server xfce4-panel xfwm4 xfdesktop4 xfce4-settings xfce4-terminal dbus-x11 x11-xserver-utils x11-utils x11-xkb-utils xauth fonts-dejavu-core chromium && rm -rf /var/lib/apt/lists/*; fi # buildkit

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

COPY /opt/sqlite-fixed/lib/libsqlite3.so.3.53.4 /usr/local/lib/ # buildkit

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

RUN |1 HERMES_BOT_DESKTOP=1 /bin/sh -c ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so.0 && ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so && printf '/usr/local/lib\n' > /etc/ld.so.conf.d/000-sqlite-fixed.conf && ldconfig && python3 -c "import sqlite3, sys; v = sqlite3.sqlite_version_info; sys.exit(f'linked SQLite {sqlite3.sqlite_version} still has the WAL-reset bug') if v < (3, 51, 3) else None; db = sqlite3.connect(':memory:'); db.execute(\"CREATE VIRTUAL TABLE docs USING fts5(content, tokenize='trigram')\"); db.execute(\"INSERT INTO docs VALUES ('hermes')\"); sys.exit('SQLite FTS5 trigram self-test failed') if db.execute(\"SELECT count(*) FROM docs WHERE docs MATCH 'erm'\").fetchone()[0] != 1 else None; db.close()" # buildkit

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=arm64

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_VERSION=3.2.3.0

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581

2026-09-27 15:39:06 UTC (buildkit.dockerfile.v0)

ARG S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; case "${TARGETARCH:-amd64}" in amd64) s6_arch="x86_64"; s6_arch_sha="${S6_OVERLAY_X86_64_SHA256}" ;; arm64) s6_arch="aarch64"; s6_arch_sha="${S6_OVERLAY_AARCH64_SHA256}" ;; *) echo "Unsupported TARGETARCH=${TARGETARCH} for s6-overlay" >&2; exit 1 ;; esac; base="https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}"; curl -fsSL --retry 3 -o /tmp/s6-overlay-noarch.tar.xz "${base}/s6-overlay-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-symlinks-noarch.tar.xz "${base}/s6-overlay-symlinks-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-arch.tar.xz "${base}/s6-overlay-${s6_arch}.tar.xz"; { printf '%s %s\n' "${S6_OVERLAY_NOARCH_SHA256}" /tmp/s6-overlay-noarch.tar.xz; printf '%s %s\n' "${s6_arch_sha}" /tmp/s6-overlay-arch.tar.xz; printf '%s %s\n' "${S6_OVERLAY_SYMLINKS_SHA256}" /tmp/s6-overlay-symlinks-noarch.tar.xz; } > /tmp/s6-overlay.sha256; sha256sum -c /tmp/s6-overlay.sha256; tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-arch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz; rm /tmp/s6-overlay-*.tar.xz /tmp/s6-overlay.sha256 # buildkit

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/tini-shim.sh /usr/bin/tini # buildkit

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c useradd -u 10000 -m -d /opt/data hermes # buildkit

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

WORKDIR /opt/hermes

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

ENV HERMES_RUNTIME_DIR=/opt/hermes/tools

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

COPY pm/ pm/ # buildkit

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

COPY hermes_constants.py hermes_constants.py # buildkit

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

COPY hermes_cli/__init__.py hermes_cli/runtime_state.py hermes_cli/ # buildkit

2026-09-27 15:39:07 UTC (buildkit.dockerfile.v0)

COPY scripts/bundles/payload.py scripts/bundles/payload.py # buildkit

2026-09-27 15:39:39 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; python3 -c 'from pm import ensure; [ensure(name, explicit=True) for name in ("uv", "chromium", "npm", "ffmpeg", "ripgrep")]'; python3 -c 'from pathlib import Path; from pm import installed_package; [Path("/usr/local/bin", command).symlink_to(installed_package(package).binary) for command, package in (("python3", "python"), ("node", "node"), ("npm", "npm"), ("ffmpeg", "ffmpeg"), ("rg", "ripgrep"))]; Path("/usr/local/bin/ffprobe").symlink_to(installed_package("ffmpeg").binary.with_name("ffprobe"))'; ffmpeg -version >/dev/null; ffprobe -version >/dev/null; rg --version >/dev/null; python3 -c 'import shutil; from pathlib import Path; from pm import env_for; Path("/usr/local/bin/npx").symlink_to(shutil.which("npx", path=env_for("npm", base_env={})["PATH"]))'; node --version; npm --version; browser_bin="$(python3 -c 'from pm import installed_package; print(installed_package("chromium").binary)')"; test -n "$browser_bin"; "$browser_bin" --version; mkdir -p /etc/hermes; printf '%s' "$browser_bin" > /etc/hermes/agent-browser-executable-path # buildkit

2026-09-27 15:39:40 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -c 'from pathlib import Path; from pm import stage_manager_runtime; from scripts.bundles.payload import seal_pm_runtime; root = Path("/opt/hermes"); python = Path("/usr/local/bin/python3").resolve(); stage_manager_runtime(python=python, destination=root / "pm-runtime", project=root / "pm"); seal_pm_runtime(root, python)' # buildkit

2026-09-27 15:39:40 UTC (buildkit.dockerfile.v0)

ENV HERMES_PYTHON=/usr/local/bin/python3

2026-09-27 15:39:40 UTC (buildkit.dockerfile.v0)

ENV CC=gcc CXX=g++

2026-09-27 15:39:40 UTC (buildkit.dockerfile.v0)

COPY pyproject.toml uv.lock ./ # buildkit

2026-09-27 15:39:40 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c touch ./README.md # buildkit

2026-09-27 15:41:16 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -m pm.build_env --source /opt/hermes --python /usr/local/bin/python3 --out /opt/hermes/.venv --no-install-project --sealed --extra all --extra messaging --extra otlp --extra anthropic --extra bedrock --extra azure-identity --extra matrix --extra google-chat # buildkit

2026-09-27 15:41:42 UTC (buildkit.dockerfile.v0)

COPY /opt/hermes/node_modules/typescript /opt/hermes/node_modules/typescript # buildkit

2026-09-27 15:41:42 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/node_modules/.bin && ln -s ../typescript/bin/tsc /opt/hermes/node_modules/.bin/tsc # buildkit

2026-09-27 15:41:42 UTC (buildkit.dockerfile.v0)

COPY plugins/platforms/photon/sidecar/package.json plugins/platforms/photon/sidecar/package-lock.json plugins/platforms/photon/sidecar/patch-spectrum-mixed-attachments.mjs plugins/platforms/photon/sidecar/ # buildkit

2026-09-27 15:41:47 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c cd plugins/platforms/photon/sidecar && npm ci --no-audit --fetch-retries=5 && npm cache clean --force # buildkit

2026-09-27 15:41:47 UTC (buildkit.dockerfile.v0)

COPY /opt/products/tui /opt/hermes/ui-tui # buildkit

2026-09-27 15:41:47 UTC (buildkit.dockerfile.v0)

COPY /opt/products/web /opt/hermes/hermes_cli/web_dist # buildkit

2026-09-27 15:41:47 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix # buildkit

2026-09-27 15:41:47 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/hermes-runtime && chmod 0700 /tmp/hermes-runtime # buildkit

2026-09-27 15:41:47 UTC (buildkit.dockerfile.v0)

COPY --chmod=a+rX,go-w . . # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c /opt/hermes/.venv/bin/python -m docker.build_agent # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

USER root

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/bin && cp /opt/hermes/docker/hermes-exec-shim.sh /opt/hermes/bin/hermes && chmod 0755 /opt/hermes /opt/hermes/bin/hermes && printf 'docker\n' > /opt/hermes/.install_method # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; if [ ! -f /opt/hermes/install-stamp.json ]; then printf '{"schemaVersion":2,"commit":"0000000000000000000000000000000000000000","distribution":"docker","source":"fallback","updateMechanism":"external"}\n' > /opt/hermes/install-stamp.json; fi; python3 -c 'import json; from pathlib import Path; path = Path("/opt/hermes/install-stamp.json"); stamp = json.loads(path.read_text()); stamp["pmRuntime"] = "/opt/hermes/pm-runtime"; path.write_text(json.dumps(stamp) + "\n")'; mkdir -p /etc/hermes; python3 -c 'import json, pathlib, tomllib; project = tomllib.loads(pathlib.Path("/opt/hermes/pyproject.toml").read_text(encoding="utf-8"))["project"]; stamp = json.loads(pathlib.Path("/opt/hermes/install-stamp.json").read_text(encoding="utf-8")); commit = stamp.get("commit"); revision = commit if commit and set(commit) != {"0"} else None; marker = pathlib.Path("/etc/hermes/image-provenance.json"); marker.write_text(json.dumps({"schema": 1, "deployment_kind": "image", "manager": "docker", "image": "nousresearch/hermes-agent", "version": project["version"], "revision": revision}, sort_keys=True, separators=(",", ":")) + "\n", encoding="utf-8"); marker.chmod(0o444)' # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

COPY docker/s6-rc.d/ /etc/s6-overlay/s6-rc.d/ # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /etc/cont-init.d && printf '#!/command/with-contenv sh\nexec /opt/hermes/docker/stage2-hook.sh\n' > /etc/cont-init.d/01-hermes-setup && chmod +x /etc/cont-init.d/01-hermes-setup # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/cont-init.d/015-supervise-perms /etc/cont-init.d/015-supervise-perms # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/cont-init.d/02-reconcile-profiles /etc/cont-init.d/02-reconcile-profiles # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

ENV HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

ENV HERMES_TUI_DIR=/opt/hermes/ui-tui

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

ENV HERMES_HOME=/opt/data

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

ENV HERMES_WRITE_SAFE_ROOT=/opt/data

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

ENV XDG_RUNTIME_DIR=/tmp/hermes-runtime

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/hermes-exec-shim.sh /opt/hermes/bin/hermes # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker/entrypoint-dispatch.sh /opt/hermes/docker/entrypoint-dispatch.sh # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

ENV PATH=/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

RUN |7 HERMES_BOT_DESKTOP=1 TARGETARCH=arm64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/data && chmod 0644 /opt/hermes/tools/facts.json && rm -f /opt/hermes/.venv/.lock /opt/hermes/pm-runtime/.lock # buildkit

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

VOLUME [/opt/data]

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/opt/hermes/docker/entrypoint-dispatch.sh"]

2026-09-27 15:41:48 UTC (buildkit.dockerfile.v0)

CMD []

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete