Margo Inline

Private, always-visible code annotations for VS Code — maintained by ignorantshr.
Margo Inline lets you attach local notes to any line of code — for review, learning, or future todos — without modifying the source file. Notes are stored as plain JSON in your workspace and structured for easy handoff to AI assistants.
An independently maintained fork of Margo by Abbas Al-Kaisi. This fork focuses on private storage, end-of-line annotations, and a simpler interface. It is not the upstream release.
Features
- Always-visible end-of-line notes displayed as
[✎] title — body, without changing source files
- A distinct lavender (
#BCAED0), non-italic label separates notes from source comments; light, dark, and high-contrast themes are supported. Customize the color with margoInline.inlineNoteForeground in workbench.colorCustomizations.
- Editable, resolvable comment threads opened from the notes tree
- No editor gutter “+”; add notes using the context menu or shortcut
- Categories: TODO, BUG, NOTE
- Private storage only in
.margo/local.notes.json
- Tree view with grouping (by file, category, status) and filtering
- Export to Markdown or HTML
- Copy as AI Prompt — structured handoff to Claude, Copilot, or any LLM
- Line tracking — notes follow their lines as you edit
- Hover previews on any annotated line
Quick start
- Build a VSIX with
npm ci, then npm run package. In VS Code, use Extensions → Install from VSIX… and select margo-inline-0.2.0.vsix.
- Open a file, right-click a line → Add Note (or Ctrl+Shift+N / ⇧⌘A)
- Type your note. First line is the title, following lines are the body. Markdown is supported.
- Open the Margo Inline explorer in the activity bar to browse, filter, and export.
备注文字颜色 / Annotation color
行尾显示样式为 [✎] 备注内容。小铅笔图标与备注文字使用同一颜色,深色和浅色主题的默认颜色均为 #BCAED0,不使用斜体。高对比度主题保留专用配色。
在 VS Code 命令面板中运行 Preferences: Open User Settings (JSON),将下面的配置合并到 settings.json 中;修改颜色值即可自定义:
{
"workbench.colorCustomizations": {
"margoInline.inlineNoteForeground": "#BCAED0"
}
}
如果已有 workbench.colorCustomizations,只需在其中添加或更新这一项,不要覆盖其他配置。颜色修改即时生效,无需重新安装插件。
已有自定义颜色会覆盖新版默认值;要恢复默认颜色,请删除对应覆盖项。旧版配置键 margo.inlineNoteForeground 需要改成 margoInline.inlineNoteForeground。
Storage
| File/Folder |
Purpose |
Gitignored? |
.margo/local.notes.json |
Local vault — private, never committed |
Yes (auto) |
The .margo/.gitignore file contains *, ignoring all directory contents, including itself. It is created or repaired when existing local notes load or notes are saved. Already tracked files remain tracked by Git.
Legacy .notes.json files are left untouched and are no longer loaded. Existing priority fields remain compatible in stored data but are not exposed in the UI or exports. Multiline notes appear on one line; multiple notes on the same line are separated by |. Long annotations can extend beyond the visible editor width.
License
Margo Inline is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for the full text.
The original copyright notices and AGPL-3.0-only license are preserved. Fork changes are maintained by ignorantshr. This fork does not offer the upstream author's separate commercial license.
Fork identity and compatibility
- Extension ID:
ignorantshr.margo-inline; publishing under this ID requires a publisher account controlled by the maintainer. No Marketplace or Open VSX publication is claimed.
- Commands, views, and settings use the
margoInline namespace. Update previous margo.* settings and keybindings to margoInline.* (for example, margoInline.inlineNoteForeground).
- Existing notes remain in
.margo/local.notes.json so upgrading does not move or discard them. Disable the original Margo extension and earlier custom builds to avoid duplicate shortcuts and concurrent writes to this shared data path.
- Upstream history and attribution are retained; fork changes begin at version 0.2.0 on 2026-11-04.
Links
Original work © 2026 Abbas Al-Kaisi. Fork modifications © 2026 ignorantshr. Licensed under AGPL-3.0-only.