󰈔 ~ projects eugene.md
e
eugene v0.2.0-rc

— autonomous offensive agent on a Pi

A red-team teammate that lives on a Raspberry Pi running Kali. Powered by rig-core, it drives the offensive tools already on the box and reports back over Telegram. Drop it on a network. Let it work.

RustKaliRaspberry PiSQLiteagenticoffsec

what it is

eugene treats a Pi like a tiny operator you can leave behind. Boot it, hand it a scope, and it cycles through host-discovery, service fingerprinting, low-hanging credentials, persisting everything to a local SQLite so you can resume after a reboot or replay the run.

The agent loop is rig-core; the tools are whatever Kali already ships.

Warning — this is genuinely autonomous. eugene has very little in the way of guardrails. It decides its own next action and executes against live networks and infrastructure without asking. The only hard blocks are shell-injection patterns and Pi-destructive commands; the entire offensive surface is unrestricted, so it can and will do unpredictable things once it’s running. Only point it at networks you are explicitly authorised to attack, and expect to babysit it.

architecture

Eugene uses a planner/executor split. The orchestrator breaks work into parallel tasks, and specialist executor agents run each one independently via tokio + semaphore-bounded concurrency. Everything is tracked in SQLite with FTS5 full-text search.

control

You can control eugene from Telegram, the CLI, or let it run on a cron schedule. Every run, task, and finding is persisted locally. The TUI dashboard gives you a full-screen ratatui view with progress gauge, findings table, and activity log.

## install
# clone, build, then deploy to a reachable Pi over ssh:
$ git clone codeberg.org/haaari/eugene
$ cd eugene && cp .env.example .env
# add MINIMAX_API_KEY, then cross-compile + push:
$ ./deploy.sh
## architecture
mermaid · eugene.arch.mmd
graph TD
  CLI["CLI / Telegram / Cron"]
  MAIN["main.rs<br/>Clap dispatch"]
  STORE["SQLite MemoryStore:<br/>· runs<br/>· tasks<br/>· findings<br/>· sessions<br/>· memories<br/>· scheduled_tasks"]
  ORCH["Orchestrator Agent (rig)"]
  EXEC1["Executor 1"]
  EXEC2["Executor 2"]
  EXEC3["Executor 3"]
  TOOLS["Tools:<br/>· nmap<br/>· hydra<br/>· responder<br/>· sqlmap<br/>· msfconsole"]
  SSH["SSH<br/>(Kali Linux Pi)"]
  TG["Telegram C2"]
  SCHED["Scheduler<br/>60s poll loop"]
  TUI["TUI Dashboard<br/>ratatui"]

  CLI --> MAIN
  MAIN --> STORE & ORCH & TG & SCHED & TUI
  ORCH -->|"dispatch tasks"| EXEC1 & EXEC2 & EXEC3
  EXEC1 & EXEC2 & EXEC3 --> TOOLS
  TOOLS --> SSH
  ORCH -->|"log_discovery()"| STORE
  ORCH -->|"status update"| TG
  SCHED -->|"due tasks"| ORCH
  SCHED --> TG
  TUI -->|"poll every 2s"| STORE
## demo
ssh · eugene@kali-pi run 0019 · 8 turns
eugene@kali-pi:~$ eugene run --target 192.168.13.0/24 --depth fast
[boot] kali-arm64 · rig-core 0.7 · sqlite v3.46
[plan] 1. host discovery   2. service fingerprint   3. low-hanging creds
[01:14] nmap -sn 192.168.13.0/24
        └─ 11 hosts alive
[01:21] nmap -sV -p- --top-ports=200 192.168.13.{14,22,57}
        └─ smb on .14 · http on .22 · ssh on .57
[01:43] hydra -L users.lst -P rockyou-1k.lst ssh://192.168.13.57
[01:47] ! credential found  jdoe : Summer2024!
[01:47] writing finding to ./loot/192.168.13.57.md
[01:48] continuing autonomously → next: enumerate smb on .14
## links
NORMAL
󰊢main
󰈔 ~/projects/eugene.md
utf-8 · LF · markdown
Top
󰍒1:1