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

Blitzgedanke

Gustavo Espindola

|
13 installs
| (0) | Free
Markdown notes inside VS Code that you and Claude Code share: pages for research, plans and tasks, saved as plain .md files.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Blitzgedanke | Markdown notes you share with Claude Code

A notepad inside VS Code that you and Claude Code both write in. Each project is a markdown page, with extra pages when you need them (research, plans, tasks), stored as plain .md files. Every VS Code window shows the same projects.

✨ What you get

  • Markdown pages, no forms: each project is a page you write in freely, with extra pages when you want to keep, say, research apart from tasks. Type # for a heading, - [ ] for a task, / for the command menu. Drag blocks to reorder, Cmd/Ctrl+Enter toggles the task under the cursor, Cmd/Ctrl+F finds in the page, Esc returns focus to VS Code.
  • Real markdown on disk: one .md file per project, in a folder every window shares (or inside a repository, if you prefer). Paste markdown and it renders; copy from the editor and you get markdown back.
  • Shared with Claude Code: a skill and an MCP server let Claude read your notes, add its findings to a page and keep your tasks. Hover any task and press ✦ to hand it to Claude Code.
  • Safe concurrent edits: if a file changes while you type (Claude, git, another window), both sets of edits are merged and your cursor stays where it was.
  • Looks native: colors, fonts and sizes come from your VS Code theme.
  • Private: files stay on your machine. No accounts, no network.

🎯 Getting started

  1. Open Blitzgedanke with the status bar item, Cmd/Ctrl+Alt+T or the notebook button in any editor title. It opens as an editor tab.
  2. Create a project with the New project button in the app's header. It opens as an empty page with the cursor ready.
  3. Write. Everything is saved to <project>.md in the projects folder as you go.

The header holds the project switcher, New project, Copy as Markdown and Settings (text size, storage folder and the app version). The status bar shows the current project.

📑 Pages

A project starts as one page. Click Add page under the header to give it another, for example Research next to your notes and tasks. The project's own page is called Main, and every page appears as a tab, with + to add more.

  • ⋯ on the active tab (or a double-click on it) renames or deletes the page.
  • Switching projects brings you back to the page you were on.
  • Blitzgedanke: New Page in Current Project does the same from the Command Palette.
  • On disk, pages sit in a folder named after the project: backend.md is the main page, backend/research.md a page called Research.

🗂️ Sidebar or editor tab

By default the app opens as an editor tab, named after the project, with the document centred at a comfortable line width. The Activity Bar icon opens the tab too and closes the side bar again.

  • Move to Sidebar (button in the tab title) moves the current project to the sidebar and closes the tab. Open in Editor Tab (button in the sidebar title) does the opposite.
  • Move to Sidebar keeps the app in the sidebar until you open the tab again.
  • Set blitzgedanke.openIn to sidebar to make the Activity Bar icon, the status bar item, Cmd/Ctrl+Alt+T and the editor title button use the sidebar.
  • Both can be open at once, each on its own project. If both show the same project, what you type in one appears in the other.
  • The tab is restored when VS Code reloads.

📂 Where projects live

By default every VS Code window shows the same projects, kept in one folder in the extension's storage. Settings (gear icon) shows the path, and Blitzgedanke: Reveal Projects Folder opens it. To change it, set blitzgedanke.storageFolder:

  • An absolute path (~ allowed), for example a synced folder. Every window uses it.
  • .blitzgedanke in a workspace's settings. That workspace keeps its own projects inside the repository, separate from your shared ones, and you can share them with your team through git.

For workspace projects in a git repository, Blitzgedanke asks the first time whether to commit them (your team shares the lists and the MCP server) or keep them local (it adds .blitzgedanke/ and the skill to .gitignore and registers the MCP server only for you). Change it later with Blitzgedanke: Choose Whether Projects Are Committed to Git.

🤖 Working with Claude Code

Run Blitzgedanke: Set Up Claude Code Integration (Command Palette, or the … menu of the view). It installs:

  • a skill named blitzgedanke that tells Claude where your projects and pages are and how they are written; it loads when you talk about your notes, research or tasks;
  • an MCP server (.mcp/server.cjs in the projects folder, plain Node, no dependencies) registered as blitzgedanke, with the tools list_projects, read_project, append_markdown, create_page, list_tasks, add_task, set_task_status, update_project, create_project and archive_project. Each one takes an optional page.

