IntentPin
Pin your intent to the code.
Português (Brasil)
Select code, add a note, and copy everything as a change request for any AI coding assistant. IntentPin works with any language or framework because it simply turns notes anchored to your code into plain text.
Demo

Watch the MP4 version
Why IntentPin?
Copying isolated snippets into an AI chat loses intent. Sending an entire repository creates noise. IntentPin keeps the useful middle ground: the exact code you selected, its location, and the change you want.
Use it with Claude Code, Codex, GitHub Copilot, ChatGPT, Cursor, or any tool that accepts text.
How it works
- Select a line or block of code.
- Press
Ctrl+Alt+N (Cmd+Alt+N on macOS).
- Describe the change and submit with
Ctrl+Enter (Cmd+Enter on macOS).
- Review, edit, check, and copy notes from the IntentPin sidebar.
- Paste the generated change request into your AI assistant.
Features
- Native inline comments attached to code selections.
- A sidebar grouped by file, with multi-select and checkboxes.
- Edit, navigate, copy, or delete individual notes.
- Copy checked notes with relative or absolute paths.
- Copy every note when you need the complete review.
- Compact output designed to be clear without wasting tokens.
- Configurable instructions in English, Portuguese, Spanish, or custom text.
- Internal workspace storage with no repository files to ignore or commit.
- Best-effort relocation when edited code moves to another line.
Make the indicated changes and answer any questions. Change code only when necessary to fulfill a requested change.
src/auth/login.ts:14-15
| const session = await getSession(token)
| return session ?? null
> Return a specific error when the token is expired.
Each block contains:
file:start-end for the source location.
| for selected code.
> for your requested change.
Selected code can be omitted in the extension settings. Absolute paths are useful when the AI is running outside the workspace; relative paths are shorter and useful when it is running in the same repository where you use IntentPin.
Managing notes
Open the IntentPin icon in the Activity Bar to see notes grouped by file.
- Checkboxes control which notes are included by the checked-copy actions.
- The copy menu offers checked notes with relative paths, checked notes with absolute paths, or every note.
- Item actions let you edit, delete, or copy only the current selection.
- The trash button clears all notes after confirmation.
- Saved notes fold automatically. The sidebar toolbar has separate toggles for its file groups and for the inline notes in the active editor. The
intentPin.foldAll and intentPin.unfoldAll commands remain available for custom keybindings.
IntentPin uses VS Code's native inline Comments UI.
VSCodeVim
IntentPin assigns Ctrl+Alt+N to create a note from the current selection and Ctrl+Enter to submit its inline comment.
To trigger IntentPin with <leader>n in Visual mode, add this to your VS Code settings:
"vim.visualModeKeyBindingsNonRecursive": [
{
"before": ["<leader>", "n"],
"commands": ["intentPin.add"]
}
]
Like the idea and already use Neovim? Check out IntentPin.nvim.
Settings
Open Settings > Extensions > IntentPin.
| Setting |
Default |
Description |
intentPin.editor.foldAfterSave |
true |
Fold inline notes automatically after saving; disable it to leave them expanded. |
intentPin.export.includeSelectedText |
true |
Include selected code in copied output. |
intentPin.export.instructionLanguage |
en |
Choose English, Portuguese, Spanish, or a custom instruction. |
intentPin.export.customInstruction |
Empty |
Set the instruction used by the Custom language option. |
Privacy and storage
IntentPin does not send code anywhere and has no AI provider integration. It only writes exported text to your clipboard when you request it.
Notes are stored in VS Code's internal workspaceState. They are intentionally local and ephemeral, and no IntentPin file is created inside your repository.
Installation
Install IntentPin from the Visual Studio Marketplace, or search for IntentPin in the VS Code Extensions view.
Local development
pnpm install
pnpm run compile
Open the project in VS Code and press F5 to launch an Extension Development Host.
To build an installable VSIX:
pnpm run package
To run the project checks:
pnpm run check
pnpm test
Contributions are welcome. See CONTRIBUTING.md before opening a pull request.
Roadmap
- Stronger relocation using the saved surrounding context.
- Filtering notes by file and state.
- Persistent note history, like a local PR or MR workflow, so you can follow each comment and its corresponding change over time.
- Note types for different prompts, such as questions and change requests, each with its own shortcut.
License and brand
The source code is available under the Apache License 2.0. You may use, modify, and redistribute it under that license.
The IntentPin name and visual identity are not granted by the software license. Forks must use distinct branding and must not imply that they are official IntentPin releases. See TRADEMARKS.md.
Support
Use GitHub Issues for bug reports and feature requests. See SUPPORT.md for the information that makes a report actionable.