VS Code / Cursor / Windsurf / VSCodium extension — Phase 2.
Capture (file open + Problems errors), Context sidebar, Ask → Agent/Chat — via Engram backend :7731.
Prerequisites
- Supermemory Local on
:6767 - Engram backend:
cd backend && npm run dev - Contracts built:
cd packages/contracts && npm run build
Develop (F5)
cd packages/contracts && npm run build
cd ../extension && npm install && npm run compile
From the Engram repo root in Cursor/VS Code → Run and Debug:
| Config | Opens |
|---|---|
| Engram: Extension Host (clean workspace) | Preferred — opens extension/test-workspace only (no monorepo noise) |
| Engram: Extension Host (monorepo) | Full Engram repo as the workspace |
Then open the Engram Activity Bar icon → Context. Status bar Engram also focuses Context.
Sideload into real VS Code / Cursor
cd packages/contracts && npm run build
cd ../../extension
npm install && npm run package
# → engram-context-0.1.0.vsix (includes LICENSE, CHANGELOG, repository metadata)
In VS Code or Cursor: Extensions → … → Install from VSIX… → pick extension/engram-context-0.1.0.vsix.
Use a normal folder (or open extension/test-workspace) with Engram backend + Supermemory running — the extension does not bundle the local graph or API.
Publish to VS Code Marketplace
Prerequisites
- Publisher account — create one at marketplace.visualstudio.com/manage (e.g.
shubh1305orengram-cli). - Publisher ID — must match
"publisher"inpackage.json. Currently"shubhamindulkar". - Personal Access Token — Azure DevOps PAT with Marketplace → Publish scope.
Package and publish
cd packages/contracts && npm run build
cd ../../extension
npm install && npm run compile
npx vsce login <your-publisher-id>
npx vsce publish --no-dependencies
Bump "version" in package.json for each release (0.1.0 → 0.1.1, etc.).
Pre-publish checklist
-
packages/contractsbuilt;npm run compilesucceeds -
CHANGELOG.md,LICENSE,media/icon.pngpresent - README install command uses
npx @engram-cli/engram start -
"publisher"matches your Marketplace account - Extension ID is
shubhamindulkar.engram-context("name": "engram-context"in package.json)
Open VSX (Cursor / VSCodium)
For users who install from Open VSX instead of the Microsoft Marketplace:
npx ovsx publish engram-context-0.1.0.vsix -p <OPEN_VSX_TOKEN>
Create a token at open-vsx.org → Profile → Access Tokens.
Settings
| Setting | Default | Meaning |
|---|---|---|
engram.backendUrl |
http://localhost:7731 |
API base |
engram.captureEnabled |
true |
P0 capture on/off |
Sidebar (primary)
| Control | Action |
|---|---|
| Ask (Enter) | Opens Agent/Chat with @engram + your question |
| Send to Chat | Injects current context into Chat |
| Add chat summary | Opt-in: clipboard/paste → summarize → save to capsule |
| Raw matches | Similarity search only (secondary) |
Context auto-refreshes every ~45s while the sidebar is visible. Badge: Now (live) vs Last saved (opened snapshot).
Title menu / commands
- Engram: Refresh Context
- Engram: Update Snapshot (upserts project capsule +
ENGRAM_CONTEXT.md) - Engram: Open Snapshot — load the one project capsule; offer Send to Chat
- Engram: Ask in Chat / Send Context to Chat
- Engram: Add Chat Summary — paste/clipboard → summarize → capsule (never auto-scrapes Agent)
- Engram: Show Setup — reopen onboarding checklist
- Engram: Focus Context — status bar click target
- Engram: Show Output
Chat summaries (opt-in)
| Path | How |
|---|---|
@engram /summarize |
In Chat — uses that session’s @engram history, summarizes, upserts capsule |
| Add chat summary | Sidebar — uses clipboard or paste (Agent panel cannot be scraped by extensions) |
Raw AI transcripts are never captured automatically.
First-run setup
No account. Soft checklist until:
- Configure keys — Supermemory API key (required) + optional LLM provider key
- Backend reachable —
npx @engram-cli/engram start - Workspace bound — open a folder
- MCP wired (optional) — copy config or add to workspace
.cursor/mcp.json - Capture smoke — open a source file or wait for a Problems error
Dismiss anytime; reopen via Show Setup. Per-project capture toggles from the dashboard are authoritative when the backend is up.
Capsules
One capsule per project. Update Snapshot overwrites current.json. Open Snapshot loads it — no multi-list.
Chat / Agent
| Action | What happens |
|---|---|
Ask / @engram … |
Answers from context + memories |
Attach ENGRAM_CONTEXT.md |
Lean composer query (no full dump) when file exists |
| Raw matches | Similarity list only |
Demo (Cursor → VS Code)
- Backend + Supermemory running
- Capture files/errors → Context fills (auto-refresh)
- Update Snapshot → optionally Send to Chat
- Other IDE: Open Snapshot → Send to Chat
Dashboard
A separate Vite React dashboard is available in ../dashboard/. See dashboard/README.md for setup.
To run the full stack locally:
npx @engram-cli/engram start # starts Supermemory + backend
cd dashboard && npm install && npm run dev
Open http://localhost:5173 for the dashboard UI. Global keys: http://localhost:5173/settings.
Out of scope (later phases)
Share links, chat/clipboard auto-scrape, Engram backend auth.