Quick Notes
Quick Notes is a lightweight, workspace-specific Markdown notebook in the VS Code sidebar. Write source Markdown directly, switch to an editable Rich Text presentation, or open the same note in VS Code's native editor when you need the complete editor experience.
Requirements
- VS Code
1.116.0 or newer
- An open folder or workspace
- No account, API key, or external service
Installation
Install Quick Notes - ASF from the Extensions view, or run:
code --install-extension asfreitas.quick-notes-asf
The Marketplace listing is available at Quick Notes - ASF.
Getting started
- Open a folder or workspace in VS Code.
- Select Quick Notes in the Activity Bar.
- Select the + action in the Notes view.
- Type in Markdown mode or use the Rich Text action to edit rendered content.
- Select Open in Editor when you want the normal VS Code Markdown editor.
Notes save automatically. A save indicator shows Saving..., Saved, or an error that can be retried.
Workspace-specific notes
Each VS Code workspace has a separate Quick Notes collection. Notes are stored as real Markdown files in VS Code's private extension storage for that workspace, accompanied by a small metadata manifest.
This means:
- notes do not modify or become accidentally committed with your project files;
- opening another workspace shows that workspace's own notes;
- a saved multi-root workspace shares one note collection;
- an empty VS Code window must open a folder or workspace before creating notes.
Version 0.2.0 is a clean rewrite and does not import notes or formatting syntax from earlier versions.
Managing notes
- Create notes from the Notes view title or
Quick Notes: New Note.
- Quick Notes keeps at most one blank note. If a blank note already exists, creating again selects that note instead of adding clutter.
- New notes use the first available
Note 1, Note 2, and so on.
- Select a note in the list to edit it.
- Rename the current note from the view action, context menu, Command Palette, or
F2.
- Delete from the view action, context menu, Command Palette, or
Ctrl/Cmd+W.
- Empty notes are deleted immediately. The confirmation setting applies only to notes that contain text.
- Deleted notes can be restored during the current session from the notification's Undo action or
Quick Notes: Undo Delete.
- The active note is restored after restarting VS Code.
The Notes section starts compact so most sidebar space remains available to the editor. Drag the divider to resize it, or collapse the Notes header when only the editor is needed.
The first rewrite intentionally uses a simple creation-ordered list. Search, manual sorting, pinning, folders, tags, and duplication are not included.
Markdown and Rich Text modes
Both modes edit one canonical Markdown document. Rich Text is never stored as a competing HTML copy.
Long lines wrap by default in both modes without a horizontal scrollbar. Disable quickNotes.wordWrap to keep each source line on one visual row and scroll horizontally instead.
Mode, cursor or selection, scroll position, and undo history are remembered separately for each note while the current Extension Host session is active. They reset after VS Code restarts, while note content and the active note remain stored.
Supported formatting includes:
- paragraphs and headings H1 through H6;
- bold, italic, strikethrough, and inline code;
- fenced code blocks and block quotes;
- unordered, ordered, nested, and checklist items;
- horizontal rules.
Raw HTML is escaped and cannot execute. Links, images, tables, underline, colors, and legacy color markers are intentionally unsupported. They remain editable in Markdown mode; Rich Text displays unsupported source as a locked literal block so switching modes cannot silently destroy it.
Inline actions apply to the selection or, with no selection, to the complete word touching the caret. Selecting an active format again removes it.
Block actions affect the current block or every complete block touched by a selection. List controls are mutually exclusive: applying another type converts the items, while selecting the active type removes it.
Unavailable actions are disabled. Their tooltips explain restrictions such as trying to turn a heading into a list. Lower-priority actions move into a More Formatting menu in narrow sidebars.
Lists and checklists
- Enter after a populated item creates the next item of the same type.
- Ordered items increment their number.
- New checklist items are unchecked.
- Enter in the middle splits the item and creates a matching following item.
- Enter on an empty item exits that list level.
Tab and Shift+Tab indent and outdent complete affected items.
- Clicking a Rich Text checkbox updates only its
[ ] or [x] source marker.
- Switching modes, undoing, and repeated saving do not add spaces or newlines.
Keyboard and mouse interactions
The following shortcuts work in both Markdown and Rich Text modes while the Sidebar Editor is focused:
| Interaction |
Action |
Ctrl/Cmd+N |
Create a note. |
Ctrl/Cmd+W |
Delete the current note, confirming only when configured and the note is non-empty. |
Ctrl/Cmd+S |
Save pending changes immediately. |
Ctrl/Cmd+B |
Toggle bold. |
Ctrl/Cmd+I |
Toggle italic. |
Ctrl/Cmd+Z |
Undo the latest note edit. |
Ctrl+Y or Ctrl/Cmd+Shift+Z |
Redo. |
Tab / Shift+Tab |
Indent or outdent affected blocks. |
Alt+Up/Down |
Move affected blocks. |
Shift+Alt+Up/Down |
Duplicate affected blocks. |
Ctrl/Cmd+Shift+K |
Delete affected blocks. |
Ctrl/Cmd+Enter |
Insert an equally indented block below. |
Ctrl/Cmd+Shift+Enter |
Insert an equally indented block above. |
Ctrl/Cmd+PageUp/PageDown |
Select the previous or next note. |
F2 |
Rename the current note. |
Standard selection, cut, copy, paste, select-all, word navigation, scrolling, context-menu, and spellcheck interactions are also supported.
Native editor and inline suggestions
Select the subtle square-and-arrow Open in Editor action to open the canonical .md resource in a normal, non-preview VS Code editor tab.
The Native Editor provides:
- normal VS Code keybindings and undo history;
- find and replace and multi-cursor editing;
- Markdown language services and installed extensions;
- inline completions from Copilot or another configured provider.
Sidebar edits update an already-open native document without revealing it. Native edits update the sidebar as they occur. Closing the tab cannot restore an older sidebar copy because there is only one logical document.
Quick Notes makes no language-model request and consumes no Copilot or completion-provider credits itself. Suggestions are supplied entirely through the user's existing native-editor provider and its normal configuration and terms.
Commands
Open the Command Palette and search for Quick Notes:
| Command |
Purpose |
Quick Notes: Open |
Reveal and focus Quick Notes. |
Quick Notes: New Note |
Create and focus a note. |
Quick Notes: Rename Current Note |
Rename the active note. |
Quick Notes: Delete Current Note |
Delete the active note. |
Quick Notes: Undo Delete |
Restore the latest note deleted in this session. |
Quick Notes: Open Current Note in Editor |
Open the canonical Markdown resource in the native editor. |
Settings
| Setting |
Default |
Description |
quickNotes.confirmDelete |
true |
Ask before deleting a non-empty note. Empty notes delete immediately, and Undo remains available. |
quickNotes.wordWrap |
true |
Wrap long lines in both sidebar modes without horizontal scrolling. Disable it for single-row lines and horizontal scrolling. |
Privacy and security
- Note data remains in VS Code's private local workspace storage.
- Quick Notes makes no network requests and collects no telemetry.
- Note content, titles, and webview messages are treated as untrusted input.
- Raw HTML is escaped, and the sidebar uses a restrictive Content Security Policy.
Development
See DEVELOPMENT.md for the F5 debugger workflow, automated tests, architecture, packaging, and publishing instructions. The rewrite's design decisions, implementation progress, and troubleshooting lessons are recorded in IMPLEMENTATION.md.
Licence and source
Quick Notes is released under the MIT licence. Source and issue tracking are available in the project repository.