Oubliette Warden
Safety-gated, human-on-the-loop multi-agent framework for authorized cyber operations.
Oubliette Warden coordinates a team of AI agents to run authorized defensive cyber and penetration-testing workflows end to end — planning, reconnaissance/analysis, code generation & execution, and vulnerability research — with every tool invocation gated by the Oubliette Shield safety pipeline and every action reviewable by a human operator before it runs.
Part of the Oubliette platform — Shield defends · Dungeon attacks · Trap traps · Warden operates.
⚠️ Authorized use only
Warden can drive real offensive tooling (e.g. nmap, Metasploit). It is intended solely for authorized security testing on systems you own or are explicitly contracted to assess. Use is gated by a mandatory safety pipeline and human approval. Operating it against systems without authorization may violate the CFAA and other laws. Commercial licensing is sold under terms that require authorized-use attestation.
The agents
- Planner — turns a high-level objective into an ATT&CK-aligned task graph.
- Cyber Analysis — ingests scan/recon output (e.g. Nmap XML) into ranked, evidence-backed findings.
- Code Generation & Execution — emits parameterized tool invocations (nmap / Metasploit); every command passes the Shield safety gate before it runs, inside an emulated range (e.g. MITRE CALDERA).
- Vulnerability Research — citation-bound RAG over an NVD corpus with evidence-integrity enforcement.
- Operator UI — human-on-the-loop review/approve/reject of every agent action, with an audit trail.
Install
pip install oubliette-warden # core
pip install "oubliette-warden[research]" # + RAG research backends (Qdrant, Ollama)
Quickstart
Plan, then see what the safety pipeline would decide — before anything runs:
oubliette-warden plan --intent "scan for vulnerabilities on 10.50.0.0/24" -o plan.json
oubliette-warden gate --plan plan.json
plan writes a task graph you can read, edit, diff, and keep. Tasks are emitted
unapproved, so a fresh plan does not run:
recon-2e50cb95 DENY nmap -sV -sC --script default ... 10.50.0.0/24
- off-plan: task not in human-approved baseline
...
0 of 3 executable task(s) would proceed; 3 blocked; 1 node(s) have no command.
Nothing was executed.
gate never executes anything — it exists so an operator sees the decision
before a command touches a target. It exits non-zero when the plan would not
run, so CI and scripts can branch on it.
--approve-all answers "would this plan be sound if approved?". Those approvals
are local what-if only and grant nothing; real approval is an operator record in
the review queue.
oubliette-warden serve # review/audit API
oubliette-warden demo # the original screencast narrative
There is deliberately no run command yet: real execution needs an agreed
policy for which adapters may run in which environment, and inventing that
quietly is how a safety-gated framework grows an ungated path.
Safety model
- The CodeGen agent never executes directly — it proposes a command.
- The command passes the 5-stage safety pipeline, with
plan_consistencyrunning first and failing closed: a command carrying no plan attribution is denied as unattributable, so nothing executes outside an approved plan. - A human operator approves it in the Operator UI before execution.
- Execution is confined to an authorized/emulated target; everything is audit-logged and replayable.
That guarantee holds on the default pipeline. evaluate(pipeline=[...])
composes an explicit pipeline and bypasses the attribution stage by design (used
by unit tests targeting downstream stages); it logs a warning rather than
silently changing behaviour, and no production caller does it.
License
Apache-2.0 (code). Commercial/Enterprise licensing and authorized-use terms via oubliettesecurity.com.
Metadata
Release files for oubliette-warden 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| oubliette_warden-0.2.0.tar.gz | 100.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| oubliette_warden-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 179.5 kB
Release files / oubliette_warden-0.2.0.tar.gz
| Download URL | oubliette_warden-0.2.0.tar.gz |
|---|---|
| Size | 100.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f50b9d3762348f0bd8a0d9c48538ffa1ee38f0921da39bae212785d370e552d
|
|
BLAKE2b-256 checksum How to use checksums |
bc2543beb25bc9fbfb4ec22cbb5396c05c4dafa9b1999996734cb59e9c3f7b62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / oubliette_warden-0.2.0-py3-none-any.whl
| Download URL | oubliette_warden-0.2.0-py3-none-any.whl |
|---|---|
| Size | 79.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
194dde6931a9308c82135ac42beb58f9689f0e6f1a6340dd94e33852027347fa
|
|
BLAKE2b-256 checksum How to use checksums |
865b5a48ac7867bec1d2707ff6ec5cbd3b99ca13b5a7a40de7ce3c7fa6cd0f97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for oubliette-warden 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.