Recipe Vault

approved

by taylorsdugger

Recipe Vault is a full recipe management system for Obsidian. Import recipes from web pages, browse them in a gallery, and build shopping lists automatically. - This plugin has not been manually reviewed by Obsidian staff.

โ†“ 661 downloadsUpdated 27d agoMIT

๐Ÿฅ˜ Recipe Vault

Your recipes, in plain markdown, right inside Obsidian.

Website Release Downloads License


๐ŸŒ Visit the site ย ยทย  ๐Ÿ“ฆ Install from the community directory


Your whole cookbook, at a glance: every recipe becomes a visual card you can filter by tag and sort, on desktop and mobile

Import recipes from the web, browse them in a visual gallery, and build shopping lists automatically. Paste a URL, get a clean recipe note. No subscriptions, no accounts, no ads, just your recipes in your vault.

Screenshots and a walkthrough of every feature: recipes.taylordugger.com.


โœจ Features

  • ๐ŸŒ Import from any URL: fetches structured recipe data (JSON-LD) from a recipe page and creates a formatted note instantly.
  • ๐Ÿ“ธ Add recipe from photo: photograph a cookbook page or recipe card (or pick image files) and let AI vision transcribe it into a recipe note, with a verify/edit step before saving. Works on desktop and mobile.
  • โœ๏ธ Add recipes manually: create a recipe note from scratch using the same template.
  • ๐Ÿ–ผ๏ธ Recipe gallery: browse your whole collection visually in a dedicated gallery view.
  • ๐Ÿ” Search everything: filter as you type across titles, meal types, and ingredients, so you can find every recipe that uses what's already in the fridge.
  • โš–๏ธ Shopping list: check off ingredients in a note and send them to a single shopping list file, with automatic unit merging.
  • ๐Ÿ” Compare recipes: select multiple recipes and view them side by side, with shared and unique ingredients highlighted.
  • ๐Ÿ“… Mark as made: track when you last made a recipe and how many times.
  • ๐Ÿค– Ask AI for edits: request changes like "make this dairy-free" or "scale to 2 servings" via OpenRouter (API key required).
  • ๐ŸŽจ Customizable templates: full Handlebars support so your notes look exactly how you want.
A clean recipe, in plain markdown: each recipe is an ordinary note with a hero photo, ingredients, and one-tap actions
One tap to your shopping list: ingredients go to a running list that remembers which dish each item came from

๐Ÿ“ฅ Installation

From the Obsidian Community Plugins browser

  1. Open Obsidian โ†’ Settings โ†’ Community plugins
  2. Search for Recipe Vault
  3. Click Install, then Enable

Manual installation

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Copy them into your vault at .obsidian/plugins/recipe-vault/.
  3. Reload Obsidian and enable the plugin under Settings โ†’ Community plugins.

๐Ÿš€ Quick Start

  1. Click the chef hat icon in the ribbon (or run Import recipe from the command palette).
  2. Paste a recipe URL and press Enter.
  3. Your recipe note is created in the configured save folder.

To browse your recipes, click the utensils icon in the ribbon to open the Recipe Gallery.

Paste a link, get a recipe: drop in any recipe URL and Recipe Vault saves a clean, ad-free note to your vault

โŒจ๏ธ Commands

CommandWhat it does
Import recipeOpens a URL prompt and imports a recipe into a new note
Open recipe galleryOpens the visual gallery of your recipe notes
Mark recipe as madeIncrements times_made and sets last_made to today on the active note
Add checked ingredients to shopping listSends checked ingredients from the active recipe to your shopping list file
Clear checked items from shopping listRemoves completed items from your shopping list
Add recipe (manual)Creates a new recipe note from a title prompt
Add recipe from photoTranscribes a photographed cookbook page or recipe card into a new note (requires an OpenRouter API key)
Batch import recipes from URL listImports multiple recipes from a list of URLs (one per line) in the active note
Rebuild ingredient search indexRebuilds the in-memory index that powers ingredient search in the gallery

โš™๏ธ Settings

SettingDescription
Recipe save folderWhere new recipe notes are created. The gallery browses this folder by default, so imports show up automatically
Save in currently opened fileImport into the active note instead of creating a new one
Save imagesDownload recipe images into your vault
Save images in subdirectoriesCreate a per-recipe subfolder under the image folder
Recipe templateHandlebars template used when creating recipe notes
Decode entitiesDecodes HTML entities in imported data
Proxy fallback for blocked importsIf a page blocks the import (e.g. a 403 from bot protection), retry once through a public read proxy (allorigins.win). Sends the recipe URL to a third party. Off by default
Shopping list filePath to your shopping list note (created automatically if missing)
Recipe gallery folderThe folder the Recipe Gallery browses, including its subfolders. Leave blank to follow the Recipe save folder (recommended). Set it only to browse a different folder
OpenRouter API keyRequired for Ask AI and Add recipe from photo
AI model IDWhich model to use for Ask AI and Add recipe from photo (default: google/gemini-2.5-flash-lite)
AI request timeout (ms)Timeout for AI requests (minimum 5000 ms)
Custom AI system promptOptional override for the built-in Ask AI instructions
Recipe title filler wordsControls how imported titles are cleaned up
Filter vegan words / gluten-free wordsOptionally strips dietary labels from imported recipe titles
Debug modeEnables extra developer logging

Gallery is empty but you've imported recipes? By default the gallery follows your Recipe save folder, so this shouldn't happen. If it does, you've set an explicit Recipe gallery folder that points somewhere other than where recipes are saved. Either clear that setting (blank = follow the save folder) or point it at your save folder, and your recipes will show up.


๐Ÿ“ Custom Templates

Recipe Vault uses Handlebars for note templates. The plugin assumes the recipe page includes JSON-LD structured data.

Built-in helpers

splitTags converts comma-separated tags into a YAML list for Obsidian frontmatter:

tags:
{{splitTags keywords}}

photoFrontmatter formats image values correctly for frontmatter (wikilink for local files, URL for remote):

photo: "{{photoFrontmatter image}}"

magicTime formats ISO durations and timestamps into readable values:

DateSaved:
{{magicTime}}
CookTime:
{{magicTime cookTime}}
TotalTime:
{{magicTime totalTime}}
DatePublished:
{{magicTime datePublished "dd-mm-yyyy"}}

Example output:

DateSaved: 2024-04-13 20:10
CookTime: 15m
TotalTime: 1h 5m

Default frontmatter fields

cssclasses: recipe-note
tags:
date_added:
meal_type:
author:
cook_time:
url:
photo:
times_made:
last_made:

Tip: Keep frontmatter starting at line 1 of your template. Obsidian requires this to parse it correctly.


๐Ÿค– Ask AI

Recipe Vault can use an AI model to suggest edits to a recipe directly in the note preview (for example, "make this dairy-free" or "scale to 2 servings"). This requires an OpenRouter API key, which you can add in plugin settings.

Ask AI about any recipe: swap an ingredient, scale the batch, or simplify the prep, then apply the change to your note

No OpenRouter key yet? Sign up free at openrouter.ai, then grab a key from openrouter.ai/keys. It's pay-as-you-go (no subscription), and the default model costs well under a cent per request. Paste the key into Recipe Vault settings โ†’ OpenRouter API key.

The default model is google/gemini-2.5-flash-lite. Any OpenRouter-compatible model ID can be used, and you can optionally override the built-in system prompt in settings.


๐Ÿ“ธ Add Recipe from Photo

No cookbook page? No problem. Run Add recipe from photo from the command palette to turn a photographed cookbook page or recipe card into a note:

  1. Capture: take a photo (camera opens automatically on mobile) or choose existing image files. Multiple photos are treated as pages of a single recipe, so multi-page cookbook spreads work in one go.
  2. Verify: the vision model transcribes the name, ingredients, instructions, time, and yield; edit the result before saving to fix any misreads.
  3. Photo: the captured photo is attached to the note by default, or choose a different image or none.

This uses the same OpenRouter API key and model as Ask AI, so no separate setup is required. There's no bundled OCR engine; the vision model does the transcription, so it works on mobile too.

From my testing each recipe import from a cookbook costs under $0.001 on average (using Gemini 2.5 Flash Lite).


๐Ÿ”’ Network use and privacy

Recipe Vault is primarily local, but it can make network requests for the following features:

  • Recipe URL import: fetches the page you provide to read recipe JSON-LD data. The URL and page response are used only to create recipe notes in your vault.
  • Proxy fallback (optional, off by default): if an import is blocked and you enable this setting, the recipe URL is retried once through a public read proxy (allorigins.win), which sends that URL to a third-party service.
  • Recipe image download (optional): when enabled, recipe images referenced by imported recipes are downloaded into your vault.
  • Ask AI via OpenRouter (optional): sends your prompt plus recipe ingredients/instructions to OpenRouter to generate suggestions. Requests include your configured OpenRouter API key.
  • Add recipe from photo via OpenRouter (optional): sends your captured/chosen photo(s) to OpenRouter for transcription. Requests include your configured OpenRouter API key.

No ads are shown, and no telemetry is collected by Recipe Vault itself.


๐Ÿท๏ธ Releasing

Releases are automated via GitHub Actions.

  1. Go to Actions โ†’ Tag and Release
  2. Click Run workflow and choose patch, minor, or major
  3. Review the draft release and publish when ready

๐Ÿ™ Credits

Recipe Vault is based on obsidian-recipe-grabber by @seethroughdev, which provided the original URL import foundation. This project has since been substantially rewritten and extended with new features.


๐Ÿ“„ License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.