Skip to main content

Runtime guardian for autonomous agents (OSS companion to Hermes Warden)

Project description

Suy Sideguy

Runtime safety guard for autonomous agents.

Suy Sideguy watches a running agent process and decides whether actions should be SAFE, FLAGGED, or KILLED based on your policy.

OSS companion to Hermes Warden.


What this tool is (and is not)

✅ What it does

  • Watches process, file, and network behavior for an agent process
  • Applies policy rules (optionally with a local LLM judge via Ollama)
  • Hard-stops severe violations with SIGKILL
  • Stores evidence and can generate incident-ready forensic reports

⚠️ What it does not do

  • It is not kernel-level enforcement (it runs in userspace)
  • File visibility via psutil.open_files() is best-effort and OS-dependent
  • Network checks are based on observed remote IP/port; domain matching can be lossy after DNS

Relationship to Little Canary

  • Little Canary protects the input side (prompt-injection sensing)
  • Suy Sideguy protects the runtime/output side (containment + forensics)

Use both for defense in depth.


Install

python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .

For development (tests + tooling):

pip install -e .[dev]

5-minute quickstart

1) Choose target process

Use one of:

  • --agent-pid (recommended for production)
  • --agent-name (convenient, but can match unintended processes)

2) Start from the example policy scope

  • Open examples/scope.openclaw.yaml
  • For staged rollout, start with examples/scope.low-disruption.yaml
  • Narrow allowlists to only what your workload truly needs

3) Run the warden

# Safer targeting: PID
suy-warden --scope examples/scope.openclaw.yaml --agent-pid 12345 --poll 0.5

# Convenience targeting: process name
suy-warden --scope examples/scope.openclaw.yaml --agent-name openclaw --poll 0.5

4) Generate report after a run

suy-forensic-report --last-hours 24

Where logs and evidence go

Default paths:

  • ~/.local/share/sysmond/warden.log
  • ~/.local/share/sysmond/logs/actions_*.jsonl
  • ~/.local/share/sysmond/logs/incidents/*.json

Tip: treat these as security artifacts. Protect access and define retention/rotation.


Recommended rollout strategy

  1. Audit-first: observe and tune policy without auto-kill pressure.
  2. Confirm mode for ambiguous events.
  3. Enforce mode only after your hard invariants are validated.

Important safety caveats

  • SIGKILL is immediate and can interrupt legitimate work if policy is too broad.
  • Name matching (--agent-name) can over-match; prefer PID targeting in production.
  • This project should be one part of a layered defense strategy.

Expected flag noise (early rollout)

Early flag noise is normal during policy calibration on real workloads.

  • Treat early FLAG events as calibration data, not immediate defects.
  • Use policy thresholds (flag_threshold, flag_window) to control when accumulated risk escalates to kill.
  • Keep hard invariants (e.g., forbidden secrets paths / destructive commands) as immediate stop conditions.
  • Start in audit-first mode, then tighten only after reviewing forensic logs.

Release quality status

  • ✅ Tests in repo (pytest)
  • ✅ Package buildable (python -m build)
  • ✅ CI workflow (.github/workflows/ci.yml)
  • ✅ Publish workflow (.github/workflows/publish.yml)
  • ✅ Security disclosure policy (SECURITY.md)

Development

pip install -e .[dev]
pytest

Also see:

  • CONTRIBUTING.md
  • SECURITY.md
  • PUBLISH_CHECKLIST.md
  • AGENTS.md
  • CODE_OF_CONDUCT.md
  • Audit checklist: docs/AUDIT_CHECKLIST.md
  • Layered plan: docs/IMPLEMENTATION_PLAN_LAYERED.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

suy_sideguy-0.1.1.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

suy_sideguy-0.1.1-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file suy_sideguy-0.1.1.tar.gz.

File metadata

  • Download URL: suy_sideguy-0.1.1.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for suy_sideguy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c818a620bcd6fb5635fa8b75ce3337272b375494f1dd0ae3bc898471575155fa
MD5 831056859c880f24d5e26e2cc9bb6d7a
BLAKE2b-256 8131d3c27ab8a1b661a443e5ccabe2768023a3cc15a07fac2065e11c5363efc9

See more details on using hashes here.

File details

Details for the file suy_sideguy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: suy_sideguy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for suy_sideguy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 956e50b382b13b6a2d5c9c9aa5159d5b192664a16e21a972c61accd978dc95e0
MD5 22c4f5db5ae67048516a495489906c88
BLAKE2b-256 31a87748ff2b3267a1bf7eab642c2554e4d5c1fbde22f965ead06d44ae3c7e28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page