Anytype Markdown Editor
Your Anytype objects in the sidebar. Click one to open it as Markdown, edit it with everything
VS Code gives you, and press save — the object is updated in Anytype.
Features
- Objects in the sidebar. Spaces and their objects, optionally grouped by type.
- Edit as Markdown. An object opens as a regular
.md buffer: your keybindings, multi-cursor,
snippets and Markdown preview all work.
- Save writes back. Saving updates the object in Anytype. Formatting is preserved in both
directions — headings, lists, nested lists, checkboxes, quotes, code blocks, dividers, bold,
italic, strikethrough, inline code, links (including links on headings) and object mentions.
- The title is the first line. An object's name shows up as
# Title and renaming it there
renames the object.
- Search across object names and content.
- Create, rename, delete objects, copy an object's id, or jump to it in the Anytype app.
- Mount a space as a workspace folder to get Quick Open and file search over your objects.
- Coalesced saves. Writes are debounced, and saving an unchanged file sends nothing.
Requirements
The Anytype desktop app, running and unlocked. Everything stays on your machine — the extension
talks to the app's local API and never reaches the network.
Getting started
- Install the extension and open the Anytype icon in the activity bar.
- Run Anytype: Connect (or press the button in the sidebar).
- The desktop app shows a 4-digit code — type it into VS Code.
Pairing keys are kept in VS Code's SecretStorage, one per Anytype profile. Pair each profile
once: when you switch profiles in the desktop app, the extension tries the keys it holds and
carries on with the one that profile accepts, so there is no code to type again. Anytype:
Disconnect asks which profile to drop when more than one is paired.
If the app is not running when you connect, the extension offers to start it — in the background on
macOS, so it does not steal focus. Anytype serves its API only once the vault is unlocked, so
unlock it if the connection does not come up on its own.
Good to know
- Saving replaces the whole body of an object, so avoid editing the same object in VS Code and in
the desktop app at the same time — the last save wins.
- Sets and collections open read-only, as a list of links to the objects their views resolve to —
clicking one opens that object as its own file. Their body is a query, not text, so there is
nothing to write back.
- Changes made in the desktop app don't stream in. Use Anytype: Refresh for the sidebar, or
Anytype: Reload Object from Anytype for an open file.
- Text and background colors have no Markdown spelling and are dropped on save; the text itself is
kept. Callouts are read and written as quotes, and toggle blocks are written as
* item.
- Rename a file from the tree's Rename command — the file name in the editor is derived from
the object name and can't be edited directly.
- If the desktop app isn't reachable, objects won't open or save and the editor says so. That is
deliberate: the alternative path silently strips links out of headings.
Building from source
npm install
npm run build # bundles to dist/extension.js
Press F5 in VS Code to launch an Extension Development Host, or package a .vsix with
npx @vscode/vsce package --no-dependencies.
License
MIT
| |