VS Code extension
Package: efvibe.vscode-efvibe (v0.3.1+). Source: vscode-extension/.
Install
Build the CLI from the repo (includes efvibe serve), then package the extension:
dotnet build src/MyEfVibe/MyEfVibe.csproj
cd vscode-extension
npm install
npm run package
code --install-extension "vscode-efvibe-0.3.1.vsix"
Reload the window after install. See INSTALL.md for Cursor and update steps.
Fast Run Selection (efvibe serve)
By default, Run Selection talks to a long-running efvibe serve process instead of starting a new CLI for every query. The EF project is built once; the same DbContext stays loaded — much faster for iterative work.
Set efvibe.useDaemon to false to force one-shot efvibe -e per run. Point efvibe.toolPath at a local myefvibe build if the global tool does not yet include serve.
Details: efvibe daemon design doc.
Result panel
With efvibe.resultDestination set to panel (default):
- Editable expression — change parameter stub values and re-run
- Run — evaluate again (Ctrl/Cmd+Enter in the textarea)
- Run :plan — EXPLAIN / SHOWPLAN for the query (
--with-plan) - Export CSV / :export JSON — save the last result (same idea as REPL
:export) - Read-only guard — blocks SaveChanges, Add/Update/Remove, ExecuteSql, and destructive SQL
- Result table, captured SQL, metrics, and warnings in a split tab beside your editor
- 📋 Copy — floating copy on SQL, query plan, and scalar result blocks
Scan Review (carousel)
efvibe: Scan Workspace runs efvibe scan lite or deep and opens a review tab — one finding at a time:
- Previous / Next — browse findings (arrow keys when the panel is focused)
- Location — click the path to jump to file and line
- Dismiss and Note — same JSON stores as REPL
:dismiss/:note - 📋 Copy on code, translated SQL, and query plan blocks
- Optional
efvibe.scan.problemsPanelfor Problems squiggles (defaultfalse— avoids C# LSP noise)
Commands
- efvibe: Run Selection — Shift+Alt+E in C#
- efvibe: Run Line at Cursor
- efvibe: Run Statement at Cursor
- efvibe: Scan Workspace / Scan Workspace (Deep)
- efvibe: Open Scan Review
- efvibe: Start REPL — interactive terminal (separate from the daemon)
- efvibe: Show Last SQL · Export Last Result
- efvibe: Generate REPL Task · Check Prerequisites · Refresh Status
Settings
{
"efvibe.project": "${workspaceFolder}/src/MyApp.Persistence/MyApp.Persistence.csproj",
"efvibe.startupProject": "${workspaceFolder}/src/MyApp.Api/MyApp.Api.csproj",
"efvibe.context": "AppDbContext",
"efvibe.dbLog": true,
"efvibe.useDaemon": true,
"efvibe.resultDestination": "panel",
"efvibe.toolPath": "/path/to/myefvibe",
"efvibe.scan.mode": "lite",
"efvibe.scan.openReviewOnScan": true,
"efvibe.scan.problemsPanel": false
}
| Setting | Description |
|---|---|
efvibe.useDaemon | When true (default), Run Selection uses efvibe serve; falls back to one-shot if unavailable |
efvibe.resultDestination | panel (split webview), output, or terminal (one-shot CLI text) |
efvibe.scan.openReviewOnScan | Open Scan Review carousel after scan (default true) |
efvibe.scan.problemsPanel | Also show findings in Problems (default false) |
efvibe.toolPath | Path to myefvibe / efvibe for latest CLI features |
Repository snippets
Select handler LINQ (with await, DbContext, parameters) and run — the CLI adapts the snippet before evaluation. Edit stubbed values in the panel (e.g. replace Guid.Empty with a real id) and re-run. See repository snippets for limits.