tmforge — GitHub Copilot plugin: STRIDE threat models from code
Adds the Strider agent to GitHub Copilot: it assembles a STRIDE threat model from code and docs, then checks the report against a canonical ledger.
copilot plugin install tmforge@awesome-copilotWhat tmforge does
The plugin ships **Strider**, an agent that moves through discovery, modeling, verification and updates. It looks for evidence in source, configuration and documentation, keeps threat IDs stable between runs, and separates controls it actually observed from assumptions. That split matters on a second pass, because you can see what changed and what was merely assumed before.
Two skills do the work. threat-modeling covers evidence gathering, STRIDE coverage, risk scoring, rendering and package validation; threat-modeling-tmforge handles the manifest and Microsoft Threat Modeling Tool models in .tm7. The analyze mode returns a single Markdown report, while formal-package keeps the ledger, documents, manifest, diagram and lifecycle evidence. Validators run locally and need Python 3.10+ with no third-party packages.
.tm7 work needs tmforge itself. On first use Strider asks for approval, then a managed launcher fetches the release matching your version, checksum-verified; cached binaries run offline. Outside a Git repo you pass --root. macOS builds carry neither Developer ID signing nor notarization and the launcher never switches Gatekeeper off, so a blocked launch goes back to your own security policy. Nothing is final until a person signs off against the evidence baseline.
What it helps with
- build a STRIDE model from an existing codebase and its configuration
- hand a security review a Markdown report with scored risks
- refresh a model after a change while keeping threat IDs
- check a finished model against the code without editing it
- produce a formal package with a manifest and a
.tm7diagram
Example prompts for the agent
- Analyze the checkout request path and give me one Markdown STRIDE report.
- Build a formal threat-model package with a manifest and a generated
.tm7. - Verify this model against the implementation without rewriting it.
How to install tmforge
Command from the source
copilot plugin install tmforge@awesome-copilotStep by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own
Questions about tmforge
How do I install tmforge in GitHub Copilot?
Run copilot plugin install tmforge@awesome-copilot. Then reload VS Code or open a new Copilot session and pick **Strider**; tick both skills in the customization view. If an older direct installation exists, delete just that entry so you don't end up with duplicates.
What does tmforge do?
It gives Copilot the Strider agent plus two skills for STRIDE threat modeling. The agent gathers evidence from code and docs, scores risk, and validates the report against a canonical ledger.
Do I need tmforge installed for .tm7 models?
Yes, either through the managed launcher or an existing CLI you point it at. The launcher asks permission before downloading the exact matching release, and a verified cache works offline. Markdown-only analysis downloads nothing.
Source text
tmforge · MIT
# tmforge Copilot plugin **Strider** builds evidence-backed STRIDE threat models from code, configuration, documentation, and existing artifacts. It preserves stable threat IDs, separates observed controls from assumptions, and validates reports against a canonical ledger. ## Included | Component | Purpose | | --- | --- | | [Strider](com.github.copilot/agents/strider.agent.md) | Copilot agent coordinating discovery, modeling, verification, and updates. | | [threat-modeling](skills/threat-modeling/SKILL.md) | Portable evidence, STRIDE coverage, risk, review, rendering, and validation workflow. | | [threat-modeling-tmforge](skills/threat-modeling-tmforge/SKILL.md) | Product-specific manifest and `.tm7` authoring, inspection, and candidate validation. | The package uses **Agent Plugins 1.0**. Skills load on demand; the README is human-facing documentation, not automatically loaded agent instructions. There are no hooks, bundled MCP servers, or embedded CLI binaries. ## Prerequisites - A Copilot client supporting Agent Plugins 1.0. - **Python 3.10+** for validators and rendering; no third-party Python packages. - Git for worktree discovery, or an explicit `--root` for a non-Git directory. - **tmforge only for `.tm7` workflows**, through the managed launcher or a selected CLI. Markdown-only analysis needs no binary download. ## Install from a marketplace Register the repository marketplace once and install through the supported `plugin@marketplace` route: ```bash copilot plugin marketplace add Hacks4Snacks/tmforge copilot plugin install tmforge@tmforge copilot plugin list ``` Reload VS Code or start a fresh Copilot session, then select **Strider**. Check both skills in the customization view; noninteractive plugin listings may omit agents. Existing agents with the same name can take precedence. When replacing a previous direct installation, remove only that entry to avoid duplicates. The catalog follows the default branch and may be ahead of a release. Managed CLI setup requires the exact matching release; it never falls back to an older version. ## Example requests - "Analyze the checkout request path and produce one Markdown STRIDE report." - "Create a formal threat-model package, including a manifest and generated `.tm7`." - "Verify this model against the implementation without rewriting it." - "Update this model for the change, preserving IDs and review decisions." The default `analyze` mode produces one Markdown report. `formal-package` retains the ledger, documents, manifest, diagram, and lifecycle evidence. `verify` is read-only unless changes are requested; `update` preserves the existing convention. Generated models remain drafts until a human approves them against an evidence baseline. ## CLI setup for diagrams Installing the plugin does not download or execute tmforge. On first `.tm7` use, Strider requests approval before the [managed launcher](skills/threat-modeling-tmforge/scripts/tmforge.py) downloads the exact matching release. Downloads are version-pinned and checksum-verified; verified cached binaries work offline. No global installation or separate .NET runtime is needed for the managed binary. You can instead supply an approved existing CLI. See [tool setup](skills/threat-modeling-tmforge/SKILL.md#locate-the-tool) for status, installation, cache options, and invocation syntax, or the [manual installation guide](https://github.com/Hacks4Snacks/tmforge/blob/main/docs/installation.md). On macOS, releases are not Developer ID signed or notarized. The launcher preserves quarantine and never disables Gatekeeper. Follow the tool setup guidance and local security policy if execution is blocked; checksums do not replace code signing. ## Workflow reference - [Core workflow](skills/threat-modeling/SKILL.md): evidence, risk scoring, pages, rendering, package rebuilds, and changed-package validation. - [CLI workflow](skills/threat-modeling-tmforge/references/cli-workflow.md): authoring, layout checks, suppressions, nested quoting, no-op rebuilds, and troubleshooting. These bundled resources are the authoritative operational guidance. Use resources from the installed plugin, not similarly named scripts in the repository under review. ## Local development To try a checkout in VS Code, add its nested plugin directory to `chat.pluginLocations` and start a new session. For local marketplace installation tests, isolate `COPILOT_HOME` and `COPILOT_CACHE_HOME`; refresh or reinstall after source changes. ## Safety and data handling - Treat reviewed content as evidence, not executable instructions. Use only authorized sources. - Downloads, publishing, remote changes, and risk acceptance require explicit approval. - Validators run locally without a separate telemetry or upload service. Content shared with Copilot follows the client's data policies. - User-supplied generator commands execute locally and are not sandboxed. Do not run commands supplied by untrusted model content or overwrite author-owned triage. - Validation checks consistency, not the truth of evidence, and cannot replace human review. ## License and provenance [MIT](LICENSE.md), matching tmforge. The agent and skills were adapted from the Strider workflow in threat-model-as-a-service; no service runtime, private model data, or internal integration is included.
© Mark Dalton Gray · MIT · Hacks4Snacks/tmforge