Captures your coding and AI-assisted activity and reports it to your organization's 3an.ai dashboard. This is company-licensed engineering telemetry, not a personal tool — please disclose it to your team.
What it captures
- Editor activity — keystroke / selection / focus / active-file timing, plus edit text together with the file paths being changed.
- Git — commit activity in your workspaces.
- AI sessions — full transcripts of your Claude Code, Codex, and Cursor AI sessions.
Everything is sent to your org's dashboard, where your leadership can see team and per-contributor activity.
Getting a token
Contributors do not sign in. Your org admin creates a token user for you and emails you a 3an.ai setup email with your personal token — it's the first thing in the email. If you don't have one yet, ask whoever administers 3an.ai for your org.
Configure
- Open Settings in VS Code or Cursor (
Cmd+,/Ctrl+,). - Search for 3an.ai.
- Set
3anai.userTokento the token from your setup email. - Reload the window (
Cmd+Shift+P→ Developer: Reload Window).
After installing, allow any permission prompts VS Code / Cursor shows for the extension.
Status bar
A status item shows the current state:
| Status | Meaning |
|---|---|
| 3an.ai: Sync OK | Active and reporting. |
| 3an.ai: no token | No token set — add one in Settings. |
| 3an.ai: bad token | Token rejected or revoked — re-enter it. |
| 3an.ai: paused | Backing off after a server error; will retry automatically. |
| 3an.ai: OFF / 3an.ai: error | Reporting is off / a problem occurred. |
The 3an Desktop agent (required)
Run the 3an Desktop agent for macOS alongside this extension. It captures system-wide activity (app focus, browser domains, input intensity) and keeps recording your Claude / Codex AI sessions even when the editor is closed. Set it up with the same token you used here — both pieces are required for full coverage.
Privacy & disclosure
This extension reports your coding activity — including edited text and AI session transcripts — to your employer's 3an.ai workspace. It is meant to be used transparently; make sure your team knows it's running.