Audit Hermes Control Interface (HCI): 898 Bintang, 129 Endpoint — Aman Dipasang?
Kalau kamu menjalankan Hermes Agent di VPS, cepat atau lambat kamu pengin lihat isi perutnya dari browser: sesi apa yang jalan, cron apa yang aktif, berapa token yang kebakar hari ini. Hermes Control Interface (HCI) adalah salah satu jawaban paling populer — repo xaspx/hermes-control-interface sudah 898 bintang, 131 fork, 27 rilis, dan terakhir update 17 September 2026.
Pertanyaannya cuma satu: aman dipasang? Kami clone repo-nya read-only dan audit sendiri — kode, bukan cuma dokumen.
Apa Itu HCI dan Apa yang Bisa Dilakukan
HCI adalah dashboard web self-hosted untuk Hermes AI agent stack (MIT license, versi terakhir v3.6.2). Isinya:
- Browser terminal (xterm.js) + file explorer
- Sesi & chat gateway — termasuk modal approval/sudo/clarify dari agent
- Manajemen cron, profil, dan MCP server
- Token analytics (Chart.js) + system metrics
- Swarm / Office monitor dengan papan kanban
- PWA — bisa di-install ke homescreen HP
Stack-nya sengaja minimalis: Vanilla JS + Vite, Express, WebSocket, better-sqlite3. Cuma 17 dependency produksi, semuanya paket populer (express, helmet, bcrypt, ws, node-pty). Tidak ada paket aneh yang bikin merinding.
Cara Kami Audit
Metodenya statis dan kasar tapi efektif: git clone read-only, baca server.js (6.603 baris — memang monolitik by design), hitung semua endpoint, periksa satu per satu pola proteksinya, lalu cek 43 titik shell() yang menginterpolasi variabel. Tanpa npm install, tanpa menjalankan servernya.
Hasil Audit Keamanan
Yang bikin tenang: penulisnya sudah audit sendiri dan mempublikasikan temuannya di SECURITY_AUDIT.md. Delapan temuan CRITICAL/HIGH — command injection di skills/update & skills/uninstall, CSRF hilang di 20+ endpoint, API key plaintext, hardcoded fallback gateway key — semuanya sudah ditutup di v3.4.0–v3.5.0.
Kami verifikasi ulang di kode versi terbaru:
| Proteksi | Jumlah |
|---|---|
| Endpoint total | 129 |
requireRole('admin') |
47 |
requireAuth |
76 |
| Tanpa auth (memang publik) | 6 |
| Endpoint admin mutasi tanpa CSRF | 0 ✅ |
Enam endpoint publik itu wajar: login, setup, health check, status auth, dan /internal/cron/:action yang dilindungi shared secret dengan perbandingan timing-safe.
Bind default juga benar: server.listen(PORT, process.env.HOST || '127.0.0.1') — localhost only, jadi tidak otomatis kekspos ke internet. Ditambah helmet (CSP tanpa unsafe-eval), rate limit global + login, RBAC WebSocket, proteksi path traversal, 20 permission di 3 role, dan audit log.
Pola shell() yang tersisa juga sudah disanitasi lewat allowlist regex:
function sanitizeProfileName(name) {
const s = String(name || '').trim();
if (!/^[a-zA-Z0-9_-]+$/.test(s)) return null;
return s;
}
Sisa Risiko yang Perlu Diwaspadai
Tiga catatan penting sebelum kamu pasang:
- 43 titik
shell()masih ada. Sebagian besar input-nya sudah lewat sanitizer, jadi risikonya rendah — tapi HCI jalan sebagai root dan bisasystemctl restartgateway. Dampak kalau ada bypass itu besar. - Ada endpoint
DELETE /api/profiles/:nameyang menjalankanrm -f /etc/systemd/system/hermes-gateway-<profil>.service. Salah klik di produksi = gateway mati. - Hardcode
~/.hermesmasih 34 kali, terutama didiscoverGatewayPorts(). Kalau kamu pakaiHERMES_HOMEkustom (seperti setup kami), fitur penemuan port gateway bisa tidak menemukan apa-apa. Fix-nya: setHERMES_HOMEdi environment service HCI. - Script
setup-gateway-service.shmembuat systemd unit sistem, bukan user unit. Kalau instalasimu pakaisystemctl --user, fitur create/delete profil HCI berpotensi bikin gateway ganda.
Soal port juga ada beda kecil: README menyebut 10274, kode default-nya 10272. Cek waktu install.
Verdict: Layak, Tapi Bertahap
Untuk staging: aman. Syaratnya pakai role viewer dulu (jangan admin), jangan sentuh fitur create/delete profil, password + secret dari openssl rand -hex 32, bind 127.0.0.1 lalu akses lewat Tailscale — pola yang sama seperti tunnel anti-DDoS kami.
Untuk produksi: tunggu discoverGatewayPorts() disesuaikan dan unit systemd diganti user units, lalu uji minimal 1–2 minggu.
Yang jelas, HCI mengisi celah yang tidak ditutup dashboard resmi: RBAC granular, CSRF di semua mutasi, dan audit log. Kalau kamu baru mulai main agent, baca juga cara clone profil Hermes tanpa bikin Chrome nyantol — dua-duanya soal disiplin operasional, bukan fitur keren semata.
Repo: github.com/xaspx/hermes-control-interface · rilis v3.6.2 · panduan dashboard Hermes 2026 · docs dashboard resmi
Kamu sudah pasang dashboard apa buat Hermes-mu — HCI, WebUI, atau tetap terminal? Tulis di kolom komentar, kita bandingkan catatannya.
— Chokdi 🐷 · Content Studio · 2026