Skip to main content

Scope your AI system's real threats, then run exactly the security work they call for.

Project description

Oubliette

The Oubliette Security suite — one install, one CLI.

oubliette is the umbrella distribution for the Oubliette Security product suite. It gives you a single oubliette command, an install-time choice of which modules you want, and a threat-model engine that tells you which of them your system actually needs.

pip install oubliette-suite     # the CLI + the threat-model engine
oubliette init                  # choose your modules -> writes oubliette.toml

The distribution is oubliette-suite (the bare oubliette name is taken on PyPI by an unrelated project); the installed import package and CLI are still oubliette.

Start here: scope the work

The threat-model engine depends on no product and runs before you have installed — or bought — anything. Point it at a description of your system and it tells you which attacks apply and what to run.

oubliette threatmodel init                      # writes a commented intake file
oubliette threatmodel run --profile system.toml # threat model + run plan

Every recommendation cites the answers that caused it, so you can audit why a control was proposed rather than taking it on faith.

Then run what it found

The plan isn't a document you retype — it configures the products:

oubliette threatmodel apply                     # plan -> oubliette.toml
oubliette exec --target https://my-system --dry-run

apply writes the dungeon scenario categories your system warrants and the shield settings that go with them. exec runs them, printing the reason each command exists before it runs:

  # threat model selected the tool_exploitation category
  $ oubliette dungeon run --category tool_exploitation --target https://my-system
    env: SHIELD_FAIL_OPEN=false SHIELD_MCP_BLOCK_HIGH=true ...

exec reads oubliette.toml, not the plan — so if you edit the file, you get what you edited. Drop a category and it stops running. --dry-run executes nothing.

Choose your modules

oubliette init                      # interactive menu
oubliette init --sku deceive        # or pick a bundle outright
oubliette init --modules dungeon,shield

This writes oubliette.toml and prints the exact pip install line for what you chose. Bundles map to pip extras, so these are equivalent:

pip install "oubliette-suite[deceive]"
SKU Contains For
assess dungeon Find out what an attacker can do to your AI system
defend shield, warden Firewall the model and gate what your agents may do
deceive trap, shield Make reconnaissance expensive and loud
full dungeon, shield, trap, warden The whole suite

Configuration

oubliette.toml is the shared config file. Precedence, weakest first:

defaults  <  oubliette.toml  <  OUBLIETTE_* env vars  <  CLI flags

Env vars win over the file on purpose: deployments that configure the suite through OUBLIETTE_* today behave identically after adopting the file, and per-environment overrides need no file edit.

Usage

oubliette version              # installed components + versions
oubliette init                 # choose modules
oubliette threatmodel run -p system.toml
oubliette threatmodel apply    # write the plan into oubliette.toml
oubliette exec --target URL    # run it (--dry-run to preview)
oubliette dungeon --help       # == oubliette-dungeon --help

The CLI shells out to each tool's own console script, so any sub-tool invocation is identical to calling that tool directly — the umbrella just gives one entry point.

Components

Command Distribution Role Status
oubliette shield oubliette-shield AI firewall — 5-stage detection + deception (library) available
oubliette dungeon oubliette-dungeon Adversarial testing — 72 scenarios, 10 categories available
oubliette trap oubliette-trap Deception — MCP honeypot and canary tokens available
oubliette warden oubliette-warden Safety-gated agent framework — gates plans, not just single actions available
oubliette barbican oubliette-barbican Coordinated synthetic-influence detection roadmap

oubliette shield is a library with no CLI; the command explains how to import it. Roadmap products are surfaced by the threat model as things to plan for and are not offered by oubliette init, so you are never handed an action you cannot take.

The product manifest

src/oubliette/data/products.toml is the single source of truth for the product line. The pip extras, the installer menu, the CLI's dispatch table, and the threat model's available/roadmap split are all derived from it — a product is added there and nowhere else.

CI fails if the committed extras drift from the manifest:

python -m oubliette.metapackage          # check
python -m oubliette.metapackage --emit   # print the correct block

Development

uv venv --python 3.13
uv pip install -e ".[test]"
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oubliette_suite-0.2.0.tar.gz (56.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oubliette_suite-0.2.0-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

Details for the file oubliette_suite-0.2.0.tar.gz.

File metadata

  • Download URL: oubliette_suite-0.2.0.tar.gz
  • Upload date:
  • Size: 56.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for oubliette_suite-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8818e21b003a46b61afe4891393d1411a53874c4c2fab7ae88292184e49f5aca
MD5 de7ec3b7b9e83e990ae7ef1536f6b761
BLAKE2b-256 b52270a2bb71ac62999a8690463a57fd49a60098faca2808abb9016c4e88b5d9

See more details on using hashes here.

File details

Details for the file oubliette_suite-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for oubliette_suite-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 886c8273743abe699d3ede900cd5059f9419c60cf82a2a070a6e7fbd6c7b055a
MD5 ae3e7afe3628ab4e038bc5f0b132673d
BLAKE2b-256 e6d8d14a32a59993fe1675acfa62b83060a2f278c8839f23084559f537eb712e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page