Note Taker 0.9 for VS Code
Notes, drawings and mind maps saved as ordinary files in a folder you choose. The visual editor uses VS Code theme colours, and every note is also a Markdown file you can edit in Explorer.
What's new in 0.3
- Files are saved in the note's folder. Attach any file type (up to 50 MB) with + File in the note header, Attach file, or by dropping files onto the note. Files are saved to
Workspaces/<workspace>/<folder>/Attachments/. If you move a note to another folder, its files move too. Attachments from 0.2 move into their note's folder on the first save.
- Previews for every file. Images, PDF, Word, Excel and CSV previews work as before. Text and code files now show their contents, and audio and video play inline. Every file block has Open in VS Code and Show in folder.
- Page style. Each note can have Plain, Lined, Grid, Dotted, Sepia or Night paper; Narrow, Standard, Wide or Full width; Sans, Serif or Mono type; and Compact, Normal or Relaxed line spacing. Use for new notes makes the current style the default.
- Redesigned note header. Text, Drawing, Mind map and File are grouped together in one Insert group. Page navigation is compact, the title is larger, and the toolbar wraps on narrow editors instead of scrolling sideways.
- Drawing.
- New Text tool. Double-click text to edit it.
- Quick colour swatches.
- Paper backgrounds: Dots, Grid, Lines, Blank and Dark board.
- Zoom buttons.
- The eraser also removes shapes and images.
- Keyboard shortcuts: V select, P pen, H highlighter, E eraser, T text, R rectangle, O ellipse, L line, A arrow, Space pan, Ctrl+Z / Ctrl+Y, Ctrl+D duplicate, Delete.
- PNG exports have a solid background.
- Empty drawings take one line in read mode.
- Mind map.
- New maps open in place.
- Keyboard editing: Tab adds a child, Enter adds a sibling, type or F2 renames, Delete removes, arrows move between ideas, Space collapses, Ctrl+Z undoes.
- New ideas no longer land on top of others or reset your layout.
- Labels wrap at word boundaries.
- Extra root topics can be deleted.
- Fit fills both directions.
- PNG export added.
- Fixes.
- Fullscreen drawings, maps and presentations are no longer covered by the top bar.
- Habit Rename and Delete work. VS Code blocks browser prompts, so they now use in-editor dialogs.
- Backups or note imports that use the newer shapes, pens or edge styles are no longer rejected.
- Changing only the letter case of a title no longer creates "Title (2).md".
- Backups are kept every few minutes (up to 40) instead of on every keystroke.
- A conflict with another window pauses autosave and offers Reload from disk instead of repeating errors.
- Exports default to an
Exports folder.
- The leftover cloud "Your connections" panel and the "Reset demo" button were removed from Settings.
- Notes sidebar. Shows folders, notes and attachments. Its context menus can open the Markdown source or reveal a note or file. The view title has New Note and Refresh.
0.9.2
- Delete a note. The 🗑 button in the note header asks for confirmation, then deletes the note and returns to the notes list. Its Markdown file moves to
.my-notes/trash in your notes folder, and its attached files stay in the folder.
- Delete a workspace. The workspace menu (top left) has Delete workspace…. After confirmation, the workspace and its notes, folders, tasks and files are removed and you switch to another workspace. Its folder moves to
.my-notes/trash/<time>-workspace-<name>. The last remaining workspace cannot be deleted.
- Stickers. + Sticker in the Insert group has 32 emoji stickers (⭐ ✅ 💡 🔥 🎉 📌 🚀 …) and word badges (TODO, DONE, IMPORTANT, IDEA, NEW, REVIEW).
- A sticker lands in the middle of the visible part of the page.
- Drag it to move it, drag its blue corner to resize it, and use × to delete it.
- Stickers are saved with the note, like sticky notes, and are not included in exports.
0.9.1
- A mind map's board matches its block, and the ideas keep their size. The working area resizes; the ideas are not zoomed.
- Width: in both view and edit mode, the board is as wide as the block. A 50% block has a half-width board, and the board only grows past the block when ideas reach further.
- Height: the board's height follows the ideas. If you resize the block taller, the board fills it.
- View mode: it opens at 100% with the ideas centred. Before, it zoomed the map to fit (for example 140%). Fit and the zoom buttons are still there.
- Edit mode: the board is no longer a fixed 1000 × 600 canvas.
0.9.0
- Program output under the code. ▶ Run on a code block now shows the output inside the block, under the code, like a notebook:
- The panel shows normal output, errors in red, and compiler messages for C, C++ and Rust.
- When the run ends it shows ✓ Finished, ✗ Exit code N or ■ Stopped, and how long it took.
- Stop ends a running program, and Clear removes the output. A run stops after 5 minutes, and output stops after 1 MB.
- Input: if the code reads input (
input(), scanf, cin >>, read, Scanner, Read-Host …), Note Taker asks what to type first, one line per input.
- ⌨ Terminal runs the code in the VS Code terminal, for programs you interact with while they run.
- Blocks side by side. Blocks narrower than the page (50% or 75% width in the block's ⋯ menu, or dragged narrower) sit next to each other in rows instead of stacking.
- Mind maps fill their block.
- The mind map view no longer has its own frame inside the block, and its height follows the map's shape.
- It refits whenever the block changes size. Before, it was fitted only once, so a narrower block cut the map off.
- In a resized block, the map fills the whole block.
0.8.3
- The code editor is the size of its block.
- A code block now shows the whole program. Before, the code area was capped at 70% of its frame's height, so a long program stayed in a small scrolling box with empty space under it.
- If you resize a block (drag its corner), the text or code inside fills the new height. A code editor stretches to the bottom of the block, and its code scrolls inside when the block is shorter than the program.
0.8.2
- A code block is one block. + Code now adds the code as its own block, named after its file (
main.py, main.c …), instead of adding it to the end of the text. A block that holds only code shows its editor window edge to edge, with no page padding around it.
- Automatic width and height for every block.
- Text and code blocks are exactly as tall as their content. Before, they were at least 200 px tall, which left empty space under short text and code.
- Sizes saved on blocks by earlier versions are cleared once when you open Note Taker, so every block fits the width with automatic height.
- You can still resize any block, and its ⋯ menu has Fit width · automatic height to undo that.
0.8.1
- Fixed: "Script error: Uncaught SecurityError: Failed to read the 'localStorage' property…". Scripts in the HTML live preview (Source → HTML) and in Present mode now get a working
localStorage and sessionStorage, as the in-block apps already did. As before, values are kept only while the preview is open; use ⤢ Full window for storage that lasts.
0.8.0
- A drawing is one block. In a note, the drawing editor no longer has its own card, border, shadow, focus ring or grey margin inside the note block. Fullscreen drawings keep their frame.
- Code blocks look like an IDE. Each code block is an editor window: a tab with a file name (
main.py, main.c, script.sh …), line numbers, and a status bar (language, line count, encoding).
- It uses a dark IDE theme by default. ◐ switches every code block, and the code editor dialog, between the IDE theme and your VS Code theme.
- Buttons: Copy, Edit, ▶ Run, plus ⚙ Environment and ⏰ Schedule where they apply.
- ⚙ Environment (Python, Bash/Linux shell, C, C++) turns a code block into a real project in
Projects/<name>/ in your notes folder and opens it in VS Code:
- Python:
main.py; requirements.txt worked out from the imports (for example cv2 becomes opencv-python and PIL becomes Pillow); a .venv with those packages installed; .vscode/settings.json pointing at the venv; and a launch.json (F5 runs main.py).
- Bash:
script.sh with a #!/usr/bin/env bash line and LF line endings, plus a build task that runs it (Ctrl+Shift+B).
- C / C++:
main.c / main.cpp and a Makefile (make, make run, make clean). There are .vscode/tasks.json (Ctrl+Shift+B builds with -Wall -Wextra -g) and launch.json (F5 debugs with gdb; needs the C/C++ extension). The project is compiled once to check it.
- A message offers Open in New Window or Show in Explorer.
- ⏰ Schedule (cron). Run a code block on a schedule:
- Presets: every 5/10/15/30 minutes, hourly, daily at a time, weekdays, weekly on a day, monthly on a day.
- Custom: any cron expression, including
*/15, ranges, lists, month and day names, and @daily. The dialog explains it in words and shows the next three runs; an invalid expression is explained and can't be saved.
- A schedule keeps a copy of the code as it was when scheduled. It runs in the VS Code terminal, without taking focus, while VS Code is open. Results are logged in Output → Note Taker Tasks.
- Note Taker: Scheduled Tasks (Command Palette or ⋯ in the Notes view) lists schedules with their next and last runs. From there you can Run now, Pause / Resume, Change schedule…, Open the script, Copy crontab line (for Linux, macOS or WSL cron, which runs even when VS Code is closed), or Delete.
0.7.7
- Smoother handwriting, especially when writing fast.
- Every pointer position the system reports between screen updates is now recorded. Before, fast strokes kept only one point per frame.
- Strokes are drawn as continuous curves through those points instead of straight segments, so fast loops and letters no longer look angular.
- The same smooth curves are used in the editor, the read view, and the PNG and SVG downloads.
- Faster drawing on busy canvases. While you write, only the stroke being drawn is redrawn, not every stroke in the drawing.
0.7.6
- Copy, cut and paste in drawings. Select a shape, stroke, text or image and press Ctrl+C or Ctrl+X, then Ctrl+V to paste it at the mouse pointer. This also works between drawings.
- Pasting text into a drawing makes a text box at the pointer. Before, pasted text and copied drawing items were ignored.
- Pasted images were already saved: each one is stored in the workspace's
Attachments folder and listed in the drawing.
0.7.5
- Pasted images land at the mouse pointer. In a drawing, Ctrl+V (and More → Paste image or Upload image) centres the image where your pointer last was over the canvas. Near an edge the image stays inside the drawing. If the pointer hasn't been over the drawing in the last minute, the image goes to the usual spot.
0.7.4
- + App in the note header, next to + Code, adds an app in its own block:
- Web app · HTML, CSS, JavaScript: a working task list that runs inside the block, ready to change with ✎ Edit. ⤢ Full window opens it in the App Runner.
- Python app / C app / Bash script: opens the code editor with a starter program for that language. Add app puts it in a block named after it, and ▶ Run starts it in the VS Code terminal.
0.7.3
- Drawing text works like a shape. With the Text tool (T), drag out a box and type straight into it on the canvas. A single click makes a box 40% of the drawing wide. Text wraps to the box width. Esc, Ctrl+Enter or clicking away finishes. Double-click a text item to edit it in place, and clearing all its text removes it.
- Drawing layers.
- Pen strokes, highlighter, shapes, text and images now share one stacking order, and anything new goes on top. Before, pen strokes were always drawn under every shape and image, so writing over a filled shape or a pasted picture hid the ink.
- More → Bring to front / Bring forward / Send backward / Send to back work for every item, including pen strokes. The keys are Ctrl+Shift+] / Ctrl+] / Ctrl+[ / Ctrl+Shift+[.
- The order is used in the editor, the read view, and the PNG and SVG downloads.
- Drawings made before 0.7.3 look the same until you change them.
- Code editor. + Code opens a real code editor:
- Editing area: line numbers and colours as you type.
- Toolbar: Indent, Outdent, Comment, Wrap, A− / A+ (text size), Starter (example code for the language), Paste, Copy and Clear.
- Keys: Enter keeps the indentation and adds a level after
{, (, [ or :. Tab and Shift+Tab indent selected lines, and Ctrl+/ comments them.
- Status bar: shows line and column.
- Add code inserts the block. The language and text size are remembered.
- Code blocks on the page have a header bar with the language, Copy, Edit and ▶ Run (for runnable languages). Edit reopens the block in the code editor and saves your change back into the note.
0.7.2
- Pen size shortcuts.
[ and ] make the pen smaller or bigger (Shift = 3 steps), and so does Alt + mouse wheel over the drawing.
- Pen → Stroke → Size keys switches the keys to
, . or Q W, or turns them off.
- The size slider has − and + buttons.
- A small badge shows the new size.
- If a stroke or shape is selected, its size changes too.
- Pen shortcuts.
1–7 pick Ballpoint, Fountain, Pencil, Brush, Marker, Calligraphy and Technical. The keys show in the Pen menu tooltips.
- Shape shortcuts.
R, O, L and A are rectangle, ellipse, line and arrow, as before. Every other shape has Shift + a letter: rounded R, triangle T, diamond D, pentagon P, hexagon H, octagon O, trapezoid Z, star S, heart E, cross X, cylinder Y, cloud C, parallelogram L, tag G, document K, speech bubble B, right triangle N, block arrow A, double arrow W, chevron V, lightning J, moon M, ring I, flag F.
G cycles through all shapes.
- Shape tooltips show their key, and ? lists all drawing shortcuts.
- 8 new shapes: right triangle, block arrow, double arrow, chevron, lightning, moon, ring and flag.
- Shift while drawing.
- Line and arrow snap to 45° (perfectly horizontal, vertical or diagonal).
- Shapes stay square: rectangle → square, ellipse → circle.
- The pen draws a straight line from where you started.
- Fixes.
- Lines and arrows keep the direction you drew them in. Before, a line drawn up-right or an arrow pointing left was flipped.
- Esc closes an open drawing menu without also closing the drawing.
0.7.1
- Run code from notes. Code blocks in Python, Bash/sh, JavaScript, TypeScript, PowerShell, Batch, C, C++, Go, Rust, Java, Ruby, PHP, Lua, Perl and R have a ▶ Run button.
- The code runs in VS Code's terminal panel, so you see its output and can type input (for example Python's
input()).
- The working folder is the note's folder, so scripts can open files next to the note.
- C, C++ and Rust are compiled first. If compiling fails, the errors show and the program does not run.
- Attached scripts (
.py, .sh, .js, .ps1, .c, .cpp, …) have ▶ Run in their file block. They run in their Attachments folder.
- Python virtual environment.
- Note Taker: Create Python Environment (.venv) creates
.venv in your notes folder. Python code from notes then runs with it automatically.
- Note Taker: Install Python Packages… runs
pip install into it.
- A
```requirements (or ```pip) code block has ▶ Install, which installs the packages listed in it.
- Both commands are also in the Notes view's ⋯ menu.
- What you need installed: the language itself, on PATH, e.g. Python, Node.js, gcc/g++, Go, Rust or a JDK. On Windows, Bash comes from Git for Windows (
C:\Program Files\Git\bin\bash.exe). A missing tool gives a message naming what to install.
- Code location. Code from blocks is saved to
.my-notes/run/code/ before it runs.
0.7.0
- Notes are just blocks. The page controls are gone: page name, page number, Previous/Next, Page size, Add page, Delete page, Templates, and the "Page 1" and "End of page" labels. A note is one continuous list of blocks. Notes that already have several pages keep all their content and now show as one continuous page.
- PDF export with preview. Export → PDF opens a preview of the actual pages before saving:
- Options: paper size (A4, Letter, Legal, A5, A3), Portrait or Landscape, margins (none, 12, 20 or 30 mm), paper (Plain, Lined, Grid, Dotted, Sepia, Night), font, line spacing, text size (80–125%) and page numbers.
- Paper, font and spacing start from the note's Page style. Size, orientation, margins, text size and page numbers are remembered for the next export.
- Page breaks fall between lines, paragraphs and blocks, never through a line of text and never right after a heading.
- − / + resize the preview pages. The page count updates as you change options.
- Export PDF saves exactly the pages shown.
0.6.9
- Delete any block. Every block's ⋯ menu ends with Delete block (text, drawing, mind map, file or app). A message with Undo appears for 8 seconds. The note's first text block cannot be removed, so its menu offers Clear text.
- Deleting a file block keeps the file. It stays in the folder's Attachments and is no longer linked to the note.
- Before this, drawings and mind maps could only be removed from the old Draw / Mind map tabs, which 0.6.5 removed.
0.6.8
- Apps run inside their block by default.
- A text block whose HTML has a
<script> runs as a live app on the page. A bar above it shows ✎ Edit, ↻ Restart and ⤢ Full window. The block's height follows the app.
- An attached
.html file runs in its block. CSS, JavaScript and images attached next to it (in the same Attachments folder) load with it. Code shows the source; Run switches back.
- CDN libraries work in blocks.
<script src="https://…"> and stylesheet links are downloaded once, kept in .my-notes/run/cache, and placed in the app, so they keep working offline afterwards.
- Console output from block apps goes to Output → Note Taker Apps. Errors also show as a red bar in the block.
localStorage works while the block is open, but is not kept.
- Limits inside a block. These need ⤢ Full window:
import between module files, fetch() of files or web APIs, and Web Workers.
- Saved
localStorage.
- Images and fonts loaded from the internet by CSS.
- Security. Block apps run sandboxed: they cannot reach Note Taker, VS Code, other notes or your files. Libraries are fetched by the extension only from the https links written in the app.
0.6.7
- Run HTML, CSS and JavaScript apps. Apps run in their own VS Code panel (the App Runner), beside your code:
- Note Taker: New HTML App (Command Palette, or ⋯ in the Notes view) creates
Apps/<name>/ in your notes folder with index.html, style.css and app.js. It opens the code and runs the app.
- Run HTML App (▶ in the editor title of any
.html file, or right-click an .html file in Explorer) runs any HTML file from any folder.
- What apps can use: files beside the HTML (CSS, JavaScript, ES modules with
import, images, JSON through fetch) and libraries from https CDNs such as React, Vue, three.js or Chart.js.
- Reload on save. The app reloads whenever you save a file in its folder. Reload App and Open App in Browser are in the panel's title bar; open the app in a browser when you need its developer tools.
- Console output.
console.log output and errors appear in Output → Note Taker Apps. Uncaught errors also show as a red bar in the app; click the bar to dismiss it.
- In notes. Source → ▶ Run as app (full window) runs the current block's HTML in the App Runner. An attached
.html file has a ▶ Run app button.
- Security. Apps run in a separate panel with no access to Note Taker, VS Code commands or other files. They can load files from their own folder and from https.
0.6.6
- HTML, CSS and JavaScript animation in notes.
- Source → HTML · CSS · JavaScript edits a block as HTML.
<style> tags style the block (including @keyframes animations), and <script> tags run when the page shows, so buttons, counters, element.animate() and canvas drawing work. SVG and SVG <animate> are allowed too.
- Source → Add animation example inserts a working example with a bouncing ball, a button and a click counter. The same example is also available from the HTML source view.
- If a script fails, a red bar on the block shows the error.
- Scripts run in a sandboxed frame: they cannot reach VS Code, your files, other notes or the network. External
<script src> files are not loaded.
- Paste images into drawings. Ctrl+V with an image in the clipboard now always adds it to the drawing, even after you click outside the canvas. In fullscreen it goes to the fullscreen drawing; otherwise to the drawing you used last. More → Paste image still works.
0.6.5
- No more mode tabs. The Read / Edit / HTML / CSS / Draw / Mind map tabs are gone. The page is the only view: double-click any block to edit it in place. To edit the text as Markdown, HTML or custom CSS, use Source next to the page name. In source view, switch between Markdown, HTML and CSS, then press Done.
- + Code in the Insert group opens a dialog. Pick a language (C, C++, Bash, Python, JavaScript, TypeScript, Java, C#, Go, Rust, SQL, JSON, HTML, CSS, YAML or plain text) and paste your code. Tab indents, and Ctrl+Enter adds the block. The last language you used is remembered. The / menu also has Code: C, C++, Bash, Python and JavaScript.
- Better C and Bash highlighting.
- C and C++:
#include, #define and other preprocessor lines are highlighted, plus keywords such as typedef, sizeof, unsigned, size_t and NULL.
- Bash:
$VAR, ${VAR} and $? are highlighted, including inside double-quoted strings.
0.6.4
- Drawing menus in fullscreen. Shapes, Pen and More now open in fullscreen drawings. The fullscreen toolbar used to clip them.
- Menus close each other. Opening one toolbar menu closes the others, and clicking outside or pressing Esc closes them all.
- Redesigned Pen menu. Pen types are buttons with a stroke preview (Ballpoint, Fountain, Pencil, Brush, Marker, Calligraphy, Technical). Below them are Stroke (smoothing and opacity), Options (pressure, shape assist, finger drawing) and Shape fill.
0.6.3
- Code blocks follow your VS Code theme.
- Fenced code (```js, python, sql, json, html, css, bash, yaml and others) is highlighted with the editor font, the code-block background and token colours that match the theme in light and dark.
- The language appears in the top-right corner.
- In the / menu, Code block leaves the cursor after the opening ``` so you can type the language.
- Resizable PDFs in notes. A PDF or document in a note now sits directly in its block, without a grey frame or inner card. Drag the block's resize corner and the viewer and the page follow; Fit page keeps the whole page visible at any size.
0.6.2
- PDFs open inside VS Code. The PDF viewer stayed on “Preparing the page…” because VS Code serves extension files from a separate origin, where the PDF engine's worker cannot start. The worker now runs from a local copy. This was verified in a real VS Code window.
0.6.1
- Only the open workspace is shown. The Notes view lists just the open workspace (its name is in the view header), with a Switch Workspace button. Explorer hides the other workspaces' folders through
files.exclude in the notes folder's .vscode/settings.json, updated whenever you switch. Turn this off with the Note Taker: Hide Other Workspaces setting.
0.6.0
- Export to PDF works. Export → PDF builds a real PDF file (A4 pages with text, drawings and mind maps, Arabic included) and asks where to save it. The old print window could not open inside VS Code.
- PDFs open at Fit page. The whole page is visible. Use Fit width, the zoom buttons (50–300%), or Full screen (Esc to leave) in the viewer, in a note or in the opened file.
- Sticky notes. + Sticky in the note header adds a note on the current page:
- Drag it by its top bar, resize it from the corner, and pick one of six colours or delete it from the top bar.
- Sticky notes are saved with your notes. They are not included in exports.
- One frame per page. Blocks no longer draw their own box inside the page. A faint outline appears only on the block you are using.
- Faster attachments. Files are encoded with the browser's native reader, and the status bar shows "Saving …" while a file is written. Any file type up to 50 MB can be attached, and several files can be selected at once.
0.5.1
- Workspaces. The workspace switcher is back in the top-left of the editor. Click it to switch workspaces, choose New workspace, or Rename & color the current one. Each workspace is its own folder under Workspaces.
0.5.0
- Folder themes.
- Each folder has its own colour. New folders take the next colour automatically, so neighbouring folders differ.
- The folder dialog has an Icon picker (24 icons, or type any emoji).
- The colour and icon show on the folder cards, in the note header (a coloured strip and icon) and in the VS Code Notes sidebar (a coloured folder icon).
- Renaming or moving a folder keeps its icon.
- Blocks fit the page width with automatic height. Each block's ⋯ menu has Fit width · automatic height to undo resizing. Choosing the default page size resets resized blocks on that page.
- Opened files fill the window. Opening a PDF, image, document or other file shows it at full window height. PDF and document previews inside a note use the page height.
- Pen defaults. Pressure and Shape assist start off. Turn them on from the Pen menu.
- Habits.
- Click a day to cycle done → rest day → empty. Rest days keep your streak.
- A strength score grows with each done day and fades slowly when you miss one, measured against your weekly goal.
- A 26-week heatmap shows done and rest days.
- Flashcards in notes.
- Write
Question :: Answer, Term ::: Definition (cards both ways) or The {{capital}} of France anywhere in a note. Text inside code blocks is ignored. The "/" menu has a Flashcard item.
- The Study page shows how many cards are due. Review them with Space to show the answer and 1–4 for Again, Hard, Good or Easy.
- Spaced repetition schedules each card. The schedule is saved in your notes folder.
- Today's workload.
- The Today page shows planned task time against your workday length (8 hours by default, adjustable) and turns red when overbooked.
- End of day: move unfinished moves open and overdue tasks to tomorrow.
- Mind-map outline. Outline shows the ideas as an editable list beside the map. Enter adds an idea, Tab and Shift+Tab indent and outdent, Backspace on an empty row removes it, and arrows move between rows. The map follows every change.
0.4.0
Ideas taken from current note, planning and mind-map apps (Todoist, Sunsama, Akiflow, Obsidian, Notion, Excalidraw, Xmind, MindNode):
- Pages fit the editor width by default and grow with their content. Fit width is the first option in Page style, and the Page size dialog names this default.
- Quick Add Task (command palette or the + button on the Notes view). Type "Call Sam tomorrow 5pm 30m p1 #Work". It understands today, tomorrow, weekdays, next monday, in 3 days, 1 Nov, times (5pm, 17:30), lengths (30m, 1h30m), priority (p1–p3) and a category (#name). VS Code shows the parsed result before you press Enter.
- Open Today's Note creates or opens a dated note (YYYY-MM-DD) in the Daily folder, with Plan and Notes headings.
- Focus Timer in the VS Code status bar. Choose 15, 25, 45 or 60 minutes or a custom length. Click the timer to pause, resume or stop it. It keeps running when the notes editor is closed.
- "/" insert menu in the Markdown editor. Type / at the start of a line or after a space for headings, lists, checklists, quotes, Note/Tip/Warning callouts, code, tables, dividers, links, today's date, images, files, drawings and mind maps.
- Collapse file previews to a compact row. The choice is remembered for each file.
- Drawing: K toggles a laser pointer that fades and is never saved. + and − zoom, 0 shows 100%, and Shift+1 fits the width.
- Mind map: Alt+Enter adds a parent idea. Alt+1…9 folds to a level and Alt+0 expands everything. Ctrl+/ collapses. Ctrl+= and Ctrl+− zoom, and Ctrl+0 fits. Arrange includes Colour by branch.
- Press ? for the shortcuts of the drawing or mind map you are using, or the general shortcuts elsewhere.
0.3.1
- Mind map layouts. Arrange offers Tree to the right, Balanced (both sides) and Top-down. Ideas keep the order you created them in. Top-down maps connect from the bottom of each idea.
- Icons and notes on ideas. Each idea can have an emoji or symbol and a note. The note appears on hover, as a small marker on the idea, and in the Markdown outline.
- Mind maps in Markdown. Each note's
.md file ends with a generated outline of its mind maps, so Explorer and search can find them. Edits to that section are replaced on the next save; edits to the text above it are kept as usual.
- Drawing. Download SVG (with the paper colour), Bring to front and Send to back are in the More menu. Custom colours you draw with appear after the preset swatches.
- Files added in Explorer. Files you copy into any
Attachments folder appear in Note Taker as files of that folder.
- Faster previews. Stored files are read directly from the notes folder instead of being sent through the editor bridge.
- Planner and Study. The focus timer card follows the dark theme. Planner no longer mentions a demo or simulated calendar, and messages refer to the notes folder instead of "this device".
Install or update
- Save your notes and close the Note Taker editor.
- Install Note Taker from the Extensions view (Marketplace). To install a VSIX file instead, choose the three-dot menu > Install from VSIX.
- Reload VS Code if requested.
- Run Note Taker: Open Local Workspace from the Command Palette.
Choose a local storage folder on first use. The folder is kept in the myNotes.storageFolder setting, so reinstalling keeps it.
If you used a copy installed from a VSIX under the earlier publisher ID (eslam-personal), uninstall that copy first. Otherwise both copies run with the same commands. Then choose the same notes folder once in the new copy. The extension adds that folder to Explorer alongside your existing project; it does not replace your project. VS Code may reload when converting a single-folder window to a multi-folder workspace. The notes editor reopens afterward.
Use the Explorer button or Note Taker: Add Notes Folder to Explorer if the folder is not visible. The top-left Note Taker button switches between existing workspaces.
Work with real files
A typical note is saved at:
Workspaces/My workspace/Personal/Test.md
Files attached to a note in the Personal folder are saved at:
Workspaces/My workspace/Personal/Attachments/Lecture.pdf
Drawing images and files without a folder stay in Workspaces/My workspace/Attachments.
- Click a Markdown file in Explorer to edit its main text using VS Code.
- Right-click it and choose Open in Note Taker for the visual editor.
- The Markdown button opens the current note's source beside the visual editor.
- Saving Markdown refreshes the visual editor. Visual edits update the Markdown file.
- New Markdown files inside an existing workspace are imported automatically. Markdown files inside
Attachments folders are left alone.
- Renaming or deleting a note in Explorer updates the visual workspace.
- Native edits to the main Markdown block preserve the note's other pages, drawing and mind-map data.
The Markdown file represents the main text on the first page, followed by a generated outline of the note's mind maps. Additional pages, HTML/CSS, text blocks, drawings, mind maps and layouts are preserved in .my-notes/documents and the workspace state. The main Markdown file is not a complete backup of a rich note. Editing its text switches that main block to Markdown preview.
To drop files from your computer onto a note, hold Shift while dropping. VS Code otherwise opens dropped files in an editor tab.
Autosave and recovery
Wait for Saved to disk before closing or switching folders. The Save button and Ctrl+S flush pending visual edits. Save any unsaved native Markdown tabs before saving through the visual editor.
.my-notes/state.json retains the full workspace. The files.json index associates notes and attachments with ordinary files. State snapshots taken every few minutes (the latest 40) are in .my-notes/backups; pending conflicts are preserved in .my-notes/recovery. Deletions made through the visual editor preserve the former Markdown under .my-notes/trash. Back up the entire selected folder, including .my-notes and attachment files.
If both editors change the same text before either has loaded the other's change, the extension stops that save and preserves a recovery snapshot. If another window changes the folder, autosave pauses and VS Code offers Reload from disk; your unsaved snapshot is kept in .my-notes/recovery. Use one Note Taker window per storage folder.
Local features and limits
No hosting, PHP, Google account or runtime internet access is required. Tasks, habits, study tools, templates and presentation mode remain available. Google Drive, Calendar and Notion account connections remain disabled. Reminders run only while Note Taker is open. Embedded remote assets remain blocked; local attachments work offline.
Note PDF / Print may require a browser popup. Export HTML and print it in your browser when needed. Annotated PDF file export uses a Save dialog. Existing Xournal limitations remain.
The visual editor is adapted from the compiled frontend files of the original Note Taker project. build-adapter.cjs reproduces the editor from the original public_html assets: version 0.3 changes live in v3/patches.cjs (anchored edits, each required to match exactly once) and v3/bundle-helpers.js (new components). The extension's storage and bridge code is readable. The build adapter requires Acorn; no npm runtime dependencies are required.
Validation
Twenty-one automated tests cover quick-add parsing, attachment folders and moves, files added in Explorer, the mind-map outline, case-only renames, backup throttling, ordinary Markdown edits, native create/rename/delete, attachment migration, preservation of rich content, simultaneous edits, recovery and bounded backup retention. Browser checks against the real extension host code cover attachments of several types, page styles, the drawing text tool, shortcuts, paper, zoom, eraser and PNG export, mind-map keyboard editing and fullscreen, habit dialogs, Settings, light and dark themes, the 950 px layout, mind-map layouts, drawing order, SVG export and recent colours, and the Planner, Today, Databases and Study flows. An extension-host test also runs inside a real VS Code window (started with --no-sandbox, without changing any folder permissions): the extension activates, its commands register, the editor webview loads through the real host, and saving works.
Run node --test test/*.test.cjs to execute the storage tests.
| |