Yank Note (purocean/yn): a Markdown editor that runs your code and your AI Copilot
A highly extensible Markdown editor. Version control, AI Copilot, mind map, documents encryption, code snippet running, integrated terminal, chart embedding, HTML applets, Reveal.js, plug-in, and macro replacement.
At a glance
- What is it?
- Yank Note is an AGPL-3.0 Electron Markdown editor that keeps your notes as plain files on disk while adding runnable code blocks, embedded diagrams, per-file encryption and an AI Copilot. It trades security for extensibility, and that trade is the whole story.
- Who is it for?
- Adopt Yank Note if you keep Markdown as the source of truth and want code execution, diagrams and an AI Copilot inside the same window, and you accept that opening a stranger's .md file can run commands. Do not adopt it as a sandbox for untrusted documents, and do not expect encrypted .c.md files to auto-save or to be recoverable without the password.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 10 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Yank Note solves, and who ends up using it
Most Markdown editors stop at text. Yank Note starts there and adds the things a developer normally leaves the editor to do: run a snippet, render a diagram, query an AI model, open a terminal. The README describes it as "a highly extensible Markdown editor, designed for productivity", and the feature list backs that up: version control, an AI Copilot compatible with OpenAI, Ollama, Gemini, Kimi and Tongyi Qianwen, an OpenCode AI Agent, mind maps, document encryption, code snippet running, an integrated terminal, chart embedding, HTML applets, Reveal.js and macro replacement.
The intended user is someone who already writes in Markdown and wants the file to stay a file. Data is saved as local Markdown files, and the README states that extension features are implemented in Markdown's original syntax as far as possible. That matters if you have years of notes in a folder and no interest in a proprietary database. The editor is built on the Monaco kernel, the same editor component behind VS Code, so the editing experience is deliberately familiar.
It is not aimed at people who want a frictionless note app. The README opens its Attention section by saying that for more extendability, Yank Note sacrifices security protection, including command execution and arbitrary file reading and writing. That sentence should decide whether you keep reading.
How the pieces fit: Monaco, local files, plugins and a Koa backend
The repository layout tells you the shape of the application. It is an Electron app: package.json points main at dist/main/app.js, the build runs tsc over src/main/app.ts, and the renderer is a Vite build of a Vue and TypeScript front end. Koa appears in the dependency list, which matches the README's mention of a backend that uses pandoc for multi-format export.
The data model is the part worth understanding before you install anything. A repository, in Yank Note's vocabulary, is a data location, and the README says multiple data locations can be defined for document classification. Your notes are ordinary files inside those locations. Version control and the history panel operate on those files rather than on a hidden store, which is why the README can promise backtracking of document history versions without describing a sync service.
Extension points are file-based. Plugins are JavaScript placed in the home directory's plugins folder, and the README points to a separate plugin development guide. Documents themselves are extension points: fenced code blocks can be executed for JavaScript, PHP, nodejs, Python and bash, and the document can embed HTML applets, PlantUML, drawio, ECharts, Mermaid and Luckysheet content. Macro replacement goes further and lets embedded JavaScript expressions rewrite document content dynamically. Each of those is a place where the editor stops being a viewer and starts being a runtime.
Installing Yank Note and opening a first real note
The README points at the GitHub releases page for downloads, and the v3.92.1 changelog lists direct artifacts: a Windows x64 .exe, macOS arm64 and x64 .dmg files, a Linux AppImage and a Linux .deb. There is also a hosted demo at demo.yank-note.com if you want to look before installing. The App Store build is linked from the README with the note "Not recommended", which links to a GitHub issue explaining why; read that issue before paying for the store version.
If you would rather build from source, the repository is a Yarn project. The dev script starts Vite:
yarn install
yarn devThe start script compiles the Electron main process first and then launches the packaged entry point:
yarn startFor a full production build, the build script runs the front-end build and then the main-process build:
yarn buildOne native dependency needs attention. The scripts include rebuild-pty, which runs electron-rebuild for node-pty, the package behind the integrated terminal. If the terminal misbehaves after an Electron upgrade, that script is the documented remedy:
yarn rebuild-ptyAfter launch, create a repository pointing at a folder of existing Markdown and open a file. The README notes that files ending in .c.md are treated as encrypted files, so keep that suffix in mind when you browse a folder: opening one prompts for a password rather than showing text. Auto-save is on by default, with an orange title bar marking unsaved files, and the README states that encrypted documents are not automatically saved.
The security trade-off is documented, not hidden
The README's Attention section is unusually direct. Because the editor supports command execution and arbitrary file reading and writing, it warns that if you open a foreign Markdown file you must carefully identify whether the content is trustworthy. This is not a theoretical concern for a format that supports runnable code blocks, HTML applets and macro replacement. A .md file from a colleague, a download or a cloned repository is executable content in this editor.
The encryption design has a matching constraint. Encryption and decryption happen at the front end, and the README says plainly that if the password is lost it can only be cracked by brute force. There is no server-side recovery path because there is no server holding your key. Combined with the rule that encrypted documents are not auto-saved, the practical workflow is: edit, then save deliberately, and keep the password somewhere other than the note itself.
The third limitation is environmental. This is an Electron desktop application with a terminal, a Koa backend and pandoc-based export. The README does not document a headless mode or a web deployment you can self-host for a team. If your requirement is a browser-based wiki with central access control, Yank Note is the wrong shape, and no amount of plugin writing changes that.
Where Yank Note sits against Zettlr, QOwnNotes and Preview Enhanced
The closest comparisons people search for are Zettlr, QOwnNotes and Shd101wyy's Markdown Preview Enhanced. The differences are architectural rather than cosmetic.
Zettlr is built around a citation and academic-writing workflow with a Zettelkasten-style identifier system. Yank Note has no citation manager in its feature list; it has a terminal, a plugin API and an AI Copilot. If your notes are literature references, Zettlr's model fits better. QOwnNotes pairs Markdown files with ownCloud or Nextcloud sync and a scripting layer, so its centre of gravity is file sync across devices. Yank Note's centre of gravity is what happens inside the document: runnable code, embedded diagrams, applets, macros.
Markdown Preview Enhanced is a VS Code and Atom extension, so it lives inside your existing editor rather than replacing it. Yank Note is a standalone Electron application with its own file browser, terminal and version control panel. Choosing between them is largely choosing whether you want your Markdown tooling inside VS Code or beside it. Yank Note also lists Reveal.js support, which overlaps with what people use Preview Enhanced for when building slide decks from Markdown.
Maintenance, releases and the AGPL-3.0 licence
The repository is not archived, and the last push was on 2026-09-09, which is recent. Releases are not on a fixed cadence: v3.92.1 landed on 2026-07-12, v3.90.0 on 2026-05-16 and v3.89.1 on 2026-05-06. The v3.92.1 changelog is a useful sample of what maintenance looks like in practice: a Markdown-it upgrade to 14.3.0 with CJK-friendly emphasis parsing, a raw HTML container, range-based text highlighting APIs for plugins, an Electron 41 upgrade, and fixes for double-escaped code fences, non-Markdown file restoration and IME layout offsets in the terminal. That mix of parser work, plugin API additions and Electron security updates is the upgrade cost you are signing up for.
Upgrading means tracking Electron versions, because the main process, the terminal's node-pty binding and the renderer all move together. The rebuild-pty script exists precisely because that binding needs rebuilding against Electron. Plugin authors carry a second cost: the v3.92.1 release added new highlighting APIs, and APIs added in one release can be the compatibility problem in the next.
The licence is AGPL-3.0, stated in both the LICENSE file and package.json. That is a strong copyleft licence with a network clause. If you fork Yank Note and offer a modified version to users over a network, the AGPL's source-availability terms are the question to bring to a lawyer, not to this article. Internal use of an unmodified build is a different situation from redistributing a modified one. The README does not discuss commercial licensing or an exception.
Editorial conclusion
Adopt Yank Note if you keep Markdown as the source of truth and want code execution, diagrams and an AI Copilot inside the same window, and you accept that opening a stranger's .md file can run commands. Do not adopt it as a sandbox for untrusted documents, and do not expect encrypted .c.md files to auto-save or to be recoverable without the password. Before committing, install v3.92.1, open a copy of a real note, check that the version control panel shows the history you expect, and confirm the plugin folder path on your platform.
Frequently asked questions
Is Yank Note free to use, and what licence does it ship under?
Yank Note is published under AGPL-3.0, as stated in the LICENSE file and in package.json. The README links to paid App Store distribution for the macOS build but marks it "Not recommended" with a link to a GitHub issue explaining the reasoning. The README does not describe a commercial licence or an exception to the AGPL.
Does Yank Note run code inside my Markdown files?
Yes. The README lists code running for JavaScript, PHP, nodejs, Python and bash, along with HTML applets and macro replacement that evaluates embedded JavaScript expressions. The same README warns that the editor sacrifices security protection, including command execution and arbitrary file reading and writing, and that you should carefully judge whether a foreign Markdown file is trustworthy before opening it.
What happens if I forget the password on an encrypted .c.md file in Yank Note?
The README states that encryption and decryption are both completed at the front end and that if the password is lost the file can only be cracked by brute force. It also notes that encrypted documents are not automatically saved, so saving is a manual step.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/purocean-yn)