Privacy & FAQ
Privacy & FAQ
Local-first (your session content stays on your machine), the five settings, the shared multi-window backend, and supported languages.
Claude Session Monitor is built around one rule: your data stays on your machine, and there are only five settings to worry about. This FAQ answers the common questions about privacy, those settings, and multi-window behavior.
Does my session content get uploaded anywhere?
No. The extension bundles a local service bound to 127.0.0.1 that does nothing but read the session files Claude Code writes under ~/.claude/projects/. Transcripts, prompts, code, tool-call records, file paths, and repo/branch names all stay between that local service and your editor. None of it is sent anywhere, and browsing your sessions works with the network unplugged.
What does leave the machine is anonymous usage telemetry, and it is worth being precise about the difference. What is sent: a synthetic route such as /dashboard, an event name such as session.opened, values restricted to enums, booleans and bucketed numbers, your UI locale, the extension version, the platform, and VS Code's own machine id. What is never sent: anything from the list above — no transcript text, no prompts, no code, no file paths, no repository or branch names. The point of the bucketing and the enum-only values is that an event cannot be reversed into what you were working on.
Telemetry follows VS Code's own telemetry setting: turn telemetry off in VS Code and CSM sends nothing, no separate opt-out needed. If you want to keep VS Code telemetry on but silence CSM specifically, set csm.telemetry.enabled to false in settings.json. Either switch alone is enough — collection needs both to be on.
127.0.0.1 is the loopback interface — it only accepts connections from processes on your own machine; nothing outside your computer can reach it.
What settings does the extension expose?
Five, and nothing else:
csm.scanDirectory
Defaults to an empty string, meaning "use ~/.claude/projects". Point it at another path if your sessions live elsewhere. Changing it requires a window reload — the extension doesn't pick up a new scan directory on the fly.
csm.autoRefresh
Enabled by default. With it on, the extension watches ~/.claude/projects for changes and refreshes the sidebar automatically whenever a session is created or updated.
csm.resumeMethod
Defaults to ask. Controls where the detail panel's Continue button opens claude --resume: ask (choose each time), internal (the VS Code integrated terminal), external (your system terminal), or cc (hand it to the official Claude Code extension). Choosing once and making it the default is the point — after that it stops asking.
csm.notifications
Defaults to all. Decides when you get told that a turn needs you: all (a tool is waiting for approval, or a turn finished while you were elsewhere), asks (approvals only), or off. Notifications are suppressed while the panel is focused either way, so it never interrupts a conversation you are already watching.
csm.port
Defaults to 52847 and accepts any value between 1024 and 65535. This is the loopback port the local backend listens on; you shouldn't need to touch it unless something else already uses that port.
How is the backend shared across multiple VS Code windows?
There's one backend process, not one per window. It listens on the csm.port loopback port, spawned on demand by whichever window needs it first; later windows detect it and reuse it instead of starting their own. Close all windows using it and the backend exits automatically after a short delay — nothing to clean up.
Because the port is fixed and shared, if you need to change csm.port, close all VS Code windows first — otherwise windows can end up pointed at different ports and an inconsistent backend.
Which UI languages are supported?
English, 简体中文, Español, 日本語, and 한국어. The extension follows VS Code's own display language automatically — there's no separate language setting.
How do I customize the scan directory?
- Open VS Code settings and search for csm.scanDirectory.
- Enter the path where your session files actually live.
- Reload the window (Developer: Reload Window) so the extension rescans.
Until you reload, the extension keeps using its previous scan results — saving the setting alone doesn't trigger an immediate rescan.