Cook History

Recipe Box can record every time you cook a recipe - with a date, optional notes, and an optional photo. That history is stored as structured frontmatter so it's fully queryable with Dataview or Obsidian Bases, and also used by the meal suggester to power its scoring rules.

Cook history is enabled by default. To disable it, turn off Track cook history under Settings → Recipe Box → Cooking & tracking.

Marking a Recipe as Cooked

Cook History.png
Click the Mark as cooked button in the recipe header (visible when Track cook history is enabled). This opens the mark-as-cooked dialog:

Click Mark as cooked to save. Recipe Box adds a new entry to the history and updates lastMade and cookedCount automatically.

Viewing Cook History

2-Cook History.png

Desktop

When Track cook history is enabled, a Cook history button appears in Recipe View. If the recipe has been cooked at least once, the button shows a count badge. Click it to open the Cook History modal - a scrollable list of every cook entry for that recipe, newest first.

The Cook History modal is also accessible from the recipe's three-dot context menu.

Mobile

On mobile, a Cook History tab appears in the recipe view tab bar (next to Ingredients, Steps, and Info). Swipe to it or tap its clock icon. The full history is shown inline - no modal required.

Cook History List

Each entry in the list (modal on desktop, tab on mobile) shows:

Each entry also has two action buttons:

Adding Entries Directly

You can add a cook history entry without using the Mark as cooked button. In the Cook History modal (desktop) or tab (mobile), click Add entry to open the same entry editor used for editing. Fill in the date, notes, and optional photo, then click Add entry to save.

This is useful for backfilling cooks you didn't record at the time.

How Cook History is Stored

Cook history uses a two-layer storage model designed so the data stays fully portable and queryable.

Frontmatter array (source of truth) - Every entry is stored as an object in a cookHistory frontmatter array (property name configurable). Each object has an id, date, and note. This is the canonical record - Dataview and Obsidian Bases can query it directly. Photos are intentionally excluded from frontmatter; see below.

Managed note body section - Recipe Box maintains a ## Cook History section at the bottom of the note (heading name configurable). This section is a rendered display of the frontmatter entries and is fully regenerated on every write. A comment at the top of the section warns that manual edits will be overwritten. Do not hand-edit this section.

Photos - Photos are stored as regular vault attachments and embedded as ![[filename]] links inside the managed note body section. They are not stored in frontmatter, because a plain string path in frontmatter would not be tracked by Obsidian's link engine - renaming the image file outside the plugin would silently break the reference. Storing photos as real wikilink embeds in the note body means Obsidian handles rename tracking automatically.

Derived fields - lastMade and cookedCount are written alongside the cookHistory array on every update and are always derived from it. lastMade is the most recent date across all entries; cookedCount is the total entry count. These fields are what the built-in suggester scoring rules act on.

An example of what a recipe's frontmatter looks like after a few cooks:

lastMade: "2026-07-08"
cookedCount: 3
cookHistory:
  - id: abc123
    date: "2026-07-08"
    note: "Added extra lemon, worked well"
  - id: def456
    date: "2026-06-22"
    note: ""
  - id: ghi789
    date: "2026-05-30"
    note: "Doubled the garlic"

Settings → Recipe Box → Cooking & tracking:

Setting Default What it does
Show mark as cooked button On Shows the Mark as cooked button in the recipe header.
Ask for date when marking cooked Off Prompts to confirm/change the date when marking cooked. When off, today's date is used with no extra step.
Track last made On Keeps lastMade in sync with the most recent cook history entry date.
Last made property lastMade Frontmatter property name for the last-made date.
Track cooked count On Keeps cookedCount in sync with the number of cook history entries.
Track cook history On Enables full cook history storage and the Cook History tab/modal.
Cook history heading Cook History Heading name for the managed note body section.
Cook history property cookHistory Frontmatter property name for the cook history array.
Prompt for notes when marking cooked On Shows the notes field in the mark-as-cooked dialog.
Track photos Off Shows the photo picker in the mark-as-cooked dialog.

See Settings Reference.