
Recipes that live in your vault.
Structured recipes inside plain markdown notes. Inline preview. Form editor. Step-by-step Cook Mode. Works on desktop and mobile.
Install · File format · Kaper web app · Issues · Changelog

Kaper is a local-first recipe manager: plain markdown files, no cloud, no account. This plugin brings it into Obsidian. A note with a ```kaper block becomes a real recipe, rendered right where the block sits, with the rest of your note around it.
kaper: true in its frontmatter and a ```kaper YAML block in the body. Everything outside the block is normal markdown. For example, a story about where the recipe came from, links to related notes, or photos.Kaper works on desktop and mobile. On mobile, recipes are a read-only preview and Cook Mode. Creating, converting, and form editing are desktop-only for now.

If you use the Kaper web or desktop app too, set Settings → Kaper → Kaper vault root folder to the folder you open there. Kaper stores step images under _assets/ in that folder, so both sides need to agree on where it is. Leave it empty to use the vault root. That's the only setting.
| Command | What it does |
|---|---|
| Kaper: Create recipe | Creates a new recipe note with a starter block. Desktop only. |
| Kaper: Convert current note to recipe | Adds the frontmatter and a starter block to the open note. Desktop only. |
A recipe needs two markers: kaper: true in the frontmatter, and a fenced ```kaper YAML block. The required keys are title, servings, ingredients, and steps. Everything else is optional.
---
kaper: true
---
A true Roman classic. No cream, no shortcuts.
```kaper
title: Classic Pasta Carbonara
servings: 2
difficulty: medium
time:
cook: 20m
tags: [italian, pasta, weeknight]
ingredients:
pasta:
- amount: 200
unit: g
name: spaghetti
sauce:
- amount: 100
unit: g
name: guanciale
note: diced
sub: pancetta
steps:
- title: Bring a large pot of salted water to a boil.
note: The water should taste like the sea.
- title: Cook guanciale in a cold skillet until crispy.
duration: 8m
version: 1
```
Tips and notes go here as regular markdown.
Recipes created by the plugin get a stable id (kaper: r_<id>), so a file keeps its identity when you rename or move it. Older kaper: true files keep working and get an id the first time you open them. See the format reference for every key.
The same .md file opens in this plugin, in the Kaper web app at kaper.me, and in the Kaper desktop app (in development). There's no sync layer to set up. Your files move through whatever you already use: iCloud, Dropbox, Syncthing, git, or a USB stick.
Prefer the browser? View on Kaper on any recipe opens the full web app.
Kaper runs entirely inside Obsidian. There is no Kaper server and no account, so we can't read your files.
kaper.me?from=obsidian in your browser. The only thing it sends is that from parameter. Your recipe is not uploaded.coverImage or step image at an http(s) URL, Obsidian loads it from that host when the recipe renders. That request goes to a server we have no connection to. To keep everything local, use vault paths or the form's image upload.Every change runs through TypeScript, ESLint with the official Obsidian ESLint plugin, Prettier, Vitest, and a production build in CI.
Recipes render as CodeMirror 6 block widgets inside Obsidian's own editor, the same pipeline that draws headings and embeds. There's no second UI layered over the editor. YAML goes through Obsidian's built-in parseYaml / stringifyYaml, and ingredient drag-and-drop uses dnd-kit, which supports keyboard, touch, and mouse.
main.js, manifest.json, and styles.css from the latest release..obsidian/plugins/kaper/ folder.Bug fixes and pre-discussed features are welcome. Kaper is a one-person, spare-time project, so a few rules keep it stable:
npm run format, npm run lint, npm run build, and npm test before you push.To work on the plugin locally:
git clone https://github.com/nikoneex/obsidian-kaper.git
cd obsidian-kaper
npm install
npm run dev
Then symlink the repo into a test vault's .obsidian/plugins/kaper folder.
Want the full Kaper experience? Open any folder of recipes at kaper.me. No install. No signup.