Yank Note is an extensible Markdown editor available on all major desktop platforms. It can be run locally as a native application or accessed directly through a web browser. At its core is the Monaco editor—the same engine that powers VS Code—specifically optimized for the Markdown experience.
Key Features
Yank Note is far more than a basic notepad. It includes a suite of tools that bridge the gap between a standard text editor and a lightweight integrated development environment (IDE).
.c.md extension are automatically password-protected. Decryption is handled locally within the app or browser to ensure privacy.A Note on Security
Yank Note prioritizes functionality over sandbox restrictions. Because plugins and code blocks have the authority to read files and execute system commands, security is a shared responsibility. You should treat Markdown files from untrusted sources with the same level of caution as an executable .exe file.
Additionally, if you use the built-in encryption, ensure you do not lose your password. There are no recovery backdoors; if a password is forgotten, brute-forcing the file is the only way to regain access.
Plugins: Customizing Your Editor
The architecture of Yank Note is centered on a robust plugin system. In fact, most core features—such as the terminal, graph renderers, and AI integration—are implemented as plugins. This means the same API used by the developers is fully available to you for customization.
Step-by-Step: Creating Your First Plugin
plugins folder and create a new file named plugin-hello.js.window.registerPlugin({
name: 'plugin-hello',
register: ctx => {
ctx.statusBar.tapMenus(menus => {
menus['plugin-hello'] = {
id: 'plugin-hello',
position: 'left',
title: 'HELLO',
onClick: () => {
ctx.ui.useToast().show('info', 'HELLO WORLD!');
}
}
})
}
});
Core Concepts
The plugin system is driven by two primary mechanisms: Hooks and Actions.
ctx.registerHook and trigger them via ctx.triggerHook. Some internal hooks are "interruptible"—if a handler returns true, it stops subsequent handlers from executing. Common hooks include ACTION_BEFORE_RUN and VIEW_KEY_DOWN.ctx.action object manages named commands. You can find a full list of internal actions in the official API documentation.Interacting with the Plugin API
The ctx object serves as your primary entry point for customization. To explore the modules and functions available to you, run the following snippet directly inside an editor code block:
// --run-- --no-worker--
console.log(Object.keys(ctx).join('\n'))
For quick modifications, you don’t even need to build a formal plugin. The code runner exposes ctx globally, allowing for one-liners like this:
// --run-- --no-worker--
ctx.ui.useToast().show("info", "HELLO WORLD!")
If you want to add a small interactive element to a specific note, you can embed an applet using HTML:
<!-- --applet-- -->
<button onclick="ctx.ui.useToast().show(`info`, `HELLO WORLD!`)">HELLO</button>
Sharing Your Work
If you develop a theme or plugin that could benefit the community, you can find documentation on how to distribute your extensions at [github.com/purocean/yank-note-extension](github.com/purocean/yank-note-extension#readme).
Yank Note is designed for users who want total control over their writing environment. It doesn't impose a specific workflow; instead, it provides the engine and the tools for you to build your own.
CrewAI Stock Analysis: Multi-Agent Investment Tool with AkShare & GPT
Kode CLI: A Multi-Model AI Terminal Assistant for Smarter Development
Space Adventure Story Voice Mode: Build an AI-Powered Voice Game
Akaunting Review: Free Open-Source Accounting Software for Small Business
Any-LLM Review: A Unified Python Interface for Every AI Model
Perplexica: The Open-Source AI Search Engine Powered by Your Own LLMs
Cogency: Build AI Agents in Python with Transparent ReAct Loops
LetsMarkdown: Lightweight Collaborative Markdown Editor Powered by Rust
Larachat: Build a Real-Time AI Chat App with Laravel and React
LeRobot: Train Real-World Robots with Hugging Face's PyTorch Library
Paperless GPT: Smarter OCR and Auto-Tagging for Paperless-NGX
Build Web Apps Using Only SQL: A Guide to SQLPage