IntentPin
Turn code selections into precise AI change requests.
Português (Brasil)
IntentPin lets you attach editable notes to code selections, review them in one place, and copy a compact change request for any AI coding assistant.
It is local, provider-agnostic, and does not add metadata files to your repository.
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.
- Keyboard-first workflow that works well with VSCodeVim.
- Internal workspace storage with no repository files to ignore or commit.
- Best-effort relocation when edited code moves to another line.
Change the indicated sections. Adjust related code only when necessary.
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 through settings. Absolute paths are useful when the receiving AI is running outside the current workspace; relative paths are more portable and shorter.
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 a modal confirmation.
IntentPin uses VS Code's native inline Comments UI, but prevents the built-in Comments view from opening automatically.
VSCodeVim
The default keyboard flow requires no mouse: select code, press Ctrl+Alt+N, write the note, then press Ctrl+Enter.
To trigger IntentPin with <leader>n in Visual mode, add this to your VS Code settings:
"vim.visualModeKeyBindingsNonRecursive": [
{
"before": ["<leader>", "n"],
"commands": ["intentPin.add"]
}
]
Settings
Open Settings > Extensions > IntentPin.
| Setting |
Default |
Description |
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
Search for IntentPin in the VS Code Extensions view after the first Marketplace release.
For 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
Development
pnpm install
pnpm run check
pnpm test
Contributions are welcome. See CONTRIBUTING.md before opening a pull request.
Roadmap
- Neovim plugin with the same workflow and export format.
- Full support for multi-root workspaces.
- Stronger relocation using the saved surrounding context.
- Filtering notes by file and state.
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.