Apache-2.0 core.
The current repository exposes the product source, schemas, tests, documentation, contribution guidance, and security policy under a permissive open-source license.
Open source
Aegis starts with an Apache-2.0 open-source core. The point is not to give away every future operating layer; it is to make the trust primitives developers rely on visible and testable.
The current repository exposes the product source, schemas, tests, documentation, contribution guidance, and security policy under a permissive open-source license.
Local workflows and evidence formats are more credible when developers can inspect the code paths that produce them.
Future hosted collaboration, organization controls, private managed infrastructure, and premium operating layers do not need to make the local trust primitives opaque.
Trust infrastructure for software agents.
Security claims need proof.
Aegis turns security-sensitive software changes into an inspectable trust chain:
evidence → authorization → verification → remediation → outcome → memory.
Overview · What ships today · Trust model · Product · Architecture · Ecosystem · Quick start
Attack Graph / Data Sentinel in the Aegis VS Code extension. The numbers shown are from an intentionally vulnerable local demo repository, not product benchmarks.
Software agents are becoming capable of writing code, editing repositories, calling tools, triggering CI, and proposing production changes at a speed that makes human review alone insufficient.
Aegis is built around a different question from a conventional scanner:
Can this security-sensitive action be trusted — and can Aegis show why?
Aegis does not treat a model answer, scanner result, or successful patch application as proof by itself. It keeps the trust questions separate, records the evidence behind each one, and connects them into a durable security record.
At the product level, Aegis is a developer security system spanning VS Code, CLI, GitHub Action, and a local orchestration backend. At the architectural level, it is the first implementation of a broader trust layer for autonomous software agents.
A security claim should be able to answer all of these questions:
| Question | Aegis records |
|---|---|
| What was requested? | operation, repository revision, task graph, policy context |
| Was it allowed? | explicit authorization, scope, capability, execution limits |
| What supports the claim? | deterministic evidence, code locations, data flow, model review |
| Was it independently checked? | verifier route, verdict, confidence, route independence, consensus |
| Is the attack path real? | threat model, source→sink path, trust-boundary crossings, exploitability |
| Did sensitive data actually flow? | graph-proven Data Sentinel exposure |
| Was the exact remediation authorized? | immutable remediation manifest and patch digest |
| Did the exact remediation work? | project checks, static verification, regression analysis, authorized replay |
| What happened at the end? | committed / rolled back / rollback blocked terminal state |
| Can the conclusion be trusted later? | Evidence Graph, immutable outcome, project security memory, policy history |
The result is not simply a finding. It is an inspectable trust chain.
Aegis is already implemented across multiple security layers.
| Layer | Current capability |
|---|---|
| Aegis Developer | VS Code extension, CLI, GitHub Action, local backend |
| Security Engine | deterministic scanning, secrets, dependencies, configuration, attack-surface analysis |
| Threat Modeling | repository-aware threat-model artifacts derived from security context |
| Evidence Graph | canonical claims with provenance, evidence nodes, relationships, confidence, lifecycle state |
| Independent Verification | primary review, verifier review, route independence, deterministic consensus |
| Fix-and-Prove | explicit authorization, exact patch identity, verification, rollback semantics, immutable terminal outcomes |
| Attack Graph | deterministic materialization of source→sink attack paths and trust-boundary crossings |
| Data Sentinel | sensitive-data exposure only when the graph proves the flow |
| Project Security Memory | immutable snapshots and claim reconciliation across repository revisions |
| Policy | explicit ALLOW, REVIEW, and BLOCK decisions |
The public Marketplace package is a preview. The main branch may be ahead of the latest packaged Marketplace build between preview releases.
The system is designed around a sequence of explicit trust boundaries.
flowchart LR
I[Intent] --> C[Capability]
C --> A[Authorization]
A --> E[Execution]
E --> P[Evidence]
P --> V[Independent verification]
V --> O[Terminal outcome]
O --> M[Memory]
M --> F[Future policy]
Aegis represents important security conclusions as canonical claims, not free-form model prose.
A claim can carry:
Evidence relationships can express semantics such as supports, contradicts, corroborates, derived_from, verifies, and mitigates.
Invalid identities, broken references, incompatible relationships, and provenance mismatches fail closed rather than being silently normalized.
Analysis is not permission to execute code.
Aegis separates inspection from actions that can mutate a repository or execute repository-controlled behavior. Security-sensitive execution is gated by explicit authorization and bounded capabilities.
Where model-backed analysis is enabled, Aegis can separate:
The trust record can preserve the provider/model for each role, route independence, verdict, confidence, reasons, and evidence.
A model is therefore an evidence source — not the security authority.
Fix-and-Prove binds the authorized remediation to an exact patch identity.
The system tracks:
Aegis persists security state across repository revisions instead of treating every scan as an unrelated event.
That makes future policy aware of whether a claim is new, persistent, changed, resolved, reopened, mitigated, or verified fixed.
The Evidence Graph is the trust substrate underneath findings, threat models, remediation, and memory.
A canonical claim is meant to be answerable later:
Claim state can express:
SUSPECTED → SUPPORTED → CONFIRMED → MITIGATED → VERIFIED_FIXED
with explicit alternatives such as FALSE_POSITIVE, ACCEPTED_RISK, and INCONCLUSIVE.
A failed or partial workflow is not persisted as a clean security baseline.
A vulnerability label is useful, but it is not an attack path.
Aegis materializes deterministic attack paths from the exact attack-surface and threat-model artifacts that produced them.
An attack path can preserve:
The difference is important:
“Command injection exists” is a finding. “Attacker-controlled input reaches this process-execution sink through this exact path, crossing these boundaries, supported by this evidence” is a proof-oriented security statement.
Attack Graph artifacts also carry provenance and deterministic digest boundaries so that later memory cannot quietly substitute a different source artifact.
Data Sentinel is the sensitive-flow layer of the Attack Graph.
Its question is deliberately narrow:
Which classified data can reach which security-relevant sink on a graph-proven path?
Aegis does not classify generic attacker input as a credential, secret, PII, or other sensitive class merely because the label would make the report more dramatic.
No graph-proven sensitive flow → no Data Sentinel exposure claim.
This makes Data Sentinel useful for reasoning about actual data exposure rather than broad keyword presence.
Fix-and-Prove treats remediation as a security-sensitive transaction.
plan
↓
explicit authorization
↓
exact patch + digest
↓
immutable pending manifest
↓
apply transaction
↓
project verification
↓
static verification
↓
regression analysis
↓
authorized dynamic replay when required
↓
unified verdict
↓
commit / rollback / rollback-blocked
↓
immutable terminal outcome
↓
Evidence Graph
↓
Project Security Memory
Aegis does not call a fix verified merely because:
| Outcome | Meaning |
|---|---|
| VERIFIED | the required evidence supports that the target is resolved without an unacceptable regression |
| PARTIAL | available checks passed, but the evidence is insufficient for a verified security claim |
| FAILED | the target remains, a required check failed, provenance drift occurred, a regression appeared, or execution could not support a trustworthy conclusion |
There is no demo-only success path. Incomplete evidence stays incomplete.
Dynamic validation is separately authorized because executing repository-controlled behavior is a different capability from reading code.
The local validation boundary is designed around:
no-new-privilegesDynamic evidence can confirm a threat, fail to reproduce it, be blocked by the safety boundary, or remain inconclusive.
“Could not run” never becomes “safe”.
Security state should survive the current window, process, or model call.
Aegis stores immutable project snapshots and reconciles claims across repository revisions.
A reconciliation can classify a claim as:
newpersistentchangedresolvedreopenedRepository revision drift and source drift fail closed when trust depends on a stable source revision.
Only a legitimately committed and verified remediation lifecycle can become remembered verified_fixed state.
Evidence becomes operational when policy can act on it.
Aegis produces explicit policy outcomes:
A blocked, cancelled, failed, or timed-out workflow never becomes proof of safety.
Aegis is organized around orchestration, evidence, controlled execution, and durable security state.
flowchart TB
U[Developer / Software Agent]
subgraph Surfaces[Aegis Developer]
VS[VS Code]
CLI[CLI]
GH[GitHub Action]
end
U --> VS
U --> CLI
U --> GH
VS --> O
CLI --> O
GH --> O
O[Task Planner + Orchestrator + Policy Gates]
O --> SE[Deterministic Security Specialists]
O --> MR[Primary Review / Verifier / Consensus]
O --> TM[Threat Model]
O --> DV[Controlled Dynamic Validation]
SE --> EG[Evidence Graph]
MR --> EG
TM --> AG[Attack Graph / Data Sentinel]
SE --> AG
EG --> FP[Fix-and-Prove]
AG --> FP
DV --> FP
FP --> TO[Immutable Terminal Outcome]
TO --> MEM[Project Security Memory]
MEM --> POL[ALLOW / REVIEW / BLOCK]
The developer-facing product surfaces are:
Security work is represented as a task graph with explicit dependencies, artifact contracts, integrity checks, and policy gates.
This allows the workflow to be inspected before execution and audited after it.
The engine combines deterministic specialists and explicitly bounded model-assisted reasoning for:
Aegis preserves:
The goal is not simply to know what a tool said now, but to preserve why that conclusion was trusted.
The architecture is governed by a small set of invariants.
verified_fixed.Aegis is designed to stop or downgrade the trust conclusion when it encounters conditions such as:
The extension is the interactive Aegis workspace.
It can:
Repository commands are gated by VS Code Workspace Trust.
The CLI exposes deterministic and orchestration-oriented workflows for local development, scripting, and release validation.
It shares the same backend trust contracts rather than implementing a separate security model.
The Action provides a pull-request security gate without executing repository code.
It can emit policy evidence, change-gate output, and SARIF.
name: Aegis
on:
pull_request:
permissions:
contents: read
security-events: write
jobs:
aegis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: lemkyz/Aegis@v0.2.0
with:
base: ${{ github.event.pull_request.base.sha }}
head: ${{ github.event.pull_request.head.sha }}
For production use, pin Aegis to a published release tag or immutable commit.
The FastAPI backend is the orchestration and trust engine behind the developer surfaces.
It coordinates:
Aegis starts with software security because security-sensitive code changes are a concrete place to prove the trust architecture.
The longer-term problem is larger:
Autonomous software agents should be permissioned, least-privilege, monitored, explainable, evidence-backed, independently verifiable, reversible, and remembered.
flowchart LR
A[Extension] --> B[Evidence]
B --> C[Fix-and-Prove]
C --> D[Attack Graph / Data Sentinel]
D --> E[Project Brain / Genome]
E --> F[Agent Guard]
F --> G[Aegis Protocol]
G --> H[Observatory]
H --> I[Türkiye Lab]
I --> J[Control Plane]
J --> K[Immune Network]
The next product layer moves from isolated findings and snapshots toward durable repository understanding:
Capability-aware control before a software agent touches repositories, processes, networks, secrets, infrastructure, or deployment systems.
Portable trust claims, attestations, provenance, and verification exchange between tools and agents.
Cross-run and cross-agent visibility into trust state, unresolved risk, verification history, and policy outcomes.
Applied research, validation, and regional trust-infrastructure work.
Organization-wide identity, capability, policy, governance, audit, and agent oversight.
A future distributed layer for learning from verified attack and defense evidence without reducing trust to opaque model intuition.
These later layers are architectural direction, not a claim that every ecosystem component has already shipped.
Aegis is not trying to build defensibility around one rule, one scanner, or one model.
Those components can change.
The durable object is the trust record:
claim
+ evidence
+ provenance
+ authorization
+ independent verification
+ exact remediation identity
+ terminal outcome
+ durable memory
= trust that can be inspected later
That architecture is intended to remain useful even as models, scanners, agent frameworks, and development environments evolve.
Marketplace:
https://marketplace.visualstudio.com/items?itemName=aegis-security.aegis-security
Or install from a terminal with VS Code available:
code --install-extension aegis-security.aegis-security
Requirements:
git clone https://github.com/lemkyz/Aegis.git
cd Aegis/backend
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
export AEGIS_FINGERPRINT_KEY="$(
python -c 'import secrets; print(secrets.token_urlsafe(48))'
)"
uvicorn aegis.main:app \
--host 127.0.0.1 \
--port 8000
Health check:
curl http://127.0.0.1:8000/health
The extension uses http://127.0.0.1:8000 by default.
Deterministic workflows do not require a model provider. Configure primary and verifier routes deliberately for model-backed review using backend/.env.example.
Aegis handles source code and security evidence as sensitive material.
Current preview boundaries include:
Use dynamic validation only on repositories and systems you own or are explicitly authorized to test.
Aegis/
├── backend/
│ ├── aegis/
│ │ ├── orchestrator/ # task planning, handlers, execution, integrity
│ │ ├── schemas/ # strict security and trust contracts
│ │ └── security/ # scanners, graphs, policy, memory, validation
│ └── tests/ # unit, contract, integration, acceptance
├── extension/
│ ├── src/ # VS Code product surface
│ ├── test/ # extension contracts
│ └── dist/ # packaged extension output
├── security-engine/rules/ # deterministic security rules
├── docs/ # architecture and release documentation
├── examples/ # safe examples and fixtures
├── .github/ # CI and repository automation
├── action.yml
├── SECURITY.md
└── README.md
Run the canonical backend suite from backend/:
.venv/bin/python -m pytest -q
cd extension
npm test
From the repository root:
./scripts/run-release-readiness.sh
The repository contains gates for backend contracts and regressions, real-repository acceptance workflows, API smoke validation, installed package scenarios, extension compile/contracts, VSIX packaging, and repository diff integrity.
Security-sensitive changes should prove the trust property being preserved — not merely the happy-path output.
Aegis is a preview.
It is intended for evaluation on local and non-production repositories while public interfaces continue to evolve before 1.0.
The current system already connects:
analysis → evidence → authorization → independent verification → remediation → attack paths → terminal outcome → memory → policy
The next major product layer is Project Brain / Genome.
Read CONTRIBUTING.md before proposing changes.
For security-sensitive changes, tests should demonstrate the trust property being preserved.
Read SECURITY.md for vulnerability reporting and security guidance.
Do not use Aegis dynamic validation against systems you do not own or have explicit permission to test.
Apache License 2.0.
Aegis
Security claims need proof.
Trust infrastructure for software agents.
Security claims need proof.
Aegis turns security-sensitive software changes into an inspectable trust chain:
evidence → authorization → verification → remediation → outcome → memory.
Overview · What ships today · Trust model · Product · Architecture · Ecosystem · Quick start
Attack Graph / Data Sentinel in the Aegis VS Code extension. The numbers shown are from an intentionally vulnerable local demo repository, not product benchmarks.
Software agents are becoming capable of writing code, editing repositories, calling tools, triggering CI, and proposing production changes at a speed that makes human review alone insufficient.
Aegis is built around a different question from a conventional scanner:
Can this security-sensitive action be trusted — and can Aegis show why?
Aegis does not treat a model answer, scanner result, or successful patch application as proof by itself. It keeps the trust questions separate, records the evidence behind each one, and connects them into a durable security record.
At the product level, Aegis is a developer security system spanning VS Code, CLI, GitHub Action, and a local orchestration backend. At the architectural level, it is the first implementation of a broader trust layer for autonomous software agents.
A security claim should be able to answer all of these questions:
| Question | Aegis records |
|---|---|
| What was requested? | operation, repository revision, task graph, policy context |
| Was it allowed? | explicit authorization, scope, capability, execution limits |
| What supports the claim? | deterministic evidence, code locations, data flow, model review |
| Was it independently checked? | verifier route, verdict, confidence, route independence, consensus |
| Is the attack path real? | threat model, source→sink path, trust-boundary crossings, exploitability |
| Did sensitive data actually flow? | graph-proven Data Sentinel exposure |
| Was the exact remediation authorized? | immutable remediation manifest and patch digest |
| Did the exact remediation work? | project checks, static verification, regression analysis, authorized replay |
| What happened at the end? | committed / rolled back / rollback blocked terminal state |
| Can the conclusion be trusted later? | Evidence Graph, immutable outcome, project security memory, policy history |
The result is not simply a finding. It is an inspectable trust chain.
Aegis is already implemented across multiple security layers.
| Layer | Current capability |
|---|---|
| Aegis Developer | VS Code extension, CLI, GitHub Action, local backend |
| Security Engine | deterministic scanning, secrets, dependencies, configuration, attack-surface analysis |
| Threat Modeling | repository-aware threat-model artifacts derived from security context |
| Evidence Graph | canonical claims with provenance, evidence nodes, relationships, confidence, lifecycle state |
| Independent Verification | primary review, verifier review, route independence, deterministic consensus |
| Fix-and-Prove | explicit authorization, exact patch identity, verification, rollback semantics, immutable terminal outcomes |
| Attack Graph | deterministic materialization of source→sink attack paths and trust-boundary crossings |
| Data Sentinel | sensitive-data exposure only when the graph proves the flow |
| Project Security Memory | immutable snapshots and claim reconciliation across repository revisions |
| Policy | explicit ALLOW, REVIEW, and BLOCK decisions |
The public Marketplace package is a preview. The main branch may be ahead of the latest packaged Marketplace build between preview releases.
The system is designed around a sequence of explicit trust boundaries.
flowchart LR
I[Intent] --> C[Capability]
C --> A[Authorization]
A --> E[Execution]
E --> P[Evidence]
P --> V[Independent verification]
V --> O[Terminal outcome]
O --> M[Memory]
M --> F[Future policy]
Aegis represents important security conclusions as canonical claims, not free-form model prose.
A claim can carry:
Evidence relationships can express semantics such as supports, contradicts, corroborates, derived_from, verifies, and mitigates.
Invalid identities, broken references, incompatible relationships, and provenance mismatches fail closed rather than being silently normalized.
Analysis is not permission to execute code.
Aegis separates inspection from actions that can mutate a repository or execute repository-controlled behavior. Security-sensitive execution is gated by explicit authorization and bounded capabilities.
Where model-backed analysis is enabled, Aegis can separate:
The trust record can preserve the provider/model for each role, route independence, verdict, confidence, reasons, and evidence.
A model is therefore an evidence source — not the security authority.
Fix-and-Prove binds the authorized remediation to an exact patch identity.
The system tracks:
Aegis persists security state across repository revisions instead of treating every scan as an unrelated event.
That makes future policy aware of whether a claim is new, persistent, changed, resolved, reopened, mitigated, or verified fixed.
The Evidence Graph is the trust substrate underneath findings, threat models, remediation, and memory.
A canonical claim is meant to be answerable later:
Claim state can express:
SUSPECTED → SUPPORTED → CONFIRMED → MITIGATED → VERIFIED_FIXED
with explicit alternatives such as FALSE_POSITIVE, ACCEPTED_RISK, and INCONCLUSIVE.
A failed or partial workflow is not persisted as a clean security baseline.
A vulnerability label is useful, but it is not an attack path.
Aegis materializes deterministic attack paths from the exact attack-surface and threat-model artifacts that produced them.
An attack path can preserve:
The difference is important:
“Command injection exists” is a finding. “Attacker-controlled input reaches this process-execution sink through this exact path, crossing these boundaries, supported by this evidence” is a proof-oriented security statement.
Attack Graph artifacts also carry provenance and deterministic digest boundaries so that later memory cannot quietly substitute a different source artifact.
Data Sentinel is the sensitive-flow layer of the Attack Graph.
Its question is deliberately narrow:
Which classified data can reach which security-relevant sink on a graph-proven path?
Aegis does not classify generic attacker input as a credential, secret, PII, or other sensitive class merely because the label would make the report more dramatic.
No graph-proven sensitive flow → no Data Sentinel exposure claim.
This makes Data Sentinel useful for reasoning about actual data exposure rather than broad keyword presence.
Fix-and-Prove treats remediation as a security-sensitive transaction.
plan
↓
explicit authorization
↓
exact patch + digest
↓
immutable pending manifest
↓
apply transaction
↓
project verification
↓
static verification
↓
regression analysis
↓
authorized dynamic replay when required
↓
unified verdict
↓
commit / rollback / rollback-blocked
↓
immutable terminal outcome
↓
Evidence Graph
↓
Project Security Memory
Aegis does not call a fix verified merely because:
| Outcome | Meaning |
|---|---|
| VERIFIED | the required evidence supports that the target is resolved without an unacceptable regression |
| PARTIAL | available checks passed, but the evidence is insufficient for a verified security claim |
| FAILED | the target remains, a required check failed, provenance drift occurred, a regression appeared, or execution could not support a trustworthy conclusion |
There is no demo-only success path. Incomplete evidence stays incomplete.
Dynamic validation is separately authorized because executing repository-controlled behavior is a different capability from reading code.
The local validation boundary is designed around:
no-new-privilegesDynamic evidence can confirm a threat, fail to reproduce it, be blocked by the safety boundary, or remain inconclusive.
“Could not run” never becomes “safe”.
Security state should survive the current window, process, or model call.
Aegis stores immutable project snapshots and reconciles claims across repository revisions.
A reconciliation can classify a claim as:
newpersistentchangedresolvedreopenedRepository revision drift and source drift fail closed when trust depends on a stable source revision.
Only a legitimately committed and verified remediation lifecycle can become remembered verified_fixed state.
Evidence becomes operational when policy can act on it.
Aegis produces explicit policy outcomes:
A blocked, cancelled, failed, or timed-out workflow never becomes proof of safety.
Aegis is organized around orchestration, evidence, controlled execution, and durable security state.
flowchart TB
U[Developer / Software Agent]
subgraph Surfaces[Aegis Developer]
VS[VS Code]
CLI[CLI]
GH[GitHub Action]
end
U --> VS
U --> CLI
U --> GH
VS --> O
CLI --> O
GH --> O
O[Task Planner + Orchestrator + Policy Gates]
O --> SE[Deterministic Security Specialists]
O --> MR[Primary Review / Verifier / Consensus]
O --> TM[Threat Model]
O --> DV[Controlled Dynamic Validation]
SE --> EG[Evidence Graph]
MR --> EG
TM --> AG[Attack Graph / Data Sentinel]
SE --> AG
EG --> FP[Fix-and-Prove]
AG --> FP
DV --> FP
FP --> TO[Immutable Terminal Outcome]
TO --> MEM[Project Security Memory]
MEM --> POL[ALLOW / REVIEW / BLOCK]
The developer-facing product surfaces are:
Security work is represented as a task graph with explicit dependencies, artifact contracts, integrity checks, and policy gates.
This allows the workflow to be inspected before execution and audited after it.
The engine combines deterministic specialists and explicitly bounded model-assisted reasoning for:
Aegis preserves:
The goal is not simply to know what a tool said now, but to preserve why that conclusion was trusted.
The architecture is governed by a small set of invariants.
verified_fixed.Aegis is designed to stop or downgrade the trust conclusion when it encounters conditions such as:
The extension is the interactive Aegis workspace.
It can:
Repository commands are gated by VS Code Workspace Trust.
The CLI exposes deterministic and orchestration-oriented workflows for local development, scripting, and release validation.
It shares the same backend trust contracts rather than implementing a separate security model.
The Action provides a pull-request security gate without executing repository code.
It can emit policy evidence, change-gate output, and SARIF.
name: Aegis
on:
pull_request:
permissions:
contents: read
security-events: write
jobs:
aegis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: lemkyz/Aegis@v0.2.0
with:
base: ${{ github.event.pull_request.base.sha }}
head: ${{ github.event.pull_request.head.sha }}
For production use, pin Aegis to a published release tag or immutable commit.
The FastAPI backend is the orchestration and trust engine behind the developer surfaces.
It coordinates:
Aegis starts with software security because security-sensitive code changes are a concrete place to prove the trust architecture.
The longer-term problem is larger:
Autonomous software agents should be permissioned, least-privilege, monitored, explainable, evidence-backed, independently verifiable, reversible, and remembered.
flowchart LR
A[Extension] --> B[Evidence]
B --> C[Fix-and-Prove]
C --> D[Attack Graph / Data Sentinel]
D --> E[Project Brain / Genome]
E --> F[Agent Guard]
F --> G[Aegis Protocol]
G --> H[Observatory]
H --> I[Türkiye Lab]
I --> J[Control Plane]
J --> K[Immune Network]
The next product layer moves from isolated findings and snapshots toward durable repository understanding:
Capability-aware control before a software agent touches repositories, processes, networks, secrets, infrastructure, or deployment systems.
Portable trust claims, attestations, provenance, and verification exchange between tools and agents.
Cross-run and cross-agent visibility into trust state, unresolved risk, verification history, and policy outcomes.
Applied research, validation, and regional trust-infrastructure work.
Organization-wide identity, capability, policy, governance, audit, and agent oversight.
A future distributed layer for learning from verified attack and defense evidence without reducing trust to opaque model intuition.
These later layers are architectural direction, not a claim that every ecosystem component has already shipped.
Aegis is not trying to build defensibility around one rule, one scanner, or one model.
Those components can change.
The durable object is the trust record:
claim
+ evidence
+ provenance
+ authorization
+ independent verification
+ exact remediation identity
+ terminal outcome
+ durable memory
= trust that can be inspected later
That architecture is intended to remain useful even as models, scanners, agent frameworks, and development environments evolve.
Marketplace:
https://marketplace.visualstudio.com/items?itemName=aegis-security.aegis-security
Or install from a terminal with VS Code available:
code --install-extension aegis-security.aegis-security
Requirements:
git clone https://github.com/lemkyz/Aegis.git
cd Aegis/backend
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
export AEGIS_FINGERPRINT_KEY="$(
python -c 'import secrets; print(secrets.token_urlsafe(48))'
)"
uvicorn aegis.main:app \
--host 127.0.0.1 \
--port 8000
Health check:
curl http://127.0.0.1:8000/health
The extension uses http://127.0.0.1:8000 by default.
Deterministic workflows do not require a model provider. Configure primary and verifier routes deliberately for model-backed review using backend/.env.example.
Aegis handles source code and security evidence as sensitive material.
Current preview boundaries include:
Use dynamic validation only on repositories and systems you own or are explicitly authorized to test.
Aegis/
├── backend/
│ ├── aegis/
│ │ ├── orchestrator/ # task planning, handlers, execution, integrity
│ │ ├── schemas/ # strict security and trust contracts
│ │ └── security/ # scanners, graphs, policy, memory, validation
│ └── tests/ # unit, contract, integration, acceptance
├── extension/
│ ├── src/ # VS Code product surface
│ ├── test/ # extension contracts
│ └── dist/ # packaged extension output
├── security-engine/rules/ # deterministic security rules
├── docs/ # architecture and release documentation
├── examples/ # safe examples and fixtures
├── .github/ # CI and repository automation
├── action.yml
├── SECURITY.md
└── README.md
Run the canonical backend suite from backend/:
.venv/bin/python -m pytest -q
cd extension
npm test
From the repository root:
./scripts/run-release-readiness.sh
The repository contains gates for backend contracts and regressions, real-repository acceptance workflows, API smoke validation, installed package scenarios, extension compile/contracts, VSIX packaging, and repository diff integrity.
Security-sensitive changes should prove the trust property being preserved — not merely the happy-path output.
Aegis is a preview.
It is intended for evaluation on local and non-production repositories while public interfaces continue to evolve before 1.0.
The current system already connects:
analysis → evidence → authorization → independent verification → remediation → attack paths → terminal outcome → memory → policy
The next major product layer is Project Brain / Genome.
Read CONTRIBUTING.md before proposing changes.
For security-sensitive changes, tests should demonstrate the trust property being preserved.
Read SECURITY.md for vulnerability reporting and security guidance.
Do not use Aegis dynamic validation against systems you do not own or have explicit permission to test.
Apache License 2.0.
Aegis
Security claims need proof.
Scanner findings remain attached to provenance instead of being flattened into one opaque score.
The primary model route is explicit in the evidence record.
The verifier is a separate role; model agreement alone does not become proof.
The vulnerable fixture remains an active claim, so Aegis asks for human resolution instead of claiming a clean result.
Contributors should be able to understand where a finding comes from, what evidence is required, how authorization changes the lifecycle, and which tests guard the behavior. Aegis should remain strict about changes that blur those boundaries.