Skip to content

NlCK01/prometheus-exe

Repository files navigation

PROMETHEUS.EXE XP

Prometheus XP agent icon

Prometheus XP is an offensive AI swarm system for security testing. It uses dozens of autonomous agents to automatically probe targets, plan attack paths, execute attack paths, and coordinate agents to automate the entire process.

The system uses LLMs plus a separate unified memory layer so attacks can improve and issue follow-up decisions over time. The retro Windows 95/XP shell operates as a local control panel for watching AI agents, their responses, tool calls, and more.

Clippy asking for help

Annoying Legal Message from Clippy:

    "Use this only on systems you own or are explicitly authorized to test. Keep Dry run enabled unless your scope and permission are clear."

Screenshots

Multiagent Terminals

The swarm page shows each agent as its own draggable terminal. This is the visual layer over the real swarm runner: each terminal maps to a role in the backend pipeline, and the lower SWARMCNTRL.CPL panel controls target, scope, preset, dry run, and adaptive improvement.

Prometheus XP multiagent terminal wall

Dashboard

The dashboard gives a campaign overview, active scan counts, finding totals, severity distribution, and per-agent readiness. It is meant to be the first stop after launching the API.

Prometheus XP dashboard

Reports

The findings page behaves like a retro document manager. Local markdown reports and live API memos appear as papers on the left; selecting one opens the generated report in a Word 97 style reader.

Prometheus XP report browser

Why It Is Useful

Prometheus XP is useful when you want an automated testing system that includes custom reasoning and follow ups on exposed vulnerabilities.

It helps with:

  • Running repeatable, scoped security checks from a single local dashboard.
  • Comparing classic sequential scans against a multi-agent swarm workflow.
  • Watching which agents are active, idle, or reporting errors during a campaign.
  • Keeping prompts, responses, findings, and generated reports close to the same UI.
  • Preserving evidence and report output in local reports/ and campaign state.
  • Testing safely with dry-run mode before allowing any command execution.

System Overview

Prometheus XP has four main layers:

Next.js UI
  -> Go HTTP API and WebSocket stream
    -> scan engine or swarm engine
      -> LLM providers, tool wrappers, reports, and local memory

Frontend

The frontend lives in web/. It is a Next.js app themed like a Windows 95/XP control panel.

Important pages:

  • / - dashboard and campaign summary.
  • /scan - classic scan launcher.
  • /swarm - multiagent terminal wall and swarm controls.
  • /campaigns - campaign history and live campaign views.
  • /findings - report and memo browser.
  • /settings - local settings surface.
  • /help - built-in help/readme page.

The sidebar identity uses the bundled w98_msagent.ico icon, the Clippy help prompt, and the local Windows 95/98 icon pack under web/public/win95-icons.

API

The API lives in internal/api. It exposes campaign, scan, findings, health, and live event endpoints. The UI talks to the API through /api/v1, and the development proxy sends those calls to the Go server on port 8081.

Health check:

curl http://127.0.0.1:8081/api/v1/health

Expected:

{"service":"prometheus","status":"ok"}

Classic Scan Engine

The classic runner lives in internal/engine. It follows a predictable sequence:

recon -> classify -> plan -> execute if allowed -> report

Use this when you want a simpler, more linear workflow. The /scan page intentionally uses this classic path.

Swarm Engine

The swarm runner lives in internal/swarm and internal/engine/swarm_runner.go. It uses a blackboard scheduler. Agents wake up when new findings appear, then write their own outputs back to the shared board.

High-level swarm flow:

TARGET_REGISTERED
  -> RECON
  -> CLASSIFIER
  -> CONFIRM
  -> EXPLOIT
  -> REPORT

Adaptive improvement is only for the swarm path. When enabled, failed exploit attempts can trigger an adapted plan pass, and successful findings can seed follow-up recon. It is more capable, but it can use more tokens.

What Is In The Box

  • cmd/prometheus - CLI entrypoint and API server launcher.
  • cli - command line commands for scan, serve, config, report, playbooks, and helpers.
  • internal/api - Go HTTP API and WebSocket event stream.
  • internal/engine - classic scan runner and swarm runner.
  • internal/swarm - blackboard scheduler, agents, pheromone tuning, adaptive improvement.
  • internal/agent - recon, classifier, exploit, orchestrator, and report agents.
  • internal/tools - wrappers for tools such as httpx, subfinder, nuclei, nmap, katana, dnsx, and others.
  • internal/llm - OpenAI-compatible, Anthropic, Ollama, and LM Studio provider plumbing.
  • web - Windows 95/XP themed Next.js frontend.
  • web/public/win95-icons - the retro .ico and image assets used by the shell.
  • playbooks - built-in scan presets.
  • config.example.yaml - safe config template with no secrets.
  • docs/assets - README screenshots and repo images.

Requirements

  • Go 1.24+
  • Node.js 20+
  • npm
  • An OpenAI or Anthropic API key, or an OpenAI-compatible local endpoint
  • Optional security tools for richer recon. ./scripts/setup.sh attempts to install these Go-installable tools automatically:
    • subfinder
    • httpx
    • nuclei
    • naabu
    • katana
    • dnsx
    • gau
    • ffuf
    • gowitness

These system/package-manager tools are still optional manual installs:

  • nmap
  • gobuster
  • sqlmap
  • amass
  • trufflehog
  • gitleaks
  • semgrep

The app still runs without every tool installed, but missing tools reduce scan depth.

What Is Actually Committed

This repository includes the full source needed to run Prometheus XP:

  • Go backend/API source and migrations.
  • Next.js frontend source and package-lock.json.
  • Built-in playbooks and config templates.
  • README screenshots in docs/assets.
  • The selected Windows 95/98/XP icons and Clippy images the app uses.
  • Setup/build scripts.

These are intentionally not committed:

  • API keys or local secrets.
  • config.yaml.
  • Generated reports and drafts.
  • Compiled binaries.
  • web/node_modules.
  • The full third-party Windows icon-pack clone.

The full icon-pack clone is not vendored because the local clone does not include a license file. The repo already bundles the specific .ico and image assets Prometheus XP needs to render the UI.

External recon/scanning tools are not vendored as binaries. Prometheus XP installs Go-based tools such as subfinder and nuclei during ./scripts/setup.sh when possible, and includes wrappers plus install hints for the rest. Run ./bin/prometheus doctor after setup to see what is missing on your machine.

First Run

git clone https://github.com/NlCK01/prometheus-xp.git
cd prometheus-xp

cp config.example.yaml config.yaml
./scripts/setup.sh

Edit config.yaml, or set an environment variable instead:

export PROMETHEUS_ORCHESTRATOR_API_KEY="your-api-key"

For OpenAI:

export OPENAI_API_KEY="your-api-key"

For Anthropic:

export ANTHROPIC_API_KEY="your-api-key"

Run The API

The frontend is configured to proxy /api/v1 to port 8081.

go build -o bin/prometheus ./cmd/prometheus
./bin/prometheus serve --port 8081

Run The Windows UI

In a second terminal:

cd web
npm install
npm run dev -- --port 3001

Open:

http://localhost:3001

Scan Modes

Classic Scan

Use /scan or:

./bin/prometheus scan example.com --scope example.com --dry-run --follow

Classic scan runs the sequential pipeline and keeps adaptive swarm behavior off.

Multiagent Terminals

Use /swarm or:

./bin/prometheus scan example.com --scope example.com --swarm --dry-run --follow

This starts the blackboard swarm and displays the agent terminals in the UI.

Environment Variables

All config.yaml values can be overridden with PROMETHEUS_ variables:

PROMETHEUS_ORCHESTRATOR_PROVIDER=openai
PROMETHEUS_ORCHESTRATOR_API_KEY=...
PROMETHEUS_SERVER_PORT=8081

The frontend can use a direct API URL if you do not want the Next.js rewrite:

cd web
cp .env.example .env.local
echo 'NEXT_PUBLIC_API_URL=http://localhost:8081/api/v1' >> .env.local

Repo Hygiene

These are intentionally not committed:

  • config.yaml
  • .env*
  • reports/
  • drafts/
  • bin/
  • web/.next/
  • web/node_modules/

Commit config.example.yaml, never your real key.

Tests

Backend:

go test ./internal/api ./internal/engine ./internal/swarm ./internal/swarm/agents ./internal/agent/exploit

Frontend:

cd web
npm exec tsc -- --noEmit --incremental false

Build For A Fresh Machine

go build -o bin/prometheus ./cmd/prometheus
cd web
npm install
npm run build

Theme Assets

The UI uses local assets under web/public/win95-icons, including:

  • w98_msagent.ico - the PROMETHEUS.EXE sidebar agent icon.
  • w98_connected_world.ico
  • w98_console_prompt.ico
  • w98_window_red_hilights.ico
  • w98_directory_control_panel_cool.ico
  • clippy.png
  • prometheus-fire.png

Keep new retro assets in that folder so the app remains self-contained.

GitHub Setup

This repo is already configured for:

git remote add origin https://github.com/NlCK01/prometheus-xp.git
git push -u origin main

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors