STRIDE GPT is an AI-powered threat modelling tool that leverages Large Language Models (LLMs) to generate threat models and attack trees for a given application based on the STRIDE methodology. Users provide application details, such as the application type, authentication methods, and whether the application is internet-facing or processes sensitive data. The model then generates its output based on the provided information.
Table of Contents
- Support the Project
- Features
- Enterprise Deployment
- Talk at Open Security Summit
- Changelog
- Installation
- Repository layout
- Usage
- Sample output
- Security Best Practices
- Contributing
- License
Support the Project
If you find STRIDE GPT useful, please consider supporting the project:
- ⭐ Star the repository on GitHub to help more people discover the tool
- ☕ Buy me a coffee to support continued development and maintenance
Features
- Agentic codebase analysis: Point the CLI at a codebase and get an autonomous, deep STRIDE threat model — the agent plans, explores, and synthesizes findings across subsystems
- CLI and interactive REPL: Full-featured terminal experience with tab completion, history, and real-time progress — no browser required
- Simple and user-friendly Streamlit web interface
- Generates threat models based on the STRIDE methodology
- Agentic AI support: Specialized threat modeling for agentic AI systems with OWASP Top 10 for Agentic Applications (ASI) integration
- Generative AI support: Threat modeling for GenAI applications with OWASP LLM Top 10 integration
- MITRE ATT&CK & ATLAS mapping: Threats are annotated with standardized adversary technique IDs (MITRE ATT&CK Enterprise for traditional infrastructure attacks, ATLAS for ML/LLM-specific attacks) — surfaced as columns in markdown, linked pills in HTML, and
mitre_attackproperties in SARIF - Architectural pattern detection: Automatically detects RAG pipelines, multi-agent systems, code execution environments, tool ecosystems, and more from application descriptions (inspired by CSA MAESTRO)
- Embedded draw.io diagram editor: Create and edit architecture diagrams directly in STRIDE-GPT using the integrated diagrams.net editor — no external tool needed. Diagrams are parsed as XML to extract components, connections, and trust boundaries, providing significantly richer context for threat model generation than image analysis alone. The existing image upload workflow is unchanged. By default the editor loads from the hosted
embed.diagrams.net; for self-hosted or air-gapped deployments, point it at your own draw.io via theSTRIDE_GPT_DRAWIO_URLenvironment variable - Multi-modal: Use architecture diagrams, flowcharts, etc. as inputs for threat modelling across all supported vision-capable models
- Data Flow Diagrams: Generate DFDs from your application description (or parse an uploaded DFD image), edit the Mermaid source live, and feed the confirmed diagram back into the Threat Model and Attack Tree prompts as the authoritative system model. CLI
/analyzealso emits a system-level DFD alongside its findings - Generates attack trees to enumerate possible attack paths
- Suggests possible mitigations for identified threats
- Supports DREAD risk scoring for identified threats
- Generates Gherkin test cases based on identified threats
- GitHub repository analysis for comprehensive threat modelling (including GitHub Enterprise support)
- Multiple output formats: Markdown, JSON, SARIF (imports into GitHub, GitLab, Azure DevOps, IDEs), and a self-contained HTML view for sharing with stakeholders
- Advanced reasoning model support (OpenAI GPT-5.4/5.5 series, Anthropic Claude 4.6/4.8 with Extended Thinking, Google Gemini 3, Mistral Magistral series)
- Comprehensive LLM provider support via LiteLLM: OpenAI, Anthropic, Google AI, Mistral, Groq, DeepSeek, plus local hosting via LM Studio Server
- No data storage; application details are not saved
- Available as a Docker container image for easy deployment
- Environment variable support for secure configuration
Enterprise Deployment
Want to customize STRIDE-GPT for your organization? Check out our comprehensive Operationalization Guide to learn how to:
- 🎯 Inject organizational security controls and standards
- 📋 Customize threat models with your compliance requirements
- 🔧 Fork and deploy STRIDE-GPT internally
- 📊 Get context-aware, actionable threat models specific to your environment
The guide includes step-by-step instructions, code examples, and deployment patterns for organizations looking to scale AI-powered threat modeling across their teams.
Talk at Open Security Summit
In January 2024 I gave a talk about STRIDE GPT at the Open Security Summit. During the talk, I discussed the project's inception, its core functionalities, recent updates, and some future plans. You can watch the full presentation below:
This video is an excellent resource for anyone interested in understanding how STRIDE GPT works and how it can be used to improve threat modelling.
Changelog
Version 0.19 (latest)
--versionflag (#161):stride-gpt --versionnow prints the installed version and exits, and the interactive TUI banner shows the running version so you can confirm what you're on at a glance.- Dependency management consolidated onto uv (closes #155):
uv.lockis now the single source of truth for every dependency. The duplicatedrequirements.txtfiles are retired; the Docker UI image and the security-scan workflow install fromuv.lockviauv export, so what ships and what gets scanned can no longer drift from what's locked. No change forpip install stride-gptusers. - Documentation: Added a sample threat-model markdown output (#151) and an interactive REPL cheat sheet (#163) to the README.
Version 0.18
- Embedded draw.io diagram editor (#132, #138): The Streamlit Threat Model tab now embeds the diagrams.net editor so you can sketch an architecture diagram in-app; on save the diagram XML is parsed (components, connections, trust boundaries) and folded into the threat-model prompt. GitHub analysis, image upload, the diagram editor, and an AI-assisted guided builder are unified into one tabbed "describe your application" section over a single description canvas, so the optional inputs no longer crowd out the primary description field. The guided builder now calls the selected model to draft a description and suggest missing security-relevant details, replacing the previous static template and coverage checks. For self-hosted or air-gapped deployments the editor host is configurable via
STRIDE_GPT_DRAWIO_URL(defaults toembed.diagrams.net), the iframepostMessageorigin is scoped to it, and untrusted diagram XML is parsed withdefusedxml. - DeepSeek provider support (closes #133): DeepSeek is now a first-class model provider in both the CLI setup wizard and the Streamlit UI, offering
deepseek-v4-proanddeepseek-v4-flash. Calls route through LiteLLM's nativedeepseek/integration (hosted endpoint, no custom base URL needed); set your key viaDEEPSEEK_API_KEY. - Data Flow Diagram support (closes #56): New "Data Flow Diagram" tab in the Streamlit UI generates DFDs from the application description, parses uploaded DFD images via vision-capable models, and renders an editable Mermaid source pane with a live preview. Ticking "Use this DFD for the threat model" stores the confirmed diagram in session state and splices it into subsequent Threat Model and Attack Tree prompts as the authoritative system model — closing the description → DFD → review → refined threat model loop the issue asks for. The CLI's
/analyzeagent also produces a system-level DFD after synthesis, rendered as a Mermaid block in the markdown report, carried in the JSONdata_flow_diagramfield, and shown in the HTML view via a CDN-loaded Mermaid runtim
