VS Code-Family Extension Setup
Connect your editor to Fraime.it for code context and optional IDE automation.
The Fraime.it extension connects VS Code-family editors to the local macOS app. It streams editor metadata for recording context and, when you explicitly enable IDE Automation, accepts protocol-v1 commands that drive your existing editor window.
You can record without the extension. Install it when the video is about code and you want Fraime.it to preserve editor context for later editing or let an agent perform a clean coding demo.
What the extension sends
The extension sends structured metadata, not document contents. The payload can include editor name, file path, language, cursor position, selection range, visible range, function name, and dirty or untitled flags.
It intentionally does not upload document contents or selected text. When IDE Automation is enabled, an automation command may deliberately include text for an insert or edit; that command content stays on the local bridge and is distinct from passive telemetry.
Why it helps
Editor metadata can support context-aware timeline review, zoom/framing suggestions, AI-assisted edits, and clearer understanding of what happened during a coding session. It also makes it easier to identify important moments later without relying only on pixels.
Connection model
The extension connects to the Fraime.it app over a local TCP socket, typically on 127.0.0.1:49152. The connection uses bidirectional protocol v1 for passive metadata and optional automation commands. Keep the app running while recording if you want editor context or IDE automation.
The connection is local to your Mac. If the app is not running, the extension cannot stream context into the recording.
Supported editors
Use the extension with VS Code-family editors such as Visual Studio Code, Cursor, and compatible forks that can install VSIX extensions.
Install flow
Install Fraime.it from the Extensions view in Cursor or VS Code. Cursor uses the Open VSX Registry, so the extension is available there under the fraimeit publisher:
The extension ID is fraimeit.fraimeit.
Fraime.it's Recording Settings → Advanced panel links straight to the listing and shows the version of the extension that is actually connected, reported by the extension itself over the local bridge.
Updating
Updates arrive through your editor's normal extension update mechanism. After an update, reload the editor window (Cmd+Shift+P → Reload Window) so the new build reconnects to the app.
Offline or recovery install
Fraime.it also ships a bundled copy of the extension for offline machines and for recovering a broken install. It lives under Recording Settings → Advanced → Advanced Troubleshooting, and it does not receive marketplace updates. Prefer Open VSX whenever the machine is online.
If you are working on the extension itself, build a VSIX from vscode-fraimeit and install it directly:
cursor --install-extension fraimeit-0.1.0.vsix
code --install-extension fraimeit-0.1.0.vsixAfter installing, restart or reload the editor if it does not connect immediately.
Confirm it is working
Record a short test while moving the cursor in a code file. Open the project in Fraime.it and check whether editor context appears in the timeline or inspector.
For automation, open Recording Settings → Advanced and turn on Enable IDE Automation, then ask the agent to call fraimeit_ide_status. Continue only when it reports automation enabled and protocol v1 compatible.
Enable IDE Automation safely
IDE Automation is off by default and must be enabled explicitly. It has full control of the connected editor: it can modify real files and run arbitrary commands. Use a scratch workspace for demos, review the visible files before starting, and turn the toggle off when you are finished.
The available FraimeMCP tools are:
- connection and inspection:
fraimeit_ide_status,fraimeit_ide_snapshot; - tabs:
fraimeit_ide_open_file,fraimeit_ide_switch_tab,fraimeit_ide_close_tab; - presentation:
fraimeit_ide_select_lines,fraimeit_ide_highlight_lines,fraimeit_ide_clear_highlights,fraimeit_ide_reveal_lines,fraimeit_ide_scroll; - editing and commands:
fraimeit_ide_insert_text,fraimeit_ide_apply_edit,fraimeit_ide_save_file,fraimeit_ide_run_command.
These tools drive the user's existing Cursor or VS Code window. For a clean recording, run the agent from a terminal and let it drive a separately staged IDE window. An agent running inside the Cursor window being recorded will expose its chat UI.
During recording, each IDE action tool atomically resumes capture, performs the action, waits for the editor to settle, and pauses capture again. It returns a fresh editor snapshot and an estimated normalized beatRegion based on the visible line range. Agents mark the beat immediately before the action, normally omit its point, and may use beatRegion for approximate zoom framing. The extension API does not expose exact pixel geometry, so Fraime.it does not synthesize an IDE cursor and agents must not claim precise caret or line coordinates.
fraimeit_begin_window_action and fraimeit_end_window_action remain available as a fallback for visible IDE behavior that has no dedicated automation tool.
Use IDE context in the editor
When IDE context is present, Fraime.it can show editor events alongside the timeline. Use those events to find file switches, cursor movement, selections, visible range changes, and function-level context during a coding session.
This context helps when deciding where to add zooms, callouts, lower thirds, smart edits, or assistant prompts. It also gives local agents more structure than a flat screen recording while still keeping document contents out of the bridge payload.
Privacy notes
Passive telemetry does not send document contents or selected text, so Fraime.it sees where you were working, not the full source content. IDE Automation commands can contain text deliberately supplied by the agent and can change files or run commands, but the extension does not upload document contents. The screen recording itself can still contain visible code, terminals, secrets, or private data, so use a scratch workspace and review redactions before export.
Troubleshooting
If context does not appear in the timeline, make sure the app is open, the extension is enabled, the editor can connect to localhost, and no other process is blocking the configured port.
If you use multiple VS Code-family editors, confirm the extension is installed in the editor you are actually recording. Each editor manages extensions separately.
If IDE automation is unavailable, call fraimeit_ide_status and check that extension version 0.1.0 is connected, protocol v1 is compatible, and Enable IDE Automation is on. The status result reports extensionVersion, which is null when an extension older than 0.1.0 is connected — those builds predate version reporting and should be updated from Open VSX. Do not work around a disabled or incompatible connection with shell commands, AppleScript, or UI scripting.
Stop the automation if the editor shows authentication, unexpected private data, an ambiguous destructive action, or the wrong workspace.