AWS Threat Composer vs pytm
AWS Threat Composer
awslabs.github.iopytm
github.comSide by side
| Figure | AWS Threat Composer | pytm |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 0 | 1 |
| Spec score · Threat Modeling Software | 7.9 (#4) | 7.6 (#10) |
| Purpose | Threat Composer is a threat modeling ecosystem for identifying security issues and developing strategies to address them in the context of a system. | pytm is a Pythonic framework for threat modeling intended to make threat modeling more automated and developer-centric. |
Plans
In their own words
AWS Threat Composer
AWS Threat Composer is a threat-modeling project for identifying security issues and developing ways to address them. Its structured threat grammar offers adaptive suggestions for composing threat statements. Models can include architecture and data-flow diagrams, tracked assumptions, links between threats and mitigations, and an insights dashboard with quality metrics and improvement suggestions. Users can manage multiple models and export them as JSON, Markdown, DOCX, or PDF. The web application stores data in the browser, supports import and export, and is available as a hosted demo or as a static site deployed in an AWS account. The VS Code extension in AWS Toolkit edits .tc.json files, works offline, and stores data locally. A browser extension displays threat model files on GitHub, GitLab, Bitbucket, and Amazon CodeCatalyst; it is read-only and requires internet access for web-hosted files. The AI-assisted CLI and MCP server can analyze source code to create starter models, but the tools are experimental. They use AWS Bedrock, and inference costs apply.
pytm
pytm is a free, open-source Python framework for creating threat models from architectural descriptions. A model is defined in Python with elements such as servers, data stores, actors, processes, data flows, and trust boundaries. From it, pytm can generate data flow diagrams, sequence diagrams, and relevant threats. Templates can produce reports with diagrams and findings, and a RevealMD template can create slides for browser presentation. Data flow diagrams use Graphviz DOT, while sequence diagrams use PlantUML. Models can be imported from JSON with pytm's Python load function. Users can supply a custom threats file and change finding attributes such as CVSS score, response text, and severity. Requirements include Python 3.11 or later, Graphviz, Java OpenJDK 10 or 11, and plantuml.jar; Linux and macOS are listed, while Windows use is documented through Devbox in WSL. The project also documents container and Devbox dependency workflows. The README warns that strings in threats.json are evaluated with eval(), so the file's permissions need protection against unauthorized changes.