Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>InsaidyNew to Visual Studio Code? Get it now.
Insaidy

Insaidy

Velantix

| (0) | Free
Personal coaching for AI coding: local activity reports, daily practices and aggregate sharing you control.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Insaidy for VS Code

Personal coaching for your AI coding workflow. Review local activity, try one daily practice and choose what aggregate information to share.

Start with a standard Free personal account at Insaidy. Install from this store, then open the Insaidy Activity Bar and sign in. For manual or offline installation, use the install guide.

Insaidy reads supported local assistant history, including Claude Code, Codex and GitHub Copilot. These names describe compatibility; Insaidy is an independent Velantix product and is not affiliated with their vendors.

The application address is https://app.insaidy.com. Sign in before the plugin reads local assistant sessions. Open Insaidy from its Activity Bar icon; report and sandbox actions become available after sign-in. Published by Velantix; copyright holder Velantix EOOD. The public extension ID is velantix.insaidy. Uninstall the previous internal test extension and reload before installing this release. Sign in again and revoke the old device on the web Account page.

Product · Support · Privacy notice · Terms.

Data collection: account-linked aggregate measurements and allowlisted device/reporting metadata are sent to your selected Insaidy workspace after confirmation. After the first confirmed report, VS Code sends periodically while signed in; sign out to stop. Named reports are personal data. Raw prompt text, responses, code, file paths and project names are excluded. Read the privacy notice before sharing.

  • Local first. The plugin reads your assistants' local logs on this computer and computes the numbers here.
  • Only aggregates leave the computer. Counts per day, assistant and editor, and ratios — never prompts, responses, code, file paths or project names. Model names are sent only when they are public model ids (a fixed list in the plugin); a name you chose (a custom deployment, a local model) is sent as other. Insaidy: Show what will be sent opens, read-only, the JSON the next report would post, indented for reading (nothing is sent); Insaidy: Show what is sent opens the last one that was.
  • One practice a day. The Today view compares yesterday with your own pace and suggests one practice with a first step. Mark a suggestion Not applicable and it comes back after 30 days, or sooner if the habit gets worse.
  • Sandbox projects. Insaidy: Mark project as sandbox leaves experiments and demos out of the report. The list is ~/.aicoach/sandbox.json; if that file exists but cannot be read (permissions, damaged JSON), no report is sent until it is fixed or deleted — the view says so — so a sandbox project never slips back in.
  • Numbers only. Before anything is sent, the report is checked against the same report schema the server applies (every number finite and in range, every name from a fixed list), and only what passes is sent. A report that does not pass is held, with the reason shown in the view and in Show what will be sent.

Getting started

  1. The default server is https://app.insaidy.com. Sign in there through your browser. Explicit coach.serverUrl overrides remain available for self-hosting and isolated localhost development. When changing a previously configured server, revoke the old device and sign in again; credentials are bound to their original server.
  2. Run Insaidy: Sign in. Your browser opens; choose the workspace (personal or your organisation) to report to.
  3. The first report waits for you: the dialog first offers only What will be sent (the exact report, read-only); after that it offers Send, which sends exactly the bytes you saw — if your logs changed in between, the new report is shown again first. After that, the report is sent on start, every coach.reportIntervalHours hours, and with Insaidy: Refresh / Send report now.

Sign in before any assistant sessions are read. The signed-out panel offers only Sign in and Connection settings. Report preview and sandbox commands also require sign-in when invoked from the Command Palette or Explorer. Live capture waits for sign-in and explicit consent; it pauses on sign-out and resumes after signing in again. Resetting/restoring a previous capture configuration remains available for cleanup without sign-in.

Remote windows

The extension runs on your local computer (extensionKind: ["ui"]): it reads this computer's logs and receives the sign-in on this computer's loopback address. Copilot Chat in a remote window is counted — VS Code keeps its chats on your computer. Claude Code sessions that run inside the remote host (Remote-SSH, WSL or containers) are not read: their transcripts are on that host. A remote window's folder can be marked as a sandbox from its Explorer; it is kept as its vscode-remote:// address.

Sign in again to switch to another workspace. coach.language switches between English and Bulgarian (not set: the language VS Code is shown in). Days are counted in the time zone of your account (UTC until one is set).

Live capture (optional)

coach.liveCapture (user settings only) points Claude Code's and Copilot Chat's own OpenTelemetry export at this plugin on 127.0.0.1. It keeps compact events on this computer (numbers, model and tool names, accept/reject decisions — no prompt content); the report carries only their totals, with tool decisions in a fixed set of categories. After a confirmation it changes the env block of ~/.claude/settings.json and Copilot's github.copilot.chat.otel.* user settings. Those three Copilot settings are application settings that Settings Sync would copy to your other computers: while capture is on they are listed in settingsSync.ignoredSettings (only the entries it added are removed again when it is turned off). That list itself is synced (VS Code does not let it be ignored): your other computers then keep those three settings to themselves too. If one of them takes the entries out, they are put back here within 10 seconds (1.5 s once the list stops changing), and live Copilot capture is not sent until then (its events stay on this computer and go with a later report). What remains possible: in that gap Settings Sync itself may upload this computer's three Copilot settings (enabled, file, and the export file path under ~/.aicoach), and your other computers would then receive them. The plugin cannot see or stop a push Settings Sync makes; it only shortens the gap.

  • With sandbox projects, live events are matched to sessions by session id and a sandbox session's events are left out. Events that cannot be matched (Copilot's carry no session id) could be sandbox work, so then the report carries no live totals at all, and the view says so.

  • It refuses, changing nothing, when telemetry is already configured: any OTEL_* / CLAUDE_CODE_ENABLE_TELEMETRY in the editor's environment, in ~/.claude/settings.json or in Claude Code's managed settings. Copilot is left alone (only Claude is captured) when its export is already set up or would include content.

  • What it changes is recorded in ~/.aicoach/vscode-live-capture.json before the first change; a failure half-way is rolled back, and an interrupted change is undone on the next start. Values you already had (equal to what live capture would write) are not touched and stay when it is turned off.

  • Copilot exports to ~/.aicoach/vscode-live/copilot-otel.jsonl. The file is rotated by renaming it once it is large (never truncated while Copilot may be writing), and the old part is deleted only after it was read to the end.

  • One VS Code window receives at a time (~/.aicoach/vscode-live.lock); every other window checks once a minute and takes over when the receiving window closes. A window never displaces a receiver that still has the port.

  • Turning it off restores the previous values — except ones you changed yourself afterwards, which are left as they are. If a value cannot be written back (e.g. a settings file is read-only), it stays in the journal and is retried on the next start; you are told which.

  • Live capture is one per computer. While it is on (or still being undone) in another VS Code profile, turning it on is refused before anything is asked or changed. If that profile no longer exists, Insaidy: Reset live capture undoes what can be undone from here and names the other profile's Copilot settings to remove by hand.

  • Uninstalling restores ~/.claude/settings.json and deletes ~/.aicoach/vscode-live/ (the vscode:uninstall hook runs on the next VS Code start). VS Code's own settings cannot be changed from that hook — the confirmation says so: turn live capture off before uninstalling, or remove github.copilot.chat.otel.enabled, github.copilot.chat.otel.exporterType and github.copilot.chat.otel.outfile from your user settings by hand, and the same three entries from settingsSync.ignoredSettings (a synced list: removing them on one computer removes them on the others too). In that case the journal ~/.aicoach/vscode-live-capture.json stays, with what those settings were before: installing the plugin again restores them from it; delete it once you have removed them by hand.

Files on this computer

Everything the plugin keeps outside VS Code's own storage is in ~/.aicoach, readable only by you (files 0600, folders 0700; files left by older versions are made private on start). Neither of the two below ever leaves the computer.

  • vscode-claude-transcripts.v<N>.json — what the plugin parsed from each Claude Code transcript, so that a transcript that has not changed is not read again (<N> is the version of the counting rules; each version keeps its own). It holds no paths (a hash of each), no prompt text, no command lines, no skill, MCP server or slash-command names and no private model names — only the counts the metrics use, the request ids that tell a copied request from its original, and the session's project folder (for the context-file check and the sandbox). It is rebuilt from the transcripts every 7 days. If it cannot be read or written, every transcript is read in full and the report goes ahead; the problem is written to the log once.
  • vscode-ledger.json — what this computer has reported, per account: for each day and source, a hash of each session counted in it, and for each session, hashes of the model requests it was reported with. With it, a day whose logs have lost a session since is left out of a report instead of replacing the complete day the server has, and a request keeps the session it was first reported under. Entries older than 400 days are dropped. If it cannot be written (a read-only home folder, a full disk, a file held by an antivirus scan), reports still go out: every day is sent as possibly incomplete, so the server keeps any larger day it already has and deletes nothing; the recount waits for a report the ledger could record, and the problem is written to the log once.

Both are removed on uninstall (installing again starts a new ledger, which sends every earlier day as possibly incomplete: the server keeps a larger day it already has). These stay after uninstalling, because other plugins on the computer may use them: machine-id, sandbox.json (and vscode-live-capture.json in the case above). Delete ~/.aicoach yourself if you want them gone.

Accounts on one computer

The device token and the account it belongs to are one secret shared by every VS Code window. Signing in, signing out or switching in one window shows in the others; a token that is replaced is revoked, or kept and retried until the server confirms. Changing coach.serverUrl signs out and revokes the token at the old server. Dismissal notes stay with the account that wrote them. The practice notice is shown once a day on the computer, whichever profile is open.

When the server refuses:

  • 401 (the sign-in expired — at most 180 days, 90 without use — the account was disabled, or the computer was signed out on the web): the token is dropped (and its revocation retried), the live-capture journal is kept, and Signed out by the server — sign in again is shown once, in the window that got it.
  • 429 / 503 with Retry-After (at most 120 reports an hour from a person's computers to one workspace, 240 to all their workspaces together, or a busy server — a small one stores one report at a time): no report before that time, kept across restarts; never retried at once. The report then goes with the next scheduled one (or Send report now after that time).
  • 409 { machines } (the person's limit of computers: 10 in the workspace, or 20 over all their workspaces with scope: 'account'): the message names the limit and its scope (this organisation, the personal workspace, or all of them together) and Account → Your computers; no automatic report until a setting changes or the person signs in again or chooses Send report now.
  • At sign-in, 403 { sso: true } (the organisation now requires its SSO) and 400 (no longer a member) are explained in those words.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft