CodeBlendPrivacy‑friendly code analysis extension that estimates how much of your code is AI‑assisted (inline accepts, pastes from AI chat, Copilot, etc.) versus manually typed. It classifies every insertion in real time and visualizes attribution per line & per session. Available for VS Code, IntelliJ IDEA, and Android Studio.
Key Features
InstallVS Code (User)
IntelliJ IDEA / Android StudioThe plugin is also available for JetBrains IDEs, Search CodeBlend in Plugins.
See ANDROID_STUDIO_SUPPORT.md for detailed setup instructions. Line Highlight Styles (
|
Command | Purpose |
---|---|
Sign In / Switch Account | Acquire / switch Microsoft account & verify ingest rights |
Reset Current Session Stats | Start fresh session; snapshot previous |
Manual Submit If Commit Changed | Force boundary if commit advanced |
Show AI Edit Characters | If per‑character trace enabled: opens virtual doc with historical AI spans; else toggles line style between previous and char for live spans |
Configuration (Highlights)
Setting | Default | Summary |
---|---|---|
aiTracker.lineHighlights.style |
border |
Visualization style (border/gutter/mixed/char/none) |
aiTracker.editByTrace.enabled |
false |
Enable per‑character historical attribution (extra memory) |
aiTracker.maxTrackedDocChars |
200KB |
Max per-document size (in KB) to attribute; files above are ignored (range 1–1024KB). Legacy byte values auto-mapped. |
aiTracker.maxCheckpoints |
100 |
Max number of recent attribution checkpoints retained for fast restore (minimum 50, no explicit upper cap). Older ones dropped FIFO. |
Marker semantics: bright = fully AI line, light = mixed line, none = no AI characters. In char
mode, a subtle background highlights contiguous AI character spans (merged). Safeguards:
- Spans merged (never per char) & capped (~5k) else fallback to line mode.
- Dense high‑AI very large files auto fallback.
- Debounced updates share line highlight timing.
Data Upload & Privacy
This plugin only records repository and commit metadata—no personal data is collected. Microsoft login is needed to upload data. For details on collected data, visit HowItWorks.
The limited data described below is uploaded solely to understand overall AI assistance usage patterns. It is not intended or suitable for individual performance evaluation, and no personal identity or prompt content is collected.
Commit Summary Schema
Row sent per commit boundary (after sign‑in):
Column | Description |
---|---|
reponame |
Repository name (remote origin base or local folder) |
branch |
branch name (Hash Value) |
commit |
HEAD hash |
files |
Array of repo‑relative file paths (prefixed with repo name and hash file name) |
pluginMeta |
Nested plugin metadata structure |
totalCharacters |
Total inserted characters this session/commit |
likelyAiCharacters |
Inline / high confidence AI characters |
pastepossiblyAiCharacters |
Medium confidence AI paste characters |
pastelikelyAiCharacters |
High confidence AI paste characters |
pasteFromCopilotCharacters |
Pasted characters detected as Copilot chat / Ask output |
pastelikelyHumanCharacters |
Pasted characters judged likely human |
typeCharacters |
Manual typing characters |
idecompleteCharacters |
IDE (non‑AI) completion characters |
deletedCharacters |
Characters deleted |
ignoredCharacters |
Explicitly excluded characters (outside tracked scope / suppression) |
fallbackCharacters |
Generic AI bucket when specific heuristic classification fails |
License
MIT – see LICENSE.
FAQ
How is AI % computed? (likelyAi + pasteFromCopilot + pastelikelyAi + pastepossiblyAi + fallback) / totalCharacters. ignoredCharacters
are excluded from both numerator and denominator.
Where are all the heuristics & edge cases documented? In the full Deep Dive (counters, suppression window, checkpoints, paste tiers, attribution model, privacy details).