Skip to main content

Lamia

The open-source AI pentesting tool. Autonomous AI hackers that find and fix your app's vulnerabilities.


License PyPI


Lamia Overview

Lamia are autonomous AI penetration testing agents that act just like real hackers - they run your code dynamically, find vulnerabilities, and validate them through actual proofs-of-concept. Built for developers and security teams who need fast, accurate security testing without the overhead of manual pentesting or the false positives of static analysis tools.

Key Capabilities:

  • Full pentesting toolkit - reconnaissance, exploitation, and validation out of the box
  • Multi-agent orchestration - teams of AI pentesters that collaborate and scale
  • Real exploit validation - working PoCs, not false positives like legacy vulnerability scanners
  • Developer‑first CLI - actionable findings with remediation guidance
  • Auto‑fix & reporting - generate patches and compliance-ready pentest reports

Use Cases

  • Application Security Testing - Detect and validate critical vulnerabilities in your applications
  • Rapid Penetration Testing - Get penetration tests done in hours, not weeks, with compliance reports
  • Bug Bounty Automation - Automate bug bounty research and generate PoCs for faster reporting
  • CI/CD Integration - Run tests in CI/CD to block vulnerabilities before reaching production

Quick Start

Prerequisites:

  • Docker (running)
  • An LLM API key from a supported provider (OpenAI, Anthropic, Google, and others; see docs/llm-providers/overview.mdx)

Installation & First Scan

# Install Lamia (pick one)
pipx install lamia-agent
# uv tool install lamia-agent
# curl -fsSL https://raw.githubusercontent.com/ProgramingPro2/lamia/lamia/scripts/install.sh | bash

# Configure your AI provider
export LAMIA_LLM="vercel_ai_gateway/zai/glm-5.3"   # Vercel AI Gateway
# export LAMIA_LLM="openrouter/z-ai/glm-5.3"       # OpenRouter
export LLM_API_KEY="your-api-key"

# Run your first security assessment
lamia --target ./app-directory

Updating

# Self-update the standalone binary to the latest release
lamia --update

# ...or upgrade the package you installed
pipx upgrade lamia-agent
# uv tool upgrade lamia-agent

Installed with pipx, uv, or pip? lamia --update prints the matching upgrade command instead (pipx upgrade lamia-agent, uv tool upgrade lamia-agent, pip install --upgrade lamia-agent). Lamia also shows a notice with the right command when a new version is available.


Use Lamia from Your Coding Agent

Lamia is agent-ready. The workflows in skills/ tell an agent how to run a local pentest, fix findings, and set up CI scanning against code, web apps, APIs, and the OWASP Top 10.

See AGENTS.md for the quick reference. The rest of the documentation is in docs/.


✨ Features

Agentic Pentesting Tools

Lamia agents come equipped with a comprehensive offensive security toolkit - the same tools used by professional penetration testers and ethical hackers:

  • HTTP Interception Proxy - Full request/response manipulation and analysis with Caido
  • Browser Exploitation - Automated browser for testing XSS, CSRF, clickjacking, and auth bypass flows
  • Shell & Command Execution - Interactive terminal for exploit development and post-exploitation
  • Custom Exploit Runtime - Python sandbox for writing and validating proof-of-concept exploits
  • Reconnaissance & OSINT - Automated attack surface mapping, subdomain enumeration, and fingerprinting
  • Static & Dynamic Code Analysis - SAST + DAST capabilities for comprehensive application security testing
  • Vulnerability Knowledge Base - Structured findings with CVSS scoring and OWASP classification

Comprehensive Vulnerability Scanner

Lamia identifies, validates, and exploits a wide range of security vulnerabilities across the OWASP Top 10 and beyond:

  • Broken Access Control - IDOR, privilege escalation, auth bypass
  • Injection Attacks - SQL injection, NoSQL injection, OS command injection, SSTI
  • Server-Side Vulnerabilities - SSRF, XXE, insecure deserialization, RCE
  • Client-Side Attacks - XSS (stored/reflected/DOM), prototype pollution, CSRF
  • Business Logic Flaws - Race conditions, payment manipulation, workflow bypass
  • Authentication & Session - JWT attacks, session fixation, credential stuffing vectors
  • Infrastructure & Cloud - Misconfigurations, exposed services, cloud security issues
  • API Security - Broken authentication, mass assignment, rate limiting bypass

Graph of Agents (Multi-Agent Pentesting)

Advanced multi-agent orchestration for comprehensive automated penetration testing:

  • Distributed Pentesting - Specialized AI agents for recon, exploitation, and post-exploitation
  • Scalable Security Testing - Parallel execution across multiple targets for fast, comprehensive coverage
  • Dynamic Coordination - Agents share discoveries, chain vulnerabilities, and collaborate like a red team

🖥️ Local Web Viewer

Every scan writes its results to disk as it runs. Bring them up in a local dashboard with a single command:

# Open the most recent run
lamia view

# ...or open a specific run by name
lamia view my-run-name

# Expose the viewer on all IPv4 interfaces at a fixed port
lamia view --host 0.0.0.0 --port 8080 --no-open

The dashboard shows the findings, a live map of the agent team, and past runs. Nothing leaves your machine, and the UI ships prebuilt. lamia view binds to 127.0.0.1 and prints a tokened link that grants access to the run, so share it carefully.

See docs/usage/viewer.mdx for the options and for reaching the viewer from another machine.


Usage Examples

Basic Usage

# Scan a local codebase
lamia --target ./app-directory

# Security review of a GitHub repository
lamia --target https://github.com/org/repo

# Black-box web application assessment
lamia --target https://your-app.com

API Testing (OpenAPI / Swagger / Postman)

Point Lamia at an API contract and it tests every declared endpoint instead of having to discover them by crawling. Pair the spec with the live base URL so the agent knows where to send traffic:

# OpenAPI / Swagger file, Postman export, or a live collection by id
lamia --target ./openapi.yaml --target https://api.your-app.com
lamia --target postman://<collection-uuid> --target https://api.your-app.com

Advanced Testing Scenarios

# Grey-box authenticated testing
lamia --target https://your-app.com --instruction "Perform authenticated testing using credentials: user:pass"

# Multi-target testing (source code + deployed app)
lamia -t https://github.com/org/app -t https://your-app.com

# Targets from a file, one target per non-empty, non-comment line
lamia --target-list ./targets.txt

See docs/usage/cli.mdx for every option, including scan modes, diff scope, instruction files, and budgets.

Headless Mode

Run Lamia programmatically without interactive UI using the -n/--non-interactive flag - perfect for servers and automated jobs. The CLI prints real-time vulnerability findings and the final report before exiting. Exits with non-zero code when vulnerabilities are found.

lamia -n --target https://your-app.com

CI/CD (GitHub Actions)

Lamia can be added to your pipeline to run a security test on pull requests with a lightweight GitHub Actions workflow:

name: lamia-penetration-test

on:
  pull_request:

jobs:
  security-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0

      - name: Install Lamia
        run: pipx install lamia-agent

      - name: Run Lamia
        env:
          LAMIA_LLM: ${{ secrets.LAMIA_LLM }}
          LLM_API_KEY: ${{ secrets.LLM_API_KEY }}

        run: lamia -n -t ./ --scan-mode quick

Configuration

export LAMIA_LLM="vercel_ai_gateway/zai/glm-5.3"   # Vercel AI Gateway
# export LAMIA_LLM="openrouter/z-ai/glm-5.3"       # OpenRouter
export LLM_API_KEY="your-api-key"

# Optional
export LLM_API_BASE="your-api-base-url"  # if using a local model, e.g. Ollama, LMStudio

Sign in with a ChatGPT subscription

Instead of a metered API key, you can run Lamia on your ChatGPT Plus/Pro subscription:

lamia auth login chatgpt             # sign in with your ChatGPT account
export LAMIA_LLM="chatgpt/gpt-5.4"   # chatgpt/<model> runs on the subscription
lamia auth status                    # show the active sign-in, or logout to forget it

Connect your own MCP servers

Lamia can connect to Model Context Protocol (MCP) servers you list and expose their tools to the agent during a run. Create ~/.lamia/mcp-servers.json with a JSON list of local stdio servers or remote http servers:

[
  {
    "name": "github",
    "transport": "http",
    "url": "https://api.githubcopilot.com/mcp/",
    "auth": { "kind": "bearer", "token": "your-token" },
    "allowed_tools": ["list_issues"]
  }
]

Each server's tools are namespaced by name, for example github_list_issues. See docs/integrations/mcp.mdx for the full schema, tool filtering, and stdio servers.

Recommended models for best results:

See docs/llm-providers/overview.mdx for supported providers including Vertex AI, Bedrock, Azure, and local models.

Documentation

Guides for usage, CI, skills, and configuration live in docs/.

Contributing

Contributions of code, docs, and skills are welcome. Start with docs/contributing.mdx and CONTRIBUTING.md.

Acknowledgements

Lamia builds on the incredible work of open-source projects like LiteLLM, Caido, Nuclei, Playwright, and Bubble Tea. Huge thanks to their maintainers!

Metadata

Release files for lamia-agent 1.8.0

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

Built distributions (wheels)

Table of built distributions (wheels) for lamia-agent 1.8.0
File Actions
lamia_agent-1.8.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for lamia_agent-1.8.0-py3-none-win_amd64.whl
lamia_agent-1.8.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for lamia_agent-1.8.0-py3-none-manylinux_2_17_x86_64.whl
lamia_agent-1.8.0-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for lamia_agent-1.8.0-py3-none-manylinux_2_17_aarch64.whl
lamia_agent-1.8.0-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details for lamia_agent-1.8.0-py3-none-macosx_11_0_x86_64.whl
lamia_agent-1.8.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for lamia_agent-1.8.0-py3-none-macosx_11_0_arm64.whl

Total release size: 21.9 MB

Release files / lamia_agent-1.8.0-py3-none-win_amd64.whl

Download URL lamia_agent-1.8.0-py3-none-win_amd64.whl
Size 4.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
4492a29090565b9b8f2d73b46bed6f8003226c3499f53ac29342170884275516
BLAKE2b-256 checksum
How to use checksums
a11b7d2c30269834020cf475a3c7c38cbdd89861927212a275d7fdfc02a0dc57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / lamia_agent-1.8.0-py3-none-manylinux_2_17_x86_64.whl

Download URL lamia_agent-1.8.0-py3-none-manylinux_2_17_x86_64.whl
Size 4.4 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
3ec9961ccb113e9a0896a30ea0dcd0c4b03d46cae6fd57e34df86074df803371
BLAKE2b-256 checksum
How to use checksums
a214dcf39d5f3cf9575fc87a584f28253dc5fdc502fc71d252e5b7fa62322a29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / lamia_agent-1.8.0-py3-none-manylinux_2_17_aarch64.whl

Download URL lamia_agent-1.8.0-py3-none-manylinux_2_17_aarch64.whl
Size 4.2 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
8f2b8032f8080398783517443f7a000af9a8f0293029c9cdd293f9fa56474f44
BLAKE2b-256 checksum
How to use checksums
c3c7c2943cd1250be2d9685aa0a669d7320abebf66a54c5fa78316f94ef43e50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / lamia_agent-1.8.0-py3-none-macosx_11_0_x86_64.whl

Download URL lamia_agent-1.8.0-py3-none-macosx_11_0_x86_64.whl
Size 4.5 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
429d7c20e2d718bd7aebf33e62df1f19996bfbf32534a4747bc4723d9693240f
BLAKE2b-256 checksum
How to use checksums
a1ed1258f40a0354afef8707c1ba8a436deb2a767356c417435b19168bf601d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / lamia_agent-1.8.0-py3-none-macosx_11_0_arm64.whl

Download URL lamia_agent-1.8.0-py3-none-macosx_11_0_arm64.whl
Size 4.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ce7556ae0789afea6ad44f0666e6b839c06763c03192c1d635e8f16fcc75de96
BLAKE2b-256 checksum
How to use checksums
c3d9b7168627605bbb43c0e1076c9e1953ed23e46c6c9f613063e9a4e40d3b8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for lamia-agent 1.8.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

1.8.0 This release

5 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