Please do not open public issues for security vulnerabilities.
If you discover a security vulnerability in Argus, please email security@argus.local with:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if you have one)
We will:
- Acknowledge receipt within 48 hours
- Work on a fix and release a patch
- Credit you in the release notes (unless you prefer anonymity)
Argus is designed with a transparent, local-first security model:
- Monitors running processes on your machine
- Tracks which files are accessed by AI applications
- Logs network connections made by AI applications
- Sends native OS notifications when alerts are triggered
- Stores all data in a local SQLite database
- No network requests — All monitoring happens locally
- No telemetry — No data is sent to Anthropic, OpenAI, or any third party
- No cloud sync — All data stays on your machine
- No shell commands executed — Argus only reads process state; it doesn't modify anything
- No privilege escalation — Runs as a regular user (LaunchAgent/systemd)
All monitoring data is stored in:
~/.argus/data.db # SQLite database (main event log)
~/.argus/logs/daemon.log # Daemon logs (rotating, max 10 MB)
These files are:
- Local only — Never synced to cloud or sent anywhere
- User-readable — Belong to your user account, not root
- Inspectable — You can query the database with
sqlite3 - Deletable — You can safely delete
~/.argus/at any time
All code is in the src/ directory. To verify Argus doesn't make network calls:
# Search for network libraries
grep -r "http\|https\|fetch\|request" src/
# Expected: 0 results (Argus doesn't initiate outbound connections)Inspect all npm dependencies:
npm lsAll dependencies are production-ready, open-source packages:
better-sqlite3— SQLite driverchokidar— File system watchernode-notifier— Native OS notificationspino— Loggingps-list— Process listing- Others are utilities with no network access
cat src/notifications/notifier.jsNotifications are sent via:
- macOS:
node-notifier(uses native macOS notification API) - Linux:
node-notifier(uses D-Bus)
No network calls are made.
# Check for hardcoded API keys
grep -r "sk-" src/
grep -r "api-key" src/
grep -r "token" src/ | grep -v "// " | grep -v "comment"
# Should return nothing# Check that all database queries use parameterized statements
grep -r "prepare\|all\|run" src/db/
# All queries should use `?` placeholders, never string concatenationExample of safe query:
db.prepare('SELECT * FROM events WHERE app_name = ?').all(appName);Example of unsafe query (DO NOT USE):
// ❌ WRONG — vulnerable to SQL injection
db.prepare(`SELECT * FROM events WHERE app_name = '${appName}'`).all();- Argus runs as a LaunchAgent in
~/Library/LaunchAgents/com.argus.daemon.plist - Does NOT require
sudoor root access - Can read from standard user directories (Documents, Downloads, Desktop)
- Uses
launchctlto manage the service - Respects macOS System Integrity Protection (SIP) and code-signing restrictions
TCC (Transparent User Consent):
- Argus may request Full Disk Access if you explicitly grant it via System Preferences
- This is optional — Argus will still work without it, but with reduced file monitoring
- Argus runs as a systemd user service
- Does NOT require
sudoor root access - Can read from user home directory (
~) - Uses
systemctl --userto manage the service
argus install
# Prompts for:
# - macOS user password (to write LaunchAgent plist)
# - Optional: Full Disk Access permission (for enhanced file monitoring)argus install
# No password required (systemd user service)
# Runs under your own user accountArgus monitors what these applications do — it does NOT modify their behavior or intercept their network traffic. You should:
-
Review each AI app's own privacy policy:
- Claude: https://www.anthropic.com/privacy
- ChatGPT: https://openai.com/policies/privacy-policy
- Cursor: https://www.cursor.com/privacy
-
Understand what data each app sends to its vendor:
- Claude sends prompts to Anthropic's servers
- ChatGPT sends prompts to OpenAI's servers
- Cursor may send code snippets to Codeium
- Argus cannot stop this — it only monitors and alerts you
-
Use Argus to verify expected behavior:
- "Did Claude really only connect to
api.anthropic.com?" - "Why is Cursor connecting to an unfamiliar domain?"
- "Which files did the AI app read?"
- "Did Claude really only connect to
-
File Access Monitoring — Argus uses file system events to detect access. Some accesses may not trigger events (e.g., memory-mapped files, in-process reads from already-open files).
-
Network Monitoring — Argus uses
lsofto enumerate connections. This has a small race condition window where very fast, short-lived connections might not be captured. -
Process Classification — The 6-signal AI detection engine has false positive/negative rates. High-confidence signals (network endpoints, code signing) are reliable; lower-confidence signals (keywords, pipes) can vary.
-
TCC Database — macOS TCC database queries require reading a privileged SQLite file. This may require Full Disk Access, which is optional.
If you discover a vulnerability:
- Do not open a public GitHub issue
- Email security@argus.local with details
- Allow 90 days for a patch before public disclosure
- We will credit you in release notes (unless you prefer not to)
Examples of security issues:
- SQL injection in database queries
- Hardcoded API keys or credentials
- Unvalidated file paths leading to path traversal
- Insecure deserialization
- Privilege escalation vulnerabilities
Argus respects:
- macOS: System Integrity Protection (SIP), Gatekeeper, code signing
- Linux: SELinux, AppArmor (if installed), standard user permissions
- GDPR: No personal data collection, transmission, or storage on external systems
- Data Privacy: All monitoring data is yours — you can delete it anytime
Subscribe to releases to be notified of security patches:
# Watch the repository for releases only
# Settings → Notifications → Only releasesOr check the releases page regularly:
https://github.com/yourusername/argus/releases
Email security@argus.local or open a discussion on GitHub (for non-sensitive topics).
Transparency is security. All Argus code is visible, reviewable, and local-only.