Codeinalia
Marginalia for code. Personal margin notes that live alongside source files without ever touching them.
Not code comments. Not TODOs in the source. Codeinalia is a separate annotation layer stored locally, never committed, never seen by anyone else.
Install
Search for "Codeinalia" in the VS Code Extensions view, or install from the Marketplace.
Workflow
- Read code, leave annotations on the lines you're studying — questions, observations, or todos tagged with
@mentions.
- Export the unresolved annotations to your clipboard and paste them into Claude.
- Claude answers; you resolve the annotations it addressed.
- The unresolved set is always your active working batch.
Storage
Annotations are stored in VS Code's global storage, one JSON file per workspace. They are never written into the workspace folder and never git-tracked.
Keybindings
| Command |
Keybinding |
Description |
| Add Annotation |
Ctrl+Shift+A |
Annotate the current line or selection |
| Toggle Inline Annotations |
Ctrl+Shift+; |
Show/hide CodeLens annotations above lines |
| Resolve Annotation at Cursor |
Ctrl+Alt+R |
Toggle resolved state for annotation(s) on the cursor's line |
| Delete Annotation at Cursor |
Ctrl+Alt+D |
Delete annotation(s) on the cursor's line (undoable via toast) |
| Edit Annotation at Cursor |
Ctrl+Alt+Enter |
Edit annotation(s) on the cursor's line |
| Export to Clipboard |
Ctrl+Alt+E |
Copy unresolved or all annotations, formatted for pasting into Claude |
| Search Annotations |
Ctrl+Alt+J |
Jump to any annotation by ID or text |
Display
- Color: hue tells you freshness, lightness tells you resolved state — blue = unresolved, yellow = unresolved & stale, pale blue-grey = resolved, pale yellow = resolved & stale. Same four colors in the gutter dots/bars and the panel icons.
- Gutter: a dot on every annotated line, plus a vertical bar — centered under the dot, same color — spanning multi-line annotations.
- Inline (CodeLens): toggled with
Ctrl+Shift+;, shows #ID @tag text above annotated lines. Click it to edit that annotation.
- Hover: hovering an annotated line shows the full annotation text, tag, timestamp, and status (unless
codeinalia.hoverEnabled is off).
- Sidebar: a "Codeinalia" panel nested in the Explorer lists annotations grouped by file, colored the same as the gutter. Hover a row to see its status (Unresolved / Unresolved · Stale / Resolved / Resolved · Stale) alongside the annotation text. Toolbar buttons: export, resolve all, delete all resolved, and an eye icon to switch between "Unresolved" and "All". Select multiple items (Ctrl/Shift-click) and right-click — Resolve and Delete apply to the whole selection; Edit acts on the clicked item.
Deleting shows a toast with an Undo action instead of confirming up front — applies to single deletes and "Delete Resolved".
Note: VS Code's extension API doesn't expose click events on gutter icons, so resolving from the gutter itself isn't possible — use the keybind, the panel's context menu, or "Resolve All" instead.
Settings
| Setting |
Default |
Description |
codeinalia.showResolvedInline |
false |
Show resolved annotations in the inline CodeLens display. |
codeinalia.showResolvedInGutter |
true |
Show dimmed gutter icons for resolved annotations. |
codeinalia.hoverEnabled |
true |
Show the annotation hover preview when hovering an annotated line. |
Staleness
If the source lines under an annotation change after it was created, the annotation is marked stale (yellow-hued gutter dot, [stale] marker on export) rather than silently drifting out of sync. Editing an annotation re-anchors it to the current source and clears stale.
Development
npm install
npm run compile
Press F5 in VS Code to launch an Extension Development Host with Codeinalia loaded.
License
MIT