Plexiglass

Outil de red-teaming en ligne de commande pour les LLM, qui exécute un catalogue d'attaques contre un modèle cible et évalue sa susceptibilité au jailbreak, au biais et à la toxicité. Command-line red-teaming tool for LLMs that runs a catalog of attacks against a target model and benchmarks it for jailbreak susceptibility, bias, and toxicity.

↗ https://github.com/kortex-labs/plexiglass

Overview

Plexiglass is a CLI-driven red-teaming tool aimed at LLMs specifically. Rather than crafting individual jailbreak prompts by hand, you point it at a target model and it runs through a catalog of known attack techniques, scoring the model’s responses for jailbreak susceptibility, toxicity, and bias. It’s useful early in an AI red-team engagement as a quick automated pass to triage which categories of attack are worth pursuing manually.

Installation

pip install plexiglass

Configuring a Target Model

# Plexiglass targets any model exposing a callable interface
from plexiglass.llm import LLM

target = LLM(
    provider="openai",          # or "huggingface", "anthropic", custom endpoint wrapper
    model="<model_name>",
    api_key="<api_key>",
)

Running an Attack Benchmark

Launch the interactive CLI session

plexiglass
# Inside the session — load a target and run the default jailbreak suite
plexiglass> load_model --provider openai --model <model_name>
plexiglass> run_attack --category jailbreak
plexiglass> run_attack --category toxicity
plexiglass> run_attack --category bias

Export scored results

plexiglass> export_report --output report.json

Python API Usage

from plexiglass.attacks import JailbreakAttack

# Run a specific attack module against the wrapped target
attack = JailbreakAttack(target=target)
results = attack.run()

for r in results:
    print(r.prompt, "->", r.success, r.score)

Tips

  • Treat Plexiglass’s scores as a triage signal, not ground truth — always manually verify any flagged “successful” jailbreak against the actual target, since automated toxicity/bias scoring produces false positives.
  • Good first pass before deeper manual prompt-injection work with something like the Arcanum PI Taxonomy.
Help / Man page
plexiglass

COMMANDS:
  load_model --provider <name> --model <model> [--api-key KEY]
  run_attack --category <jailbreak|toxicity|bias>
  list_attacks                      List available attack modules
  export_report --output <file>     Export scored results as JSON
  help                              Show command help

ATTACK CATEGORIES:
  jailbreak    Known jailbreak/prompt-injection templates
  toxicity     Toxic-output elicitation prompts
  bias         Demographic/social bias probing prompts

Vue d’ensemble

Plexiglass est un outil de red-teaming piloté en CLI, spécifiquement destiné aux LLM. Plutôt que de rédiger des prompts de jailbreak un par un, vous le pointez vers un modèle cible et il parcourt un catalogue de techniques d’attaque connues, en notant les réponses du modèle selon leur susceptibilité au jailbreak, à la toxicité et au biais. Utile en début de mission de red-team IA pour effectuer une première passe automatisée qui permet de trier les catégories d’attaque méritant d’être approfondies manuellement.

Installation

pip install plexiglass

Configuration d’un modèle cible

# Plexiglass cible n'importe quel modèle exposant une interface appelable
from plexiglass.llm import LLM

target = LLM(
    provider="openai",          # ou "huggingface", "anthropic", wrapper d'endpoint personnalisé
    model="<model_name>",
    api_key="<api_key>",
)

Lancer un benchmark d’attaque

Lancer la session CLI interactive

plexiglass
# Dans la session : charger une cible et lancer la suite de jailbreak par défaut
plexiglass> load_model --provider openai --model <model_name>
plexiglass> run_attack --category jailbreak
plexiglass> run_attack --category toxicity
plexiglass> run_attack --category bias

Exporter les résultats notés

plexiglass> export_report --output report.json

Utilisation via l’API Python

from plexiglass.attacks import JailbreakAttack

# Exécuter un module d'attaque spécifique contre la cible encapsulée
attack = JailbreakAttack(target=target)
results = attack.run()

for r in results:
    print(r.prompt, "->", r.success, r.score)

Conseils

  • Considérez les scores de Plexiglass comme un signal de tri, pas comme une vérité absolue : vérifiez toujours manuellement tout jailbreak signalé comme « réussi » contre la cible réelle, car la notation automatisée de toxicité/biais génère des faux positifs.
  • Bonne première passe avant un travail manuel plus poussé d’injection de prompt avec un outil comme l’Arcanum PI Taxonomy.
Aide / Page de manuel
plexiglass

COMMANDS:
  load_model --provider <name> --model <model> [--api-key KEY]
  run_attack --category <jailbreak|toxicity|bias>
  list_attacks                      List available attack modules
  export_report --output <file>     Export scored results as JSON
  help                              Show command help

ATTACK CATEGORIES:
  jailbreak    Known jailbreak/prompt-injection templates
  toxicity     Toxic-output elicitation prompts
  bias         Demographic/social bias probing prompts