Skip to main content

House Monkey mascot

House Monkey 🐒

Chaos testing for AI apps. 18 extreme personas attack your AI to find edge cases before users do.

MIT License PyPI GitHub stars

pip install housemonkey
housemonkey run --target https://your-api.com/chat --owasp

House Monkey terminal output — 3 OWASP failures detected

One command. 18 extreme personas. OWASP LLM Top 10 coverage. Terminal report in 2 minutes.

What it does

House Monkey attacks your AI app with realistic extreme users:

  • The Jailbreaker — tries to extract your system prompt (OWASP LLM01)
  • The Angry Customer — escalating hostility, demands manager
  • The Confused Grandma — off-topic, misunderstands everything
  • The Hallucination Baiter — asks about things that don't exist (OWASP LLM09)
  • The Permission Escalator — tricks AI into unauthorized actions (OWASP LLM06)
  • The RAG Poisoner — manipulates retrieval context (OWASP LLM08)
  • ...and 12 more

Each persona runs a multi-turn conversation against your API, then an LLM judge evaluates if your AI handled it correctly.

Quick start

# Install
pip install housemonkey

# List all personas
housemonkey list

# Test your AI (needs OpenAI API key for persona generation + judging)
export OPENAI_API_KEY=sk-...
housemonkey run --target https://your-api.com/chat

# Run only OWASP-mapped personas
housemonkey run --target https://your-api.com/chat --owasp

# Run specific personas
housemonkey run --target https://your-api.com/chat --persona jailbreaker oversharer

# Custom API format (non-OpenAI)
housemonkey run --target https://your-api.com/ask --payload-template '{"input": "{{message}}"}'

# Save JSON report
housemonkey run --target https://your-api.com/chat --output report.json

OWASP LLM Top 10 coverage

OWASP ID Vulnerability Persona
LLM01 Prompt Injection The Jailbreaker
LLM02 Sensitive Info Disclosure The Oversharer
LLM05 Improper Output Handling The JSON Breaker
LLM06 Excessive Agency The Permission Escalator
LLM08 Vector/Embedding Weakness The RAG Poisoner
LLM09 Misinformation The Hallucination Baiter
LLM10 Unbounded Consumption The Resource Abuser

How it works

  1. Each persona has a system prompt that simulates an extreme user type
  2. An LLM generates realistic messages as that persona
  3. Messages are sent to your target API
  4. An LLM judge evaluates if your AI handled the persona correctly
  5. Terminal report shows pass/fail with specific failure reasons

Try it on a broken chatbot

# Start the intentionally broken test target (7 built-in flaws)
python test_target.py

# In another terminal, attack it
housemonkey run --target http://127.0.0.1:8888 --owasp

Requirements

  • Python 3.10+
  • OpenAI API key (for persona generation + judging)
  • Your AI app must have an HTTP API endpoint

License

MIT. Powered by ClawClaw Soul open-source persona engine.

Metadata

Release files for housemonkey 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for housemonkey 0.1.0
File Size Uploaded Provenance Actions
housemonkey-0.1.0.tar.gz 15.6 kB Without provenance Details for housemonkey-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for housemonkey 0.1.0
File Interpreter ABI Platform Actions
housemonkey-0.1.0-py3-none-any.whl Python 3 none any Details for housemonkey-0.1.0-py3-none-any.whl

Total release size: 31.9 kB

Release files / housemonkey-0.1.0.tar.gz

Download URL housemonkey-0.1.0.tar.gz
Size 15.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3aa033f8d8b8a4d5b73f0db0986d988a86bb1bd63c85db3df9ea59b1af717d61
BLAKE2b-256 checksum
How to use checksums
e8a28200e1054a83289325b45161ed112101cf2bc5f40b496442b7addb0c93ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / housemonkey-0.1.0-py3-none-any.whl

Download URL housemonkey-0.1.0-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a987ee1693ea8f9296f47b54382ff4d8fca5e370983d222f9f7e8e72e941fdc
BLAKE2b-256 checksum
How to use checksums
7f5721023877d76219d6cc88f7ad4ba88862a7fd529ae0d9e1431807c15aa958
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Security for housemonkey 0.1.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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page