Valerian Impact — VS Code Extension
Instant blast radius and architectural risk scores for every symbol, file, and endpoint — directly inside your editor.
Valerian builds a live code graph of your repository (files, functions, API endpoints, React components, database models, events, environment variables) and computes precise impact scores whenever you change anything. This extension surfaces that intelligence at your cursor without leaving VS Code.
Features
Hover Impact Summary
Hover over any symbol, file path, route string, or environment variable to see an inline risk card:
Valerian Impact · function getUsers
🟡 MEDIUM · score 4.2/10 · affected 18
Entity: `function:getUsers`
Top affected files:
- `src/api/handlers/user.ts`
- `src/services/user.service.ts`
- `frontend/src/hooks/useUser.ts`
Side Panel — Full Impact Report
Open the full panel via right-click or keyboard shortcut. Shows:
| Section |
Details |
| Risk badge |
Color-coded CRITICAL / HIGH / MEDIUM / LOW with score |
| Direct Impact |
Files, functions, endpoints, components, DB models, events, env vars |
| Transitive Impact |
Total affected assets across the whole graph |
| Propagation Paths |
Top 8 files with dependent count and blast-radius targets |
Commands
| Command |
Shortcut |
Description |
Valerian: Show Impact Radius |
Ctrl+Alt+I / Cmd+Alt+I |
Impact for symbol at cursor |
Valerian: Show Impact For Selection |
Ctrl+Alt+Shift+I / Cmd+Alt+Shift+I |
Impact for selected text |
Valerian: Clear Impact Cache |
— |
Force fresh results on next query |
Right-click in any editor file to access the commands from the context menu.
Status Bar
A live status bar item in the bottom-right shows the last risk level. Click it to re-run the query on the current cursor position.
Smart Entity Detection
The extension automatically detects what you're hovering over and picks the right entity type:
| Pattern |
Entity type |
router.post('/api/users', …) |
endpoint |
src/api/users.ts |
file |
DATABASE_URL |
env_var |
user.created |
event |
UserCard (PascalCase) |
component |
getUsers (camelCase) |
function |
| Current open file |
file (fallback) |
Requirements
- Valerian backend running and reachable (default:
http://localhost:8080)
- The backend must have the Impact Query API enabled (
POST /api/v1/impact/query)
- Your repository must have been scanned by Valerian's archscan pipeline
Quick start with Valerian backend
# Clone and start Valerian
git clone https://github.com/valerian-io/valerian
cd valerian
docker compose up -d # starts backend + FalkorDB graph store
./scripts/scan.sh . # scan your repo into the graph
Then install this extension and open your project.
Configuration
Open Settings → search valerianImpact to configure:
| Setting |
Default |
Description |
valerianImpact.apiBaseUrl |
http://localhost:8080 |
Valerian backend URL |
valerianImpact.apiKey |
"" |
Optional X-API-Key header for auth |
valerianImpact.graph |
"" |
Graph name (empty = backend default) |
valerianImpact.graphs |
"" |
Comma-separated graph list for federated cross-repo impact. Overrides valerianImpact.graph when set. |
valerianImpact.depth |
3 |
Traversal depth (1–10) |
valerianImpact.limit |
120 |
Max results per category (1–500) |
valerianImpact.requestTimeoutMs |
2500 |
Per-request timeout in ms |
valerianImpact.riskVersion |
v2 |
Risk policy version (v1 or v2) |
valerianImpact.hoverEnabled |
true |
Enable/disable hover cards |
valerianImpact.hoverMinWordLength |
3 |
Minimum token length to trigger hover |
valerianImpact.cacheTtlMs |
30000 |
Cache TTL in ms (1 s – 5 min) |
Example settings.json
{
"valerianImpact.apiBaseUrl": "https://valerian.internal.example.com",
"valerianImpact.apiKey": "vk_live_xxxxxxxxxxxxx",
"valerianImpact.graphs": "valerian:acme/frontend:main,valerian:acme/backend:main,valerian:acme/worker:main",
"valerianImpact.depth": 4,
"valerianImpact.hoverEnabled": true
}
Local Development
# From repo root
cd plugins/vscode-valerian-impact
npm install # install dependencies
npm run check # TypeScript type-check (no emit)
npm run test # run unit tests (vitest)
npm run build # production bundle → out/extension.js
npm run dev # watch mode for iterative development
Press F5 in VS Code with the plugin folder open to launch the Extension Development Host.
How Risk Scoring Works
Valerian's v2 risk model combines:
- Blast radius — how many downstream assets (files, endpoints, components, DB models) are reachable
- Connectivity — how many dependents reference each changed file
- Asset weight — endpoints and DB models carry higher risk than internal utilities
- Confidence — how complete the graph coverage is
Scores range from 0–10:
- 0–2.9 → LOW (green)
- 3–5.9 → MEDIUM (yellow)
- 6–7.9 → HIGH (orange)
- 8–10 → CRITICAL (red)
Privacy & Data
The extension sends only the entity identifier (file path, function name, route string, etc.) to the configured Valerian backend. No source code is transmitted. All analysis runs on your self-hosted or private-cloud Valerian instance.
License
MIT — see LICENSE