Skip to content

Make here.now skill metadata and credential handling safer - #5

Open
tmchow wants to merge 3 commits into
heredotnow:mainfrom
tmchow:fix/hermes-openclaw-safe-skill
Open

tmchow wants to merge 3 commits into
heredotnow:mainfrom
tmchow:fix/hermes-openclaw-safe-skill

Conversation

@tmchow

@tmchow tmchow commented May 30, 2026

Copy link
Copy Markdown

Summary

This PR makes the here.now skill safer for agent runtimes and makes its runtime metadata explicit for both Hermes and OpenClaw/ClawHub, while preserving the existing bundled helper-script model.

Important current-state note: until this PR is merged, the documented public install from heredotnow/skill still pulls the older skill behavior. The branch in this PR is the version that removes implicit credential-file reads and normalizes metadata.

Changes:

  • add/normalize metadata.hermes and metadata.openclaw frontmatter across the canonical, compatibility, and Hermes skill manifests
  • keep Hermes routing metadata explicit: category: devops, tags, homepage, and requires_toolsets: [terminal]
  • move the Hermes-specific skill path into hermes/devops/here.now and update the README install command
  • keep OpenClaw metadata explicit: emoji, homepage, runtime binary requirements (curl, file, jq), and optional env vars
  • remove primaryEnv from OpenClaw metadata because anonymous publishing works without credentials; HERENOW_API_KEY and HERENOW_DRIVE_TOKEN are listed as optional envVars instead
  • stop bundled helper scripts from reading ~/.herenow/credentials
  • document env-based credential handling and CI-only flag usage
  • describe the intended bundled helper-script model: small, portable, auditable scripts with explicit inputs and stable output contracts
  • document the current npm/CLI situation: herenowcli exists, but this repo does not identify it as an official here.now distribution channel, so the skill should not treat it as the official CLI unless here.now confirms and documents it
  • skip common sensitive files/directories by default during directory publishing: .env, .git/, .ssh/, .aws/, .gcloud/, .1password/, .hermes/, .herenow/, node_modules/, *.pem, *.key, and filenames containing credential or secret

Closes #4.

Rationale

Hermes currently blocks the official here.now skill because the bundled publish helper reads a credential file and then performs network publishing. Even for an official integration, that is a scanner-hostile shape: a skill-installed shell script can read local credentials, walk directories, and make authenticated network requests.

This PR does not weaken scanners and does not claim here.now has an official npm CLI. It keeps the existing script-based integration, but makes the scripts and manifests easier for scanners, users, and registries to reason about:

  • credentials come only from explicit env vars or explicit CI/scripting flags
  • anonymous publishing remains credential-free
  • OpenClaw metadata does not make the whole skill look credential-gated
  • Hermes metadata remains present and routeable
  • directory publishing avoids obvious local secrets by default

On the npm question: there is an npm package named herenowcli with herenow / here-now binaries, but I did not find repo/docs evidence that it is official or maintained by here.now. Until maintainers confirm that package, the safer PR posture is to document it as not an official integration surface and keep these helpers narrow/auditable. If here.now later adopts an official CLI, the skill should prefer that documented CLI and delete duplicated helper logic where practical.

Verification

Ran locally:

git diff --check
bash -n here-now/scripts/publish.sh skills/here-now/scripts/publish.sh hermes/devops/here.now/scripts/publish.sh here-now/scripts/drive.sh skills/here-now/scripts/drive.sh hermes/devops/here.now/scripts/drive.sh

Validated frontmatter/content structurally with Ruby YAML parsing:

  • all three SKILL.md files parse as YAML frontmatter
  • all three include metadata.hermes.category: devops
  • all three include metadata.hermes.requires_toolsets: [terminal]
  • all three include metadata.openclaw.requires.bins: [curl, file, jq]
  • all three list HERENOW_API_KEY and HERENOW_DRIVE_TOKEN as optional OpenClaw env vars
  • none of the OpenClaw metadata uses primaryEnv, because credentials are not required for anonymous publishing
  • Hermes skill keeps the canonical Hermes name/path: hermes/devops/here.now/SKILL.md

Ran Hermes skill security scan directly against the local Hermes skill bundle:

Scan: here.now (official/builtin)  Verdict: SAFE
Decision: ALLOWED — Allowed (builtin source, safe verdict)

Runtime credential-file check:

  • created a fake ~/.herenow/credentials
  • ran publish.sh with HERENOW_API_KEY / HERENOW_DRIVE_TOKEN unset and a localhost API base
  • observed anonymous publish network failure rather than credential/non-default-base refusal, proving the helper did not read the credential file
  • ran drive.sh default with the same fake credential file and unset env vars; it correctly reported missing explicit credentials

Also checked the mirrored helper scripts remain synchronized by SHA-256 across canonical, compatibility, and Hermes copies.

@tmchow
tmchow force-pushed the fix/hermes-openclaw-safe-skill branch from 3df023e to fd72f56 Compare May 30, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make bundled here.now skill scripts scanner-friendly

1 participant