Lamia
The open-source AI pentesting tool. Autonomous AI hackers that find and fix your app's vulnerabilities.
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:
- Z.ai GLM-5.3 on Vercel AI Gateway -
vercel_ai_gateway/zai/glm-5.3(recommended) - Z.ai GLM-5.3 on OpenRouter -
openrouter/z-ai/glm-5.3(recommended) - DeepSeek V4.1 Flash on OpenRouter -
openrouter/deepseek/deepseek-v4.1-flash-1017 - OpenAI GPT-6.1 Sol -
openai/gpt-6.1-sol(needs Daybreak access) - Anthropic Claude Opus 5.5 -
anthropic/claude-opus-5-5(needs CVP access) - Google Gemini 4 Argon -
vertex_ai/gemini-4-argon(needs Fairwind access) - DeepSeek V4 Pro -
deepseek/deepseek-v4-pro - Moonshot Kimi K3.1 Pro -
moonshot/kimi-k3.1-pro
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)
| File | Actions Reset | |||
|---|---|---|---|---|
| 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.