Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>AART — Autonomous Attack & RemediationNew to Visual Studio Code? Get it now.
AART — Autonomous Attack & Remediation

AART — Autonomous Attack & Remediation

AART

| (0) | Free
Inline security scanning with 4,900+ rules. Squiggles, hover cards, and one-click fixes powered by the AART agent pipeline.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AART Security — Autonomous Attack & Remediation

AART sidebar overview — screenshot needed before publish

AART is a security engineering agent that lives inside VS Code. It's not a linter and it's not a report generator — it detects vulnerabilities, investigates why they're real (or aren't), proposes fixes you review before anything touches your files, and keeps a persistent memory of your project's security posture across sessions and scans.

Status: public beta. AART is under active development. The core scan → findings loop is stable and used daily; some deeper features (full remediation workflows, Architect-mode hardening bundles) are newer and still maturing. See the CHANGELOG for what's shipped.

What AART actually does

  • Detects. A curated, first-party rule corpus (thousands of rules across dozens of languages and frameworks) runs via the Opengrep engine, plus AST-aware taint analysis and dependency/secret scanning.
  • Investigates. Beyond pattern matching, AART builds a structural understanding of your codebase — call graphs, route maps, data flow — and reasons about whether a candidate finding is actually exploitable in your specific code, not just whether it matches a pattern.
  • Remediates. When you ask it to, AART proposes a concrete patch for a finding, shown as a side-by-side diff. Nothing is written to your files without your explicit approval (unless you turn that off yourself).
  • Remembers. Findings, decisions (including false-positive dismissals), and your project's evolving threat model persist across scans — AART doesn't start from zero every time.

The three agent modes

AART's tool access and mutation rights are governed by a mode you pick per session:

Mode What it does Can it change your files?
Analyze Maps your codebase, scans for vulnerabilities, validates findings, and reports — a read-only investigation. No
Fix Full remediation pipeline: generates patches for findings and applies them only after you approve each one (a human confirmation gate on every write). Yes, always confirm-gated
Architect Broader security design work — threat modeling and hardening bundles (e.g. writing project security rules, CI hooks) — for when you want AART to help shape how the project defends itself, not just fix one finding at a time. Yes, confirm-gated

Switch modes from the mode selector in the AART sidebar. Analyze is the default and the safest place to start.

Getting started

  1. Install the extension and sign in from the AART sidebar (the shield icon in the Activity Bar) — AART uses your Supabase-backed account, the same one behind the web dashboard.
  2. Open a workspace. AART detects it automatically on your first scan — there's no manual "connect repo" step. If it's a git repository, AART identifies it by remote URL; otherwise it uses a local, machine-scoped identity.
  3. Run your first scan — click the scan button in the sidebar, right-click a file for AART: Scan Current File, or use the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) → AART: Scan Workspace.
  4. Review findings in the sidebar's Findings tab as they come in.

A guided walkthrough covering these same steps is also available: open the Command Palette and run Help: Open Walkthrough, then pick Get Started with AART Security.

The sidebar tabs

  • Findings — every vulnerability AART has detected in your workspace, each with a severity, a plain-language explanation (not just a rule ID), and the exact file/line it's rooted in. Click a finding to jump to it with an inline squiggle and hover card. Findings persist across VS Code restarts — this tab always reflects your most recent completed scan, not just what ran in the current session.
  • Scan — live progress for an in-flight scan, streamed stage by stage (mapping, static analysis, graph analysis, verification) so a multi-minute deep scan doesn't look like it's hung.

FAQ

Is my code sent anywhere? By default, no — AART scans your workspace using a structural manifest (file paths, sizes, content hashes) built entirely on your machine. No file contents leave your machine for a default scan. A separate, opt-in-only mode lets a specific repository be scanned via a filtered, compressed archive upload for deeper server-side analysis; this is off by default for every repository and has to be explicitly enabled per-repo. If you never opt in, this never happens.

What LLM provider processes my data when deeper (Engine B) analysis runs? AART's interactive agent and deep-reasoning paths currently use DeepSeek as the primary provider, with a small number of specific verification steps (e.g. an independent "judge" check) using a different provider family so it isn't grading its own homework. Only the minimal context needed for a given reasoning step is sent — never your entire repository at once.

Does AART modify my files without asking? No. Analyze mode never writes anything. Fix and Architect modes show you a diff for every proposed change and require your explicit approval before it's applied, unless you deliberately turn on aart.autoAcceptFixes yourself (off by default).

What if AART flags something that isn't actually a problem? Use AART: Mark Finding as False Positive / Dismiss (also available as a button on each finding card). This isn't just a UI hide — it's a real signal AART uses to improve rule quality over time.

Does this replace my existing linters/SAST tools? No — AART is complementary. It's built for reasoning about exploitability and business logic that pattern-matching tools structurally can't reach, alongside its own pattern-based detection layer. Keep your existing tooling running.

Where can I see this running against a real backend, or connect it to my own? The aart.apiUrl setting lets you point the extension at a different AART backend (e.g. a local instance) at runtime. See the extension's settings (search AART in VS Code Settings) for the full list of configuration options, including terminal-command policy, scan-on-save, and telemetry (local-only instrumentation, off by default toggle available).

Feedback

This is a public beta. If something looks wrong, a finding seems off, or a feature is missing, please open an issue on the GitHub repository.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft