跳到主要内容

singularity

✓ Officialv1.0.0★ 348

Singularity/Apptainer terminal backend: Hermes's terminal, file and code tools run inside a hardened, rootless container on this machine (--containall --no-home), with CPU/memory limits and an optional per-session persistent overlay (`hermes config set terminal.backend singularity`; image from `terminal.singularity_image`). Formerly built into Hermes core; existing users are migrated automatically.

Open in Hermes Desktop
hermes plugins install singularity

README

From the reviewed commit d46aced ↗; it updates when the author re-pins.

Singularity/Apptainer for Hermes Agent

Part of the Hermes Official Plugins, Nous Research's official plugins for Hermes Agent. Formerly built into Hermes core as tools/environments/singularity.py.

A terminal backend for Hermes Agent: the terminal, file and code tools run inside a Singularity/Apptainer container on this machine. It is meant for HPC clusters and shared machines where Docker isn't available.

  • Hardened: --containall --no-home, so the container gets its own namespaces and never sees your home directory. Your skills and registered credential files are bind-mounted read-only.
  • Rootless: runs as you, through apptainer (preferred) or singularity.
  • Limits: terminal.container_cpu and terminal.container_memory become --cpus / --memory.
  • Persistence: with terminal.container_persistent: true (the default) each session writes to an overlay directory that outlives the container instance until the Hermes process exits; with false writes go to a tmpfs and vanish with the instance.
  • Screen and browser: Bot Desktop, computer_use and the browser follow the terminal into the container (the image needs the desktop stack; nousresearch/hermes-sandbox:desktop has it).

Install

hermes plugins install singularity

or straight from this repo: hermes plugins install NousResearch/hermes-official-plugins#singularity.

Already used Singularity in Hermes? You don't need to do anything. hermes update, or the first start after updating, installs this plugin from the catalog for every profile whose terminal.backend is singularity. Your config keys and env vars are unchanged.

Needs the apptainer or singularity binary on PATH (install Apptainer). Linux only.

Use it

hermes config set terminal.backend singularity

or pick Singularity/Apptainer in hermes setup terminal. Settings (all optional):

terminal:
  backend: singularity
  singularity_image: "docker://nousresearch/hermes-sandbox:desktop"  # default: Hermes' sandbox image
  container_cpu: 1             # CPU cores (0 = no limit)
  container_memory: 5120       # MB (0 = no limit)
  container_persistent: true   # writable overlay per session (false = tmpfs)
Setting Env var What it does
terminal.singularity_image TERMINAL_SINGULARITY_IMAGE Image to run. docker://... URLs are built into a SIF once and cached; an existing .sif file (or sandbox directory) is used directly; library://, oras:// work as Apptainer takes them. A bare reference like python:3.12 means docker://python:3.12. config.yaml wins over the env var.
TERMINAL_SCRATCH_DIR Where overlays and the SIF cache live. Default: /scratch/$USER/hermes-agent when /scratch is writable (HPC convention), else TERMINAL_SANDBOX_DIR/singularity (~/.hermes/sandboxes/singularity).
APPTAINER_CACHEDIR SIF cache directory (default: <scratch>/.apptainer).
TERMINAL_DISK_WARNING_GB Warn in the log when the scratch overlays exceed this many GB (default 500).

Batch runs (batch_runner.py) that give each prompt its own image register it for this backend too.

What's different from the built-in backend

Nothing you configure. Two internals changed:

  • Core's process-exit sweep of <scratch>/hermes-* (which removed persistent overlays) now runs in the plugin, and only in a process that started a Singularity instance; core no longer creates the scratch directory on every exit.
  • The write-only singularity_snapshots.json file is gone: nothing ever read it.

Development

cd singularity
HERMES_AGENT_REPO=../../hermes-agent PYTHONPATH=../../hermes-agent python -m pytest -q

On a Hermes core that still ships the built-in backend the plugin registers nothing (core reserves the singularity name and serves it itself), so it is safe to install ahead of the core update.

Disclosure

accent-picker✓ Official★ 348

OKLCH accent colour picker for the Hermes Desktop status bar: drag it and the whole theme retints live, with palette commands to reset to the theme default or copy the current colour. A theme-authoring tool; the colour is scratch state and is never persisted. Desktop-only (desktop/plugin.js inside the plugin SDK surface); no agent tools, hooks, middleware or env vars.

Desktop
agent-importers✓ Official★ 348

`hermes import-agent`: import a Claude Code (~/.claude), Codex CLI (~/.codex) or Cursor (~/.cursor) setup into Hermes in one command. Instructions, Cursor rules and memories become memory entries, Bash permission rules become command allow/deny lists, MCP servers land in config.yaml and skills are copied; always previews first, and `--sync` re-imports sources that changed. Formerly built into Hermes core; profiles with a registered sync source are migrated automatically.

Tools
blender✓ Official★ 348

Official Blender Lab MCP server over stdio, pinned to upstream v1.0.3, with a Blender workflow skill. Requires Blender 5.1+, its separately installed MCP add-on, Git and uv. First startup downloads Python dependencies; prepare the uv environment before connecting.

Tools
bubblewrap✓ Official★ 348

Bubblewrap terminal backend for Linux: every terminal and execute_code command runs in its own bwrap sandbox on this machine at the host's own paths, with a read-only root, a writable working directory (per profile: restricted, workspace or network), SSH keys, cloud credentials and the Hermes home hidden, private temp and process directories, agent and docker sockets masked, and per-command memory, CPU and process limits (`hermes config set terminal.backend bubblewrap`).

Tools
claude-subscription-directsdk✓ Official★ 348

Experimental model provider that runs Hermes turns on a Claude Pro/Max subscription through the official Claude Code CLI (the Agent SDK path), so no separate API key or per-token bill. Requires the claude CLI installed and logged in; the plugin checks for it at load, in hermes model, in the pickers and before every request, and refuses cleanly with the install hint when it is missing.

Models
hermes-memory-wiki✓ Official★ 348

Memory Wiki dashboard tab: browsable subject pages and daily logs derived from local session history, plus a read-only Persistent Memory (MEMORY.md / USER.md) audit panel.

Desktop

← Back to the catalog · catalog built Oct 21, 2026