Hermes AI agent for FreeBSD https://hermes-agent.nousresearch.com/
  • Python 76.5%
  • TypeScript 20.5%
  • JavaScript 0.7%
  • TeX 0.6%
  • Shell 0.5%
  • Other 1.1%
Find a file Use this template
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Clawdie AI Assistant 91a647d5b0
Some checks failed
Deploy Site / deploy-vercel (push) Has been skipped
Deploy Site / deploy-docs (push) Has been skipped
Docker Build, Test, and Publish / build (amd64, type=gha,scope=docker-amd64, type=gha,mode=max,scope=docker-amd64, linux/amd64, ubuntu-latest) (push) Has been skipped
Docker Build, Test, and Publish / build (arm64, type=gha,scope=docker-arm64, type=gha,mode=max,scope=docker-arm64, linux/arm64, ubuntu-24.04-arm) (push) Has been skipped
Docker Build, Test, and Publish / publish (amd64, type=gha,scope=docker-amd64, type=gha,mode=max,scope=docker-amd64, linux/amd64, ubuntu-latest) (push) Has been skipped
Docker Build, Test, and Publish / publish (arm64, type=gha,scope=docker-arm64, type=gha,mode=max,scope=docker-arm64, linux/arm64, ubuntu-24.04-arm) (push) Has been skipped
Docker Build, Test, and Publish / merge (push) Has been skipped
CI / Check uv.lock (push) Has been cancelled
CI / check-common-ancestor (push) Has been cancelled
CI / check-attribution (push) Has been cancelled
CI / uv lock --check (push) Has been cancelled
CI / check-no-committed-infographics (push) Has been cancelled
CI / package-lock.json semantic diff (push) Has been cancelled
CI / Detect affected areas (push) Has been cancelled
CI / Python tests (push) Has been cancelled
CI / Python lints (push) Has been cancelled
CI / JS & TS checks (push) Has been cancelled
CI / Installer tests (push) Has been cancelled
CI / Desktop E2E (push) Has been cancelled
CI / Docs Site (push) Has been cancelled
CI / Deny unrelated histories (push) Has been cancelled
CI / Check contributors (push) Has been cancelled
CI / Check no committed infographics (push) Has been cancelled
CI / package-lock.json diff (push) Has been cancelled
CI / Lint Docker scripts (push) Has been cancelled
CI / Build&Test Docker image (push) Has been cancelled
CI / Supply-chain scan (push) Has been cancelled
CI / Review label gate (push) Has been cancelled
CI / CI review comment (live) (push) Has been cancelled
CI / All required checks pass (push) Has been cancelled
CI / CI timing report (push) Has been cancelled
CI / Generate slices (push) Has been cancelled
CI / save-durations (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / List npm workspaces (push) Has been cancelled
CI / PowerShell installer tests (push) Has been cancelled
CI / Playwright E2E (Linux) (push) Has been cancelled
CI / docs-site-checks (push) Has been cancelled
CI / Lint Dockerfile (hadolint) (push) Has been cancelled
CI / Lint docker/ shell scripts (shellcheck) (push) Has been cancelled
CI / build (amd64, type=gha,scope=docker-amd64, type=gha,mode=max,scope=docker-amd64, linux/amd64, ubuntu-latest) (push) Has been cancelled
CI / build (arm64, type=gha,scope=docker-arm64, type=gha,mode=max,scope=docker-arm64, linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI / publish (amd64, type=gha,scope=docker-amd64, type=gha,mode=max,scope=docker-amd64, linux/amd64, ubuntu-latest) (push) Has been cancelled
CI / publish (arm64, type=gha,scope=docker-arm64, type=gha,mode=max,scope=docker-arm64, linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
CI / merge (push) Has been cancelled
Merge pull request 'docs/known-problems-followup' (#6) from docs/known-problems-followup into main
Reviewed-on: #6
2026-09-28 08:18:54 +00:00
.github ci: remove osv-scanner workflow (GitHub-specific, not on Forgejo) 2026-08-07 08:21:42 +02:00
.plans feat(gateway): iMessage-style message reactions — storage, RPC, agent tool, model context 2026-07-30 00:08:28 -05:00
acp_adapter fix(approval): classify CLI/TUI approval timeouts separately from explicit denials 2026-08-02 20:21:59 -07:00
agent feat(freebsd): FreeBSD layer on upstream/main 2026-08-07 01:48:13 +02:00
apps fmt(js): npm run fix on merge (#79521) 2026-08-05 16:51:56 +00:00
assets Update banner image to new version 2026-02-25 11:53:44 -08:00
contributors chore: map contributor email for rille111 2026-08-05 17:21:01 -07:00
cron fix(cron): lifecycle guard — never crash on binary referenced paths, stop matching lifecycle words inside SQL/text 2026-08-06 07:49:35 -07:00
datagen-config-examples feat: add WebResearchEnv RL environment for multi-step web research 2026-03-05 14:34:36 +00:00
docker fix(docker): gate the remaining every-boot chown walks (cron, pairing) 2026-08-02 21:54:10 +05:30
docs docs: require ancestry inventory and gate mirror activation 2026-09-28 07:55:38 +02:00
gateway fix(tests): fail hard when pytest resolves the production state.db (live-DB isolation guard) 2026-08-06 07:49:50 -07:00
hermes_cli feat(freebsd): FreeBSD layer on upstream/main 2026-08-07 01:48:13 +02:00
locales feat(diff): cross-surface /diff with staged/all/session modes 2026-07-26 18:28:20 -07:00
mcp-research-data bench: discovery-bound suite — paraphrase/absence/survey tasks isolate the listing's structural advantage 2026-07-26 08:26:09 -07:00
native/fts5_cjk feat(state): messages_fts_cjk — CJK-bigram index on the v23 external-content layout 2026-07-22 07:56:47 -07:00
nix fix(nix): update electron sha 2026-08-05 17:50:18 -04:00
optional-mcps fix(mcp): curate comfy-cloud default tool set + drop legacy packaging line 2026-07-29 19:48:30 -07:00
optional-skills refactor(skills): move polymarket to optional-skills/finance 2026-08-06 11:30:58 -07:00
packaging/freebsd feat(freebsd): FreeBSD layer on upstream/main 2026-08-07 01:48:13 +02:00
plugins fix: adapt Actual provider salvage to current main 2026-08-05 14:08:32 -07:00
providers perf(transport): gate prompt cache keys by provider capability 2026-08-03 17:17:05 +05:30
scripts fix(hook): enforce subprocess exit code validation against verdict contradictions 2026-09-23 19:54:43 +02:00
skills docs: require ancestry inventory and gate mirror activation 2026-09-28 07:55:38 +02:00
tests fix(hook): enforce subprocess exit code validation against verdict contradictions 2026-09-23 19:54:43 +02:00
tests-js fix(js): hoist eslint shared devDeps to workspace root 2026-07-31 13:42:03 -04:00
tools fix(delegation): bind steering to session generation 2026-08-06 09:40:27 -07:00
tui_gateway fix(delegation): bind steering to session generation 2026-08-06 09:40:27 -07:00
ui-tui perf(tui): bound reasoning-clean input to the displayed tail 2026-08-04 13:07:44 +05:30
web fix(dashboard): auto-reconnect the events WebSocket with backoff (supersedes #47876, #47921, #24315) (#79524) 2026-08-05 14:27:04 -06:00
website refactor(skills): move polymarket to optional-skills/finance 2026-08-06 11:30:58 -07:00
.dockerignore rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
.env.example feat(agent): add Upstage Solar as a model provider 2026-07-15 00:09:24 +05:30
.envrc feat(install): warn pip/Homebrew installs are unsupported (CLI, TUI, desktop) (#57225) 2026-07-07 21:13:19 -07:00
.gitattributes chore: enforce LF line endings for container entrypoints (#12181) 2026-06-05 09:54:01 +10:00
.gitignore test(install): prove updating from a release reaches this commit 2026-08-04 17:36:26 -04:00
.hadolint.yaml feat(docker): remove gosu from bundled image; s6-setuidgid handles privilege drop 2026-05-24 18:05:33 -07:00
.mailmap chore: add MestreY0d4-Uninter to AUTHOR_MAP and .mailmap 2026-04-15 15:03:28 -07:00
.npmrc fix: fix @nousresearch/ui version, update to npm 12 2026-08-01 17:05:42 -04:00
.nvmrc feat: add .nvmrc w/ node 26 2026-08-01 21:17:51 -04:00
.prettierignore fix(ci): js-autofix pushes via PR instead of direct push to main (#65186) 2026-07-15 17:19:19 -04:00
.prettierrc refactor(lint): hoist shared eslint + prettier config to root 2026-07-16 01:42:02 +05:30
.python-version fix: pin uv python to 3.11 2026-08-01 20:49:10 -04:00
AGENTS.md docs: adopt Clawdie operating plan and agent identity model 2026-09-23 09:40:11 +02:00
batch_runner.py fix: context-length fallback logging, batch trajectory durability, pool cleanup 2026-08-01 15:05:05 +05:30
CLAWDIE-PLAN.md docs: require ancestry inventory and gate mirror activation 2026-09-28 07:55:38 +02:00
cli-config.yaml.example docs(config): document wake_word.capture in cli-config.yaml.example 2026-08-05 10:06:49 -06:00
cli.py feat: /refine — run the memory/skill self-improvement review on demand 2026-08-05 22:40:51 -07:00
constraints-termux.txt feat: add tested Termux install path and EOF-aware gh auth 2026-04-09 16:24:53 -07:00
CONTRIBUTING.es.md docs(i18n): align translated CONTRIBUTING files with pyproject Python range (3.11-3.13) 2026-07-08 07:09:23 -07:00
CONTRIBUTING.md docs: purge stale xdist/_enforce_test_timeout test-runner references repo-wide 2026-07-29 23:16:18 -07:00
docker-compose.windows.yml feat(docker): add Windows Docker Desktop compatible compose file 2026-05-23 21:52:34 +05:30
docker-compose.yml docs(compose): update entrypoint comment for s6-overlay 2026-05-24 18:05:33 -07:00
Dockerfile fix(docker): drop corepack and add libatomic1 for the Node 26 bump 2026-08-01 21:28:58 -04:00
eslint.config.shared.mjs fix(js): hoist eslint shared devDeps to workspace root 2026-07-31 13:42:03 -04:00
flake.lock nix: update nixpkgs, update nodejs to 26 2026-07-31 13:42:03 -04:00
flake.nix fix(nix): follow root pyproject inputs 2026-07-05 13:53:20 -07:00
hermes fix: use argparse entrypoint in top-level launcher (#3874) 2026-03-29 21:54:36 -07:00
hermes-already-has-routines.md docs: stop recommending pip install; curl installer is the only supported path (#51743) 2026-06-24 00:14:32 -07:00
hermes_bootstrap.py fix(windows): platform._syscmd_ver stub in bootstrap + PYTHONUTF8 in desktop backend env 2026-07-24 15:47:12 -07:00
hermes_constants.py fix(install): restore installs — engines floor no shipping toolchain can meet 2026-08-01 22:56:52 -05:00
hermes_logging.py perf(config): one raw config.yaml parse per process instead of 3-4 2026-07-29 10:32:25 -07:00
hermes_state.py fix(tests): resolve guard's production root via expanduser, immune to Path.home monkeypatches 2026-08-06 07:49:50 -07:00
hermes_state_common.py refactor(state): consolidate SQL LIKE escaping onto one shared helper 2026-08-06 04:28:44 +05:30
hermes_state_portability.py fix(state): deduplicate session system prompts 2026-08-03 20:37:17 +05:30
hermes_state_schema.py fix(state): deduplicate session system prompts 2026-08-03 20:37:17 +05:30
hermes_state_search.py refactor(state): consolidate SQL LIKE escaping onto one shared helper 2026-08-06 04:28:44 +05:30
hermes_time.py perf(cli): TTFT round 2 — live reasoning by default, partial-line streaming, prompt-build cache, stale budget-warning docs (#59389) 2026-07-06 00:16:38 -07:00
LICENSE fix: restore missing MIT license file 2026-03-07 13:43:08 -08:00
log.txt fix: fix @nousresearch/ui version, update to npm 12 2026-08-01 17:05:42 -04:00
mcp_serve.py fix(mcp): avoid replaying historical events on startup (#13414) 2026-08-01 13:13:30 +05:30
mini_swe_runner.py fix: use lazy logging with %s formatting in logger calls 2026-08-02 23:17:40 +05:30
model_tools.py fix(cron): don't let a cron job inherit a kanban worker's dispatcher identity 2026-08-06 03:16:26 +05:30
package-lock.json fix(install): sync the lockfile engines mirrors with the manifests 2026-08-01 23:28:28 -05:00
package.json fix(install): sync the lockfile engines mirrors with the manifests 2026-08-01 23:28:28 -05:00
pyproject.toml chore: remove dead tomli dependency declaration 2026-08-04 14:34:24 +05:30
README-FreeBSD.md feat(freebsd): FreeBSD layer on upstream/main 2026-08-07 01:48:13 +02:00
README.es.md feat(i18n): add complete Spanish translation 2026-06-20 23:23:47 -07:00
README.md docs: adopt Clawdie operating plan and agent identity model 2026-09-23 09:40:11 +02:00
README.ur-pk.md docs: add Urdu translation of README (#40578) 2026-06-08 06:15:27 +05:30
README.zh-CN.md docs(README.zh-CN): update Windows install from 'not supported' to native PowerShell 2026-06-20 20:42:49 -07:00
run_agent.py feat: /refine — run the memory/skill self-improvement review on demand 2026-08-05 22:40:51 -07:00
SECURITY.es.md docs: sync overnight sweep with registry, gateway, curator, cron 2026-07-29 09:45:11 -07:00
SECURITY.md docs: sync overnight sweep with registry, gateway, curator, cron 2026-07-29 09:45:11 -07:00
setup-hermes.sh Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
setup.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
sqlite_leak_fix.png docs: add SQLite FD leak infographic and report updates for #69678 2026-07-23 11:45:07 -07:00
SYNCING-UPSTREAM.md docs: require ancestry inventory and gate mirror activation 2026-09-28 07:55:38 +02:00
toolset_distributions.py feat(moa): expose MoA presets as selectable virtual models (#46081) 2026-06-25 13:52:06 -07:00
toolsets.py Hermes can read the in-app browser (#79482) 2026-08-05 16:35:00 +00:00
trajectory_compressor.py fix: use lazy logging with %s formatting in logger calls 2026-08-02 23:17:40 +05:30
utils.py fix(utils): tighten create_mode semantics and close the yaml 0600 transit window 2026-08-06 05:00:17 +05:30
uv.lock chore: revert incidental uv.lock churn (no dependency changes) 2026-08-05 17:07:47 -07:00

hermes-bsd

FreeBSD-native build, packaging, and service layer for Hermes Agent, maintained by Clawdie at the canonical Forgejo instance:

https://code.clawdie.si/clawdie/hermes-bsd
ssh://git@code.clawdie.si:2222/clawdie/hermes-bsd.git   (SSH port 2222)

This repository is a downstream fork. Upstream (NousResearch/hermes-agent) moves fast; our own delta is a small, well-defined FreeBSD layer that gets replanted onto each fresh upstream tip. See SYNCING-UPSTREAM.md for the sync procedure and CLAWDIE-PLAN.md for the operating plan and its status.

Operator

The operator is the human maintainer. Agents report status, blockers, and verification results to the operator.

operator:  Samo
email:     hello@clawdie.si   (operator-only; never used for agent commits)

Agent identities

Each coding agent has one Forgejo account, one commit identity, and its own SSH keys (one per host). Agent commit emails are identity aliases, not mailboxes.

Agent Forgejo account Commit identity Notes
Hermes agent-hermes agent-hermes <agent-hermes@clawdie.si> orchestrator (debby)
Zot agent-zot agent-zot <agent-zot@clawdie.si> coding agent (debby)
Pi agent-pi agent-pi <agent-pi@clawdie.si> coding agent (valhala)
Codex agent-codex agent-codex <agent-codex@clawdie.si> coding agent (osa/valhala)
Gemini agent-gemini agent-gemini <agent-gemini@clawdie.si> runtime: agy (Antigravity CLI), formerly Gemini CLI

Telegram is a control-plane channel (operator commands such as future /rebuild), not a coding agent. It gets no Forgejo account and no push access; it dispatches approved, SHA-pinned workflows through the Forgejo API only.

Commit identity policy

Each agent checkout is configured once, repository-locally:

git config --local user.name  "agent-hermes"          # your agent name
git config --local user.email "agent-hermes@clawdie.si"

Before committing, confirm the identity that will sign the work:

git config --local --get-regexp '^user\.'

Commits use the checkout identity. Passing an unrelated identity through GIT_AUTHOR_* / GIT_COMMITTER_* environment overrides belongs to migration tooling only, never to normal work.

Branch workflow

feature branch  ->  push  ->  pull request  ->  operator review  ->  merge
  • main carries the upstream history plus the FreeBSD layer; it changes via reviewed pull requests.
  • Agents push feature branches only (feat/..., fix/..., docs/...).
  • The operator reviews and merges.
  • Verification before reporting: relevant tests, git status -sb clean of unstaged work, remote SHA equals local HEAD after push.

Platform boundary

The FreeBSD layer is a small set of files (verified 2026-09-23 by diffing this fork against its upstream merge point):

packaging/freebsd/hermes_daemon.in      rc.d gateway service (daemon(8))
packaging/freebsd/hermes_dashboard.in   rc.d dashboard service
packaging/freebsd/colibri_bridge.in     rc.d Colibri bridge
scripts/install-freebsd.sh              native installer (POSIX sh, pkg, uv)
hermes_cli/uninstall.py                 /usr/local/bin path handling
.github/workflows/ci.yml                CI adapted for Forgejo
README-FreeBSD.md                       service layouts + enable steps
SYNCING-UPSTREAM.md                     sync runbook
skills/github/hermes-bsd-upstream-sync/ sync skill

Runtime behavior differences that the layer exists for:

Aspect Linux (debby) FreeBSD (osa / valhala)
Enable service systemctl enable sysrc <svc>_enable=YES
Run service systemd / s6-overlay rc.d + daemon(8)
Packages apt pkg
Binary paths ~/.local/bin /usr/local/bin
Gateway persist systemd user service rc.d service / tmux session
venv full stripped; ensurepip bootstrap

Everything else is upstream code and refreshes with each sync. The full verified delta and open platform items are listed in CLAWDIE-PLAN.md.

SSH keys and secrets

  • One SSH authentication key per agent, per host (e.g. agent-hermes-debby, agent-pi-valhala), registered in the matching Forgejo account.
  • Private keys and passphrases are stored in Vaultwarden, organization clawdie:
    • agent-secrets — agent account metadata and API credentials
    • deploy — SSH key material
    • bootstrap — operator-only recovery material
  • Compromise of one host key is resolved by revoking that key only.
  • The Telegram bot token, when the control plane is added, lives in agent-secrets and is scoped to workflow dispatch.

Verification checklist

Before declaring work complete:

  1. git config --local --get-regexp '^user\.' — expected agent identity.
  2. Relevant tests pass on the touched area.
  3. git status -sb — committed and pushed; ahead 0.
  4. git ls-remote origin <branch> — remote SHA equals local HEAD.
  5. Pull request opened; report to the operator with commit, branch, and verification evidence.

Further reading