Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>LingerNew to Visual Studio Code? Get it now.
Linger

Linger

Linger Dev

|
6 installs
| (2) | Free
Repo and branch scoped sticky notes for Cursor, with optional Required note commit/push blocking.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Linger

Repo and branch scoped sticky notes for Cursor and VS Code.

Linger keeps short-lived development reminders where they belong: inside the repo you are working on, on the branch where they matter, without committing TODO comments or losing context in chat. Mark a note Required when it must be handled before git commit, git push, or both.

The Problem

You notice something while coding:

  • fix this before committing
  • do not push until this edge case is checked
  • revisit this file after the refactor
  • this line is suspicious, but not part of the current task

Normal options are awkward. Code comments get committed. TODOs become permanent. Chat context disappears. External notes do not know which repo, branch, file, or line you meant.

Linger gives those reminders a temporary home inside your local git metadata.

What Linger Gives You

  • Line notes for exact code locations.
  • File notes for whole-file reminders.
  • Required notes that can block commit, push, or both.
  • Branch scoped notes, so reminders from one branch do not leak into another.
  • Explorer badges for files with active notes.
  • A Linger activity-bar view for everything still in progress.
  • A first-run quick start for new users.
  • A hook status screen that explains exactly how Linger is connected to Git.
  • Done notes for history without cluttering the active list.
  • Local-only storage under .git/linger.

60-Second Workflow

  1. Open a git repository in Cursor or VS Code.
  2. Put the cursor on a line you want to remember.
  3. Run Linger: Add Note at Cursor.
  4. Choose Current Line or Whole File.
  5. Use Linger: Add Required Note at Cursor for anything that must block a git action.

Open the Linger activity-bar view to review active notes, mark them done, edit them, delete them, or jump back to their location.

Run Linger: Show Quick Start any time to reopen the onboarding guide.

Required Notes

Required notes are for reminders that should stop you from shipping unfinished work.

By default, an active Required note on the current branch blocks:

git commit
git push

When Git is blocked, Linger prints the first few active Required notes in the terminal output so you know what to resolve.

You can choose exactly what Required notes block:

  • Block: C+P blocks commit and push.
  • Block: C blocks commit only.
  • Block: P blocks push only.
  • Block: Off keeps Required notes visible without blocking Git.

Run:

Linger: Choose Blocked Git Actions

The same action is available from the Linger view header and the clickable status bar item.

Where Notes Show Up

  • Editor decorations for line notes.
  • CodeLens for file-level notes.
  • Explorer badges:
    • LN for normal file notes.
    • R! for Required file notes.
  • Linger sidebar:
    • In Progress
    • Done
  • Status bar:
    • active note count
    • active Required-note blocking mode

Local-First Privacy

Linger is intentionally local.

  • No account.
  • No telemetry.
  • No cloud sync.
  • No external service.
  • Notes are stored under .git/linger/notes.json.
  • Notes are not committed to your repository.
  • Notes are scoped to the active git branch.

Because notes live inside .git, they stay on your machine and do not appear in normal source control changes.

Git Hook Safety

Linger uses git hooks only for Required-note blocking.

Managed hook files live under:

.git/linger/hooks

That keeps generated hook files out of the working tree, including repositories that use .githooks or another custom hook path.

If your repository already has hooks, Linger records the previous core.hooksPath, runs Linger checks first, and then calls the existing hook. Use Linger: Remove Git Hooks to remove Linger-managed hooks and restore the previous hook path.

Run Linger: Show Hook Status to inspect:

  • the active repository and branch
  • current Required-note blocking mode
  • current and previous core.hooksPath
  • Linger-managed hook files
  • existing hook wrappers
  • diagnostics and repair actions

You can disable automatic hook installation:

{
  "linger.autoInstallHooks": false,
  "linger.blockActions": ["commit", "push"]
}

Supported linger.blockActions values:

["commit", "push"]
["commit"]
["push"]
[]

Commands

  • Linger: Add Note at Cursor
  • Linger: Add Required Note at Cursor
  • Linger: Mark Done
  • Linger: Move to In Progress
  • Linger: Toggle Required
  • Linger: Edit Note
  • Linger: Delete Note
  • Linger: Open Note Location
  • Linger: Show File Notes
  • Linger: Refresh
  • Linger: Install or Repair Git Hooks
  • Linger: Remove Git Hooks
  • Linger: Choose Blocked Git Actions
  • Linger: Show Hook Status
  • Linger: Show Quick Start

Install from VSIX

  1. Download the latest linger-*.vsix package.
  2. In Cursor or VS Code, open the command palette.
  3. Run Extensions: Install from VSIX....
  4. Select the downloaded .vsix file.
  5. Open a git repository and start using Linger.

Development

npm install
npm run check
npm run package

npm run package creates a versioned VSIX package such as linger-0.2.0.vsix.

Publish to Open VSX

Cursor uses Open VSX for its extension marketplace.

npx ovsx create-namespace lingerdev -p <token>
OVSX_PAT=<token> npm run publish:openvsx

Create the Open VSX token from your open-vsx.org account settings after signing the Eclipse Foundation publisher agreement.

License

MIT

Source

https://github.com/SamranTariq/Linger

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft