Thanks for helping make LLM red-teaming better. By contributing you agree your work is licensed under the project's AGPL-3.0-or-later license, and that you'll use the tool within the bounds described in SECURITY.md.
python -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]" # add [barcodes] / [stego] for those tools
wallbreaker check # validate config (profiles, keys, target, judge)
pytest -q # full suite must stay greenwallbreaker/providers/normalize OpenAI + Anthropic wire formats to one event stream (agent/messages.py);agent/loop.pyis protocol-agnostic.wallbreaker/tools/— each tool is a module exposingregister(registry); add the module name totools/__init__.pyto wire it in.wallbreaker/transforms/— pure encode/decode functions, indexed intransforms/__init__.pywith alossyflag.wallbreaker/presets.py— curated single-shot jailbreak templates.wallbreaker/tui/— the Textual terminal UI (theme intheme.py, chrome inheader.py/sidebar.py/widgets.py, layout inapp.tcss).dashboard/— FastAPI backend + React/Svelte web dashboard.
- No comments or emoji in code. Use short docstrings where they add real value.
- Presets are
.format()-filled — keep literal{/}out of templates (use pipes or brackets for dividers);{request}must be the only brace token. A test enforces this. - New tools register into a LOCAL
ToolRegistryin their own test, notbuild_registry(). - Transforms: mark lossy ones
lossy=True; lossless ones must round-trip exactly. - Add a new tool by writing
register(registry)and appending the module name to the tuple intools/__init__.py(a serial collision hub — one edit at a time). - Run
pytest -qbefore opening a PR; the suite is the contract.
Most techniques land as either a preset (presets.py), a transform
(transforms/), or a tool (tools/), each following the conventions of its
category. Label generic academic techniques honestly (cite the paper) rather than
overclaiming novelty.
Contributions that make the tool better at finding and reporting weaknesses are welcome. Contributions whose only purpose is to maximize real-world harm (e.g. shipping weaponized payloads with no evaluation value) are not.