Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

elder-plinius/T3MP3ST

Security & Privacy

Multi-agent offensive-security harness that drives an existing coding agent through recon, exploit, and reporting for authorized targets.

6,936
1,441
TypeScript
AGPL-3.0
4 months old

What it is

T3MP3ST is a self-hosted offensive-security framework that uses a coding agent or local model as its reasoning backend and wraps it in a multi-operator kill chain: recon, scanning, exploitation, lateral movement, exfiltration, persistence, coordination, and analysis. The README maps these operators to MITRE ATT&CK phases. Recon is described as a live, tool-backed engine; the later operators run the same ReAct loop but are marked experimental as a coordinated swarm, and some advanced modules are interface-only stubs. It targets authorized security testing, CTF work, white-box source review, and OSS vulnerability hunting across web apps, code, and embedded/OT projects.

Quick start

The keyless path runs a local War Room and uses an agent you are already signed into:

npm install
npm run server        # War Room → http://127.0.0.1:3333/ui/

Open the War Room, go to Settings, connect a local agent (Claude Code, Codex, Hermes, OpenCode, or Oh My Pi), describe a target to Op Admiral, and launch the mission. See the quick-start section and Getting Started guide for operator usage.

For a fully offline setup, start Ollama and point the harness at an OpenAI-compatible server:

ollama serve && ollama pull llama3
export TEMPEST_LOCAL_BASE_URL=http://localhost:11434/api
export TEMPEST_LOCAL_MODEL=llama3
npm run build
npx tempest   # choose "Change default provider" → local

A Docker path is also available. Copy .env.example to .env, run docker compose up -d, then check http://localhost:3333/api/health; the container binds to localhost only. See Docker instructions for the full deployment guide.

You can re-derive the README's benchmark claims from committed data:

npm run verify-claims

How it is measured

The project reports results on XBOW's 104-challenge suite (90.1% black-box pass@1), Cybench (23/40 hint-free), and a held-out set of ten post-cutoff CVEs (8/10 exact file/line/CWE for a single agent, 10/10 found with the full pack). The README states these runs used a single-agent ReAct loop, not the coordinated eight-operator swarm, and that the swarm's end-to-end exploitation is unbenchmarked. The benchmark section carries the methodology and caveats, including separate white-box numbers that are never blended with black-box results.

Constraints and risks

Use is limited to systems you own or have explicit written permission to test; the tool is explicitly offensive and its license disclaims liability for misuse. Scope containment is on by default, but it is a harness-level guard, not a substitute for rules of engagement. Reusing a local Claude Code session is disabled by default because a resumed session may retain provider-side context outside the Arsenal receipt boundary; enabling T3MP3ST_TRUST_CLAUDE_SESSION=1 should not be treated as an enforced sandbox. Hosted providers such as Novita receive model IDs, prompts and context, generated output, and request metadata. Local agents can be slow; timeout values are configurable with T3MP3ST_LOCAL_AGENT_TIMEOUT_MS, T3MP3ST_TASK_TIMEOUT_MS, and T3MP3ST_GENERAL_TIMEOUT_MS. The project is AGPL-3.0, which matters if you plan to redistribute or integrate it.

Limitations to weigh

Recon is the mature component; exploiter, infiltrator, exfiltrator, and ghost operators are experimental, and cloud, mobile, identity/AD, and binary/RE domains are still in development or reproduction-only. White-box source ingestion is described as experimental, with several languages failing open to no extracted blocks. The README's status tables are the place to check what actually ships before planning an engagement.

HotRepo's take

On 2026-11-06, T3MP3ST entered the TypeScript daily chart at position 5 with 238 new stars that day. That record only supports the observation that the project received a sharp single-day burst of attention in a TypeScript ranking. The thing worth watching is not the star count but whether the coordinated-swarm claims move from experimental to benchmarked; the README itself separates the single-agent results from swarm performance, which makes that a concrete milestone to track rather than a marketing label.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

Hacker News