Image source: Ancient Origins.
Argus is an on device agent that dynamically maps the host, records intended use, builds mechanical sensors, investigates alerts, and applies policy-approved containment.
Install Node.js 24 or later. Then run:
cp .env.example .env
npm install
./scripts/setup.shThe setup wizard inspects the host and asks about its purpose, critical paths, services, local agents, alert contacts, response mode, retention, and review schedule. Agent Mail and S3 are optional.
Response modes:
report-only: record and report.approval-required: ask before containment.autonomous-action: apply policy-approved containment.
Setup asks whether Argus may terminate a confirmed malicious process automatically. The default requires approval during the incident.
npm run dist
npm install -g ./release/on-device-ids-agent-0.1.0.tgz
sudo ids-agent-install-linux "$PWD/.env"The installer creates the argus-ids account and starts two systemd services.
One service runs Argus. A root broker validates and applies containment. Both
services start after a reboot.
Install from source before the first GitHub release:
git clone https://github.com/theRealestAEP/Argus.git
cd Argus
cp .env.example .env
nano .env
./scripts/setup.shAfter release v0.1.0, install its verified archive:
curl -fLo .env https://raw.githubusercontent.com/theRealestAEP/Argus/v0.1.0/.env.example
nano .env
curl -fLO https://github.com/theRealestAEP/Argus/releases/download/v0.1.0/on-device-ids-agent-0.1.0.tgz
curl -fLO https://github.com/theRealestAEP/Argus/releases/download/v0.1.0/SHA256SUMS
shasum -a 256 -c SHA256SUMS
sudo npm install --global ./on-device-ids-agent-0.1.0.tgz
sudo ids-agent-install-macos "$PWD/.env"The installer creates two LaunchDaemons. One runs Argus as your macOS account. The other runs the containment broker as root.
Check GitHub Releases:
ids-agent update-checkInstall a checksum-verified update and restart both services:
sudo ids-agent update \
--state-dir="/Library/Application Support/Argus/state" \
--env-file="/Library/Application Support/Argus/config/env"Source installations use git pull, npm ci, and npm run build.
ids-agent status
ids-agent access
ids-agent doctor
ids-agent re-onboard
ids-agent memory-packre-onboard updates policy and recommissions sensors. memory-pack builds
signed, grep-friendly long-term memory.
Argus can block an IPv4 destination or pause an identified process. Each action records its target and rollback command.
Warning: The next command can stop a process or block network traffic.
sudo ids-agent contain \
--state-dir=/var/lib/argus-ids \
--env-file=/etc/argus-ids/env \
--plan-file=/secure/path/containment-plan.jsonRun all local checks:
npm run checkRun Linux setup, sensors, and a 32-process containment load test:
npm run test:e2e:linuxRun the interactive Linux onboarding demo:
npm run demo:onboarding:linuxRun the cooperative telemetry smoke test:
export ZAI_API_KEY=...
npm run eval:smoke:cooperativeThis Docker test checks the runtime event integration. The service tells Argus the exact process that performed an action. Use it as an integration test.
Run the independent adversarial benchmark on macOS:
brew install lima
npm run eval:adversarial:vm -- rce-exfiltrationThe benchmark creates a Linux VM. It runs the target services and Argus as native host services. GLM receives only the public address and a business goal. The scorer uses Linux Audit logs, database access logs, Argus evidence, containment receipts, attacker output, and final host state.
See the security evaluation report for the campaigns, score rules, and current limits. Git ignores all saved evaluation artifacts.
List installed resources:
ids-agent uninstall-planWarning: The next command stops Argus and removes its boot services. It keeps local state and reports.
sudo ids-agent uninstall-service \
--state-dir=/var/lib/argus-ids \
--env-file=/etc/argus-ids/env \
--service-user=argus-ids \
--service-group=argus-idsArgus uses the MIT License.
