{"id":51459485,"url":"https://github.com/tmdgusya/argus","last_synced_at":"2026-07-06T04:01:33.365Z","repository":{"id":350776243,"uuid":"1207633098","full_name":"tmdgusya/argus","owner":"tmdgusya","description":"Real-time monitoring \u0026 management dashboard for Hermes Agent profiles","archived":false,"fork":false,"pushed_at":"2026-04-12T02:42:41.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-12T03:29:26.473Z","etag":null,"topics":["dashboard","hermes","hermes-agent","monitoring","multi-agent","python","sqlite"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmdgusya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-11T07:25:45.000Z","updated_at":"2026-04-12T02:42:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tmdgusya/argus","commit_stats":null,"previous_names":["tmdgusya/argus"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/tmdgusya/argus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmdgusya%2Fargus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmdgusya%2Fargus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmdgusya%2Fargus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmdgusya%2Fargus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmdgusya","download_url":"https://codeload.github.com/tmdgusya/argus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmdgusya%2Fargus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35177220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","hermes","hermes-agent","monitoring","multi-agent","python","sqlite"],"created_at":"2026-07-06T04:01:32.616Z","updated_at":"2026-07-06T04:01:33.342Z","avatar_url":"https://github.com/tmdgusya.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Argus\n\nReal-time monitoring and management dashboard for [Hermes Agent](https://github.com/NousResearch/hermes-agent) profiles.\n\n## Environment Setup (Step 1)\n\nThis section is the minimum setup required before creating `backend/frontend/dba` profiles.\nFollow the steps in order. Do not skip verification commands.\n\n### 1.1 Clone the Repository\n\n```bash\nmkdir -p ~/projects\ncd ~/projects\ngit clone \u003cYOUR_ARGUS_REPO_URL\u003e argus\ncd argus\n```\n\nIf the repo is already cloned, just run:\n\n```bash\ncd ~/projects/argus\n```\n\n### 1.2 Install Required Tools\n\nRequired versions:\n- Hermes Agent CLI installed and executable\n- GitHub CLI (`gh`) authenticated\n- Python `3.11+`\n- Node.js `20+`\n\nInstall Hermes Agent first (official quickstart installer):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash\n```\n\nInstall Python + GitHub CLI:\n\nmacOS (Homebrew)\n```bash\nbrew install python@3.11 gh\n```\n\nUbuntu/Debian\n```bash\nsudo apt update\nsudo apt install -y python3 python3-venv python3-pip gh curl\n```\n\nInstall Node.js 20+ (recommended: nvm, works reliably on both macOS/Linux):\n\n```bash\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash\nexport NVM_DIR=\"$HOME/.nvm\"\n[ -s \"$NVM_DIR/nvm.sh\" ] \u0026\u0026 . \"$NVM_DIR/nvm.sh\"\nnvm install 20\nnvm use 20\n```\n\n### 1.3 Authenticate GitHub CLI\n\n```bash\ngh auth login\ngh auth status\n```\n\n`gh auth status` must show an authenticated account.\n\n### 1.4 Verify Versions and Commands\n\nRun all checks:\n\n```bash\nhermes --version\ngh --version\ngh auth status\npython3 --version\nnode --version\nnpm --version\n```\n\nPass criteria:\n- `hermes --version` prints a version (no \"command not found\")\n- `gh auth status` shows \"Logged in\"\n- `python3 --version` is `3.11` or higher\n- `node --version` is `v20` or higher\n\n### 1.5 Quick Preflight Script (Optional)\n\nRun this to check everything in one go:\n\n```bash\nset -e\ncommand -v hermes \u003e/dev/null \u0026\u0026 echo \"[OK] hermes installed\" || echo \"[FAIL] hermes missing\"\ncommand -v gh \u003e/dev/null \u0026\u0026 echo \"[OK] gh installed\" || echo \"[FAIL] gh missing\"\ncommand -v python3 \u003e/dev/null \u0026\u0026 echo \"[OK] python3 installed\" || echo \"[FAIL] python3 missing\"\ncommand -v node \u003e/dev/null \u0026\u0026 echo \"[OK] node installed\" || echo \"[FAIL] node missing\"\necho \"---- versions ----\"\nhermes --version || true\ngh --version || true\npython3 --version || true\nnode --version || true\nnpm --version || true\n```\n\n### 1.6 Next Step\n\nOnce all checks pass, continue with profile/channel/token setup:\n- Full team setup guide: [SETUP.md](./SETUP.md)\n- Role-specific guides:\n  - [backend/SETUP.md](./backend/SETUP.md)\n  - [frontend/SETUP.md](./frontend/SETUP.md)\n  - [dba/SETUP.md](./dba/SETUP.md)\n\n## Profile Setup (Step 2)\n\nThis step creates three isolated Hermes profiles for Argus roles:\n- `backend`\n- `frontend`\n- `dba`\n\nEach profile keeps its own `config`, `.env`, sessions, and skills.\n\n### 2.1 Check Current Profiles\n\n```bash\nhermes profile list\n```\n\nYou should see at least `default`.\n\n### 2.2 Create Profiles (Official Command Pattern)\n\nUse `--clone --clone-from default` so all students start from the same known source profile:\n\n```bash\nhermes profile create backend --clone --clone-from default\nhermes profile create frontend --clone --clone-from default\nhermes profile create dba --clone --clone-from default\n```\n\nWhy this exact form:\n- `--clone` copies `config.yaml`, `.env`, and `SOUL.md`.\n- `--clone-from default` avoids accidental cloning from a different currently active profile.\n\n### 2.3 Verify Profiles\n\n```bash\nhermes profile list\nhermes profile show backend\nhermes profile show frontend\nhermes profile show dba\n```\n\nExpected:\n- All three profiles appear in `hermes profile list`\n- `hermes profile show \u003cname\u003e` shows valid profile paths under `~/.hermes/profiles/`\n\n### 2.4 Verify/Regenerate Profile Aliases\n\nHermes usually creates wrapper aliases automatically (for example `~/.local/bin/backend`).\nIf a command is missing, regenerate explicitly:\n\n```bash\nhermes profile alias backend\nhermes profile alias frontend\nhermes profile alias dba\n```\n\nThen test:\n\n```bash\nbackend chat\nfrontend chat\ndba chat\n```\n\nIf alias commands are not found, make sure `~/.local/bin` is in `PATH`:\n\n```bash\necho 'export PATH=\"$HOME/.local/bin:$PATH\"' \u003e\u003e ~/.zshrc\nsource ~/.zshrc\n```\n\n### 2.5 Pairing Check (Important for Team Messaging)\n\n`pairing` is not required to *create profiles*, but it is important when operating bots in Telegram/Slack with multiple teammates.\n\nRecommended team behavior from Hermes docs:\n- Keep allowlist strict, or\n- Use DM pairing flow (recommended for teams)\n\nCore pairing commands:\n\n```bash\nhermes pairing list\nhermes pairing approve telegram \u003cPAIRING_CODE\u003e\nhermes pairing revoke telegram \u003cUSER_ID\u003e\nhermes pairing clear-pending\n```\n\nNotes:\n- Pairing is used when unknown users DM the bot and `unauthorized_dm_behavior` is `pair` (default behavior).\n- Do not enable open access (`ALLOW_ALL_USERS`) on bots with terminal/file tools.\n\n### 2.6 Next Step\n\nAfter Step 2, continue to platform token/channel setup and role-specific SOUL/skills:\n- [SETUP.md](./SETUP.md)\n- [backend/SETUP.md](./backend/SETUP.md)\n- [frontend/SETUP.md](./frontend/SETUP.md)\n- [dba/SETUP.md](./dba/SETUP.md)\n\n## Official References\n\n- Quickstart: \u003chttps://hermes-agent.nousresearch.com/docs/getting-started/quickstart/\u003e\n- CLI Commands: \u003chttps://hermes-agent.nousresearch.com/docs/reference/cli-commands/\u003e\n- Profile Commands: \u003chttps://hermes-agent.nousresearch.com/docs/reference/profile-commands/\u003e\n- Security (DM pairing): \u003chttps://hermes-agent.nousresearch.com/docs/user-guide/security/\u003e\n- Telegram setup: \u003chttps://hermes-agent.nousresearch.com/docs/user-guide/messaging/telegram/\u003e\n\n## What It Does\n\nHermes Agent supports multiple **independent profiles** — each with its own config, sessions, memory, gateway, credentials, and logs. Argus watches them all from a single web UI.\n\n```\nWeb UI\n├── Profile Selector\n│   ├── default   → ~/.hermes/\n│   ├── backend   → ~/.hermes/profiles/backend/\n│   ├── frontend  → ~/.hermes/profiles/frontend/\n│   └── ...       → dynamically discovered\n│\n├── Per-Profile Dashboard\n│   ├── Status    — gateway alive/stopped, active sessions, model info\n│   ├── Activity  — live message stream, current tool calls in progress\n│   ├── Cost      — token usage, estimated $, cache hit ratio\n│   ├── Tools     — usage distribution, call frequency\n│   └── Auth      — credential pool health per provider\n│\n└── Cross-Profile Overview\n    ├── total cost across all profiles\n    ├── token consumption comparison\n    └── activity heatmap by profile\n```\n\n## How It Works\n\nArgus reads Hermes internal data sources directly — no API, no plugin, no agent modification required.\n\n| Source | What We Read |\n|--------|-------------|\n| `~/.hermes/state.db` (SQLite) | sessions, messages, tool calls, token usage, costs |\n| `~/.hermes/profiles/*/state.db` | same, per profile |\n| `memory-decay/memories.db` | memory count, activation history, decay state |\n| `gateway_state.json` + `gateway.pid` | process alive check, platform connection status |\n| `auth.json` | credential pool status per provider |\n| `config.yaml` | model, provider, compression, security settings |\n| `logs/gateway.log` | inbound messages, response times, delivery events |\n| `logs/errors.log` | error patterns, stack traces, rate limits |\n| `cron/jobs.json` | scheduled job status and execution history |\n\n### Data Flow\n\n```\nHermes Profiles\n  │\n  │  (read-only, WAL-safe concurrent access)\n  ▼\nArgus Collector (polls every 3-5s)\n  │\n  ▼\nargus.db (SQLite — aggregated data)\n  │\n  ▼\nWeb UI (served via built-in HTTP server)\n```\n\n## Data Sources (Full Inventory)\n\nSee [DATA-INVENTORY.md](./DATA-INVENTORY.md) for the complete breakdown of every Hermes data source, table schemas, column types, and monitoring priority.\n\n## Student Policy Docs (Demo)\n\nFor lecture/demo operation guides and copy-paste policy prompts:\n\n- [policies/00-INDEX.md](./policies/00-INDEX.md)\n- [policies/01-LECTURE-ORCHESTRATOR.md](./policies/01-LECTURE-ORCHESTRATOR.md)\n- [policies/02-BACKEND-AGENT-POLICY.md](./policies/02-BACKEND-AGENT-POLICY.md)\n- [policies/03-DBA-AGENT-POLICY.md](./policies/03-DBA-AGENT-POLICY.md)\n- [policies/04-FRONTEND-AGENT-POLICY.md](./policies/04-FRONTEND-AGENT-POLICY.md)\n- [policies/05-HANDOFF-TEMPLATES.md](./policies/05-HANDOFF-TEMPLATES.md)\n- [policies/06-LINEAR-TICKET-BACKLOG.md](./policies/06-LINEAR-TICKET-BACKLOG.md)\n- [policies/07-PM-OPERATIONS.md](./policies/07-PM-OPERATIONS.md)\n- [.agent/README.md](./.agent/README.md)\n\n## Development Status\n\nEarly planning. Data inventory complete, architecture being designed.\n\n## Tech Stack\n\n- **Backend**: Python, SQLite (aggregation DB)\n- **Frontend**: TBD\n- **Data Source**: Hermes internal SQLite + JSON files (read-only)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmdgusya%2Fargus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmdgusya%2Fargus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmdgusya%2Fargus/lists"}