taylorsdugger184 downloadsRecipe Vault is a full recipe management system for Obsidian. Import recipes from web pages, browse them in a gallery, and build shopping lists automatically.
Your recipes, in plain markdown, right inside Obsidian.
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.
📦 Available in the Obsidian Community Plugins directory →
main.js, manifest.json, and styles.css from the latest release..obsidian/plugins/recipe-vault/.To browse your recipes, click the utensils icon in the ribbon to open the Recipe Gallery.
| Command | What it does |
|---|---|
| Import recipe | Opens a URL prompt and imports a recipe into a new note |
| Open recipe gallery | Opens the visual gallery of your recipe notes |
| Mark recipe as made | Increments times_made and sets last_made to today on the active note |
| Add checked ingredients to shopping list | Sends checked ingredients from the active recipe to your shopping list file |
| Clear checked items from shopping list | Removes completed items from your shopping list |
| Add recipe (manual) | Creates a new recipe note from a title prompt |
| Batch import recipes from URL list | Imports multiple recipes from a list of URLs (one per line) in the active note |
| Rebuild ingredient search index | Rebuilds the in-memory index that powers ingredient search in the gallery |
| Setting | Description |
|---|---|
| Recipe save folder | Where new recipe notes are created |
| Save in currently opened file | Import into the active note instead of creating a new one |
| Save images | Download recipe images into your vault |
| Save images in subdirectories | Create a per-recipe subfolder under the image folder |
| Recipe template | Handlebars template used when creating recipe notes |
| Decode entities | Decodes HTML entities in imported data |
| Proxy fallback for blocked imports | If 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 file | Path to your shopping list note (created automatically if missing) |
| Recipe gallery folder | The folder the Recipe Gallery browses |
| OpenRouter API key | Required for Ask AI features |
| AI model ID | Which model to use for Ask AI (default: google/gemini-2.5-flash-lite) |
| AI request timeout (ms) | Timeout for AI requests (minimum 5000 ms) |
| Custom AI system prompt | Optional override for the built-in Ask AI instructions |
| Recipe title filler words | Controls how imported titles are cleaned up |
| Filter vegan words / gluten-free words | Optionally strips dietary labels from imported recipe titles |
| Debug mode | Enables extra developer logging |
Recipe Vault uses Handlebars for note templates. The plugin assumes the recipe page includes JSON-LD structured data.
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
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.
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.
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.
Recipe Vault is primarily local, but it can make network requests for the following features:
No ads are shown, and no telemetry is collected by Recipe Vault itself.
Releases are automated via GitHub Actions.
patch, minor, or majorRecipe 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.