Catalog PyPI
PACKAGE EXPLORERView in registry

adversaria

PyPI

Adversarial Testing Harness for Large Language Models

adversarialaillmsecuritytesting
Versions collected1
Direct dependencies1From release 0.1.0
Last observed20 Oct, 20:02 UTC

README

Version 0.1.0 documentation

Adversaria Python SDK

Python SDK for Adversaria - Adversarial Testing Harness for LLMs.

Installation

pip install adversaria

Note: This SDK requires the Adversaria CLI to be installed:

cargo install adversaria

Quick Start

from adversaria import Adversaria

# Create client
client = Adversaria()

# Run tests
result = client.run(
    provider="openai",
    model="gpt-4",
    api_key="sk-..."  # Optional, uses OPENAI_API_KEY env var
)

# Check results
print(f"Risk Score: {result.risk_score}/100")
print(f"Successful Attacks: {result.successful_attacks}/{result.total_attacks}")

# Save report
report_path = result.save_report("./reports")
print(f"Report saved: {report_path}")

API Reference

Adversaria

Main client class for running security tests.

client = Adversaria(config_path=None)

Methods:

run(provider, model, suites=None, api_key=None)

Run security tests against an LLM.

Arguments:

  • provider (str): Provider name ('openai', 'anthropic', 'ollama')
  • model (str): Model name
  • suites (list, optional): List of suite IDs to run
  • api_key (str, optional): API key (uses env var if not provided)

Returns: TestResult

list_suites()

List available attack suites.

Returns: List[Suite]

list_reports(directory="./reports")

List available reports.

Returns: List[str] - List of report file paths

load_report(filepath)

Load a report from file.

Returns: TestResult

TestResult

Test execution results.

Attributes:

  • id (str): Unique test run ID
  • model (str): Model tested
  • provider (str): Provider used
  • timestamp (str): Test timestamp
  • risk_score (int): Overall risk score (0-100)
  • total_attacks (int): Total attacks executed
  • successful_attacks (int): Number of successful attacks
  • failed_attacks (int): Number of failed attacks
  • duration_ms (int): Execution time in milliseconds
  • raw_data (dict): Full report data

Methods:

save_report(directory="./reports")

Save report to directory.

Returns: str - Path to saved report

Examples

Basic Testing

import os
from adversaria import Adversaria

# Set API key
os.environ["OPENAI_API_KEY"] = "sk-..."

# Run test
client = Adversaria()
result = client.run(provider="openai", model="gpt-4")

if result.risk_score > 50:
    print("⚠️ High risk detected!")

Specific Suites

result = client.run(
    provider="openai",
    model="gpt-4",
    suites=["prompt_injection", "jailbreak"]
)

Multiple Providers

providers = [
    ("openai", "gpt-4"),
    ("anthropic", "claude-3-opus-20240229"),
]

for provider, model in providers:
    result = client.run(provider=provider, model=model)
    print(f"{provider}/{model}: {result.risk_score}/100")

Load Previous Report

client = Adversaria()

# List all reports
reports = client.list_reports()

# Load latest report
if reports:
    result = client.load_report(reports[0])
    print(f"Risk Score: {result.risk_score}/100")

Requirements

  • Python 3.8+
  • Adversaria CLI (cargo install adversaria)
  • PyYAML

License

MIT

Downloads & popularity

1downloads
1-day window · source-reported counts20 Oct 2026
73.50
2026-07-24: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-07-24–2026-07-242026-07-27: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-07-27–2026-07-272026-07-29: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-07-29–2026-07-292026-07-30: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-07-30–2026-07-302026-08-01: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-01–2026-08-012026-08-02: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-02–2026-08-022026-08-03: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-03–2026-08-032026-08-09: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-09–2026-08-092026-08-13: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-13–2026-08-132026-08-14: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-14–2026-08-142026-08-17: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-17–2026-08-172026-08-20: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-20–2026-08-202026-08-23: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-23–2026-08-232026-08-24: 7 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-24–2026-08-242026-08-28: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-28–2026-08-282026-08-31: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-08-31–2026-08-312026-09-03: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-03–2026-09-032026-09-07: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-07–2026-09-072026-09-09: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-09–2026-09-092026-09-12: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-12–2026-09-122026-09-16: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-16–2026-09-162026-09-18: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-18–2026-09-182026-09-19: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-19–2026-09-192026-09-25: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-25–2026-09-252026-09-26: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-26–2026-09-262026-09-27: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-27–2026-09-272026-09-28: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-28–2026-09-282026-09-30: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-09-30–2026-09-302026-10-02: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-02–2026-10-022026-10-06: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-06–2026-10-062026-10-07: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-07–2026-10-072026-10-08: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-08–2026-10-082026-10-09: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-09–2026-10-092026-10-13: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-13–2026-10-132026-10-15: 3 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-15–2026-10-152026-10-19: 2 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-19–2026-10-192026-10-20: 1 · observed 2026-10-21T15:19:29.1579744Z · period 2026-10-20–2026-10-20
24 Jul20 Oct

pypistats · 37 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-20 – 2026-10-2012026-10-21T15:19:29.1579744Z
2026-10-19 – 2026-10-1922026-10-21T15:19:29.1579744Z
2026-10-15 – 2026-10-1532026-10-21T15:19:29.1579744Z
2026-10-13 – 2026-10-1312026-10-21T15:19:29.1579744Z
2026-10-09 – 2026-10-0912026-10-21T15:19:29.1579744Z
2026-10-08 – 2026-10-0822026-10-21T15:19:29.1579744Z
2026-10-07 – 2026-10-0712026-10-21T15:19:29.1579744Z
2026-10-06 – 2026-10-0612026-10-21T15:19:29.1579744Z
2026-10-02 – 2026-10-0212026-10-21T15:19:29.1579744Z
2026-09-30 – 2026-09-3032026-10-21T15:19:29.1579744Z
2026-09-28 – 2026-09-2812026-10-21T15:19:29.1579744Z
2026-09-27 – 2026-09-2732026-10-21T15:19:29.1579744Z
2026-09-26 – 2026-09-2612026-10-21T15:19:29.1579744Z
2026-09-25 – 2026-09-2522026-10-21T15:19:29.1579744Z
2026-09-19 – 2026-09-1932026-10-21T15:19:29.1579744Z
2026-09-18 – 2026-09-1812026-10-21T15:19:29.1579744Z
2026-09-16 – 2026-09-1612026-10-21T15:19:29.1579744Z
2026-09-12 – 2026-09-1222026-10-21T15:19:29.1579744Z
2026-09-09 – 2026-09-0912026-10-21T15:19:29.1579744Z
2026-09-07 – 2026-09-0732026-10-21T15:19:29.1579744Z
2026-09-03 – 2026-09-0312026-10-21T15:19:29.1579744Z
2026-08-31 – 2026-08-3122026-10-21T15:19:29.1579744Z
2026-08-28 – 2026-08-2812026-10-21T15:19:29.1579744Z
2026-08-24 – 2026-08-2472026-10-21T15:19:29.1579744Z
2026-08-23 – 2026-08-2332026-10-21T15:19:29.1579744Z
2026-08-20 – 2026-08-2022026-10-21T15:19:29.1579744Z
2026-08-17 – 2026-08-1722026-10-21T15:19:29.1579744Z
2026-08-14 – 2026-08-1432026-10-21T15:19:29.1579744Z
2026-08-13 – 2026-08-1332026-10-21T15:19:29.1579744Z
2026-08-09 – 2026-08-0912026-10-21T15:19:29.1579744Z
2026-08-03 – 2026-08-0322026-10-21T15:19:29.1579744Z
2026-08-02 – 2026-08-0212026-10-21T15:19:29.1579744Z
2026-08-01 – 2026-08-0112026-10-21T15:19:29.1579744Z
2026-07-30 – 2026-07-3012026-10-21T15:19:29.1579744Z
2026-07-29 – 2026-07-2912026-10-21T15:19:29.1579744Z
2026-07-27 – 2026-07-2722026-10-21T15:19:29.1579744Z
2026-07-24 – 2026-07-2422026-10-21T15:19:29.1579744Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.024 Feb 20261

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
adversaria/adversaria

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:02 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:2aa20da90b28576ddbee9cd0801908b5c5c3daa757be99fd0d6c7fbd9be0a609