With shared projects both are installed for all your repositories: the skill in ~/.claude/skills/blitzgedanke/ and the server in Claude Code's user scope. For workspace projects they apply to that workspace only. If the claude CLI is not on your PATH, the registration command is copied to your clipboard.

Start a new Claude Code session and approve the blitzgedanke server when asked. Then just ask:

  • "Research card game timers and write what you find on Sidequest's Research page"
  • "Add a task to the Backend project to rotate the API keys"
  • "What's still open in Release 2.1?"
  • "Mark the deploy task as done"

To send one task to Claude, hover it and click ✦. With the Claude Code extension installed the prompt opens there, ready to send; otherwise it runs the claude CLI in a terminal, or copies the prompt to your clipboard.

Embedded images are shown to Claude as short embedded-image:N tokens instead of base64, and restored when Claude writes the project back.

📁 File format

---
title: Backend
created: 2026-01-31T10:00:00.000Z
---

## This week

- [ ] Open task
- [x] Finished task
  - [ ] Nested sub-task

Extra pages use the same format, in a folder named after the project (backend/research.md). Archived projects move to archive/ in the projects folder, pages included. Deleting a project or a page moves it to the OS trash.

📋 Requirements

  • VS Code 1.82 or newer. The extension is disabled in Restricted Mode (untrusted folders).
  • For the Claude Code integration: Claude Code and node on your PATH (the MCP server is a plain Node script).

🔒 Privacy

Everything stays on your machine: project files in a local folder, UI settings in VS Code. The extension makes no network requests and sends no telemetry. Images you insert are embedded in the markdown file; images you link by URL are fetched by the webview when the document is shown.

⚠️ Known limitations

  • In editor-tab mode, clicking the Activity Bar icon briefly opens the side bar before the tab appears (VS Code offers no way to attach a command to the icon).
  • Inserted images are stored as base64 inside the markdown file, which makes large files and noisy diffs. A separate assets folder is planned.
  • Edits from other tools are merged line by line; when both sides change the same line, both versions are kept and you are notified.

⌨️ Commands

Command Default shortcut
Blitzgedanke: Open Blitzgedanke Cmd/Ctrl+Alt+T
Blitzgedanke: Open in Editor Tab
Blitzgedanke: Move to Sidebar
Blitzgedanke: Switch Project Cmd/Ctrl+Alt+P
Blitzgedanke: New Project
Blitzgedanke: New Page in Current Project
Blitzgedanke: Export Project
Blitzgedanke: Reveal Projects Folder
Blitzgedanke: Set Up Claude Code Integration
Blitzgedanke: Choose Whether Projects Are Committed to Git
Blitzgedanke: Move This Folder's Projects to the Shared Folder

⚙️ Settings

Setting Default Description
blitzgedanke.storageFolder (empty) Empty: one folder every window shows. Absolute path: that folder. .blitzgedanke: inside the workspace.
blitzgedanke.openIn editor Where Open Blitzgedanke shows the app: editor tab or sidebar.

Text size can be adjusted from the gear icon inside the view.

🔄 Upgrading

From 0.4.x. Lists and cards from earlier versions (stored in the browser database) are imported automatically the first time the new version opens: every list becomes a project file with one task per card. The old data is left in place.

From 0.5.0. 0.5.0 kept projects in .blitzgedanke/ inside each workspace. When a workspace still has some, Blitzgedanke offers to move them into the shared folder or to keep using that workspace's folder. If you had set up Claude Code there, moving also moves the integration to your user scope.

Development

pnpm install                                        # extension host
cd original-nextjs-todo-app/app && pnpm install     # webview
  • F5 → "Run Extension" builds the host, the MCP server and the webview, keeps them rebuilding on save, and opens test-fixtures/playground in a temporary, empty profile: no other extensions (an installed Blitzgedanke cannot interfere), no restored views, default settings. Reload the development window (Cmd/Ctrl+R) to see webview changes.
  • "Run Extension (my profile)" uses your own settings and extensions, for example to try "send to Claude" with the Claude Code extension.
  • "Run Extension (webview hot reload)" serves the webview from Vite instead.
  • npm test runs lint, the host tests (store, merge, MCP server, git choice) and the editor round-trip tests.
  • npm run test:vscode runs the integration tests inside a real VS Code (the first run downloads it). CI runs both on every push.
  • npm run build:patch|minor|major packages a .vsix.

Found an issue or have a suggestion? Open an issue on GitHub.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft