Cache ALPHA

Note Types

Every note in your repository belongs to a note type. To define a note type, create a directory with a .config.md file inside it.

The .config.md file serves two purposes:

  1. Configuration (frontmatter) — Defines the note type, naming, and behavior
  2. Template (body) — The default content for new notes

When you create a new note in a directory, Cache reads its .config.md to determine how to name the file and what content to start with.


File Structure

A .config.md file has two parts:

+++
name = 'Journal'
type = 'daily'
filename = '${date.iso}'
+++                               <-- Configuration (frontmatter)

# ${date.day_name}, ${date.day} ${date.month_name}

- {{CURSOR}}
                                  <-- Template (body)

Configuration (Frontmatter)

The frontmatter defines how the directory behaves and how notes are created.

FieldRequiredDescriptionExample
nameYesDisplay name for the directory'Journal'
singularNoSingular form for "New X" dialogs'Journal Entry'
typeNo'daily' or 'reference' (default: 'reference')'daily'
filenameNoFilename pattern (supports variables)'${date.iso}'
dateNoDate field for timed notes'${date.iso}'
sortNoSort order for directory listings: 'modified', 'proximity', or 'filename''proximity'
directoriesNoHow subdirectories display: 'separate' (grouped at top) or 'mixed' (interleaved with notes). Default: 'separate''mixed'
iconNoIcon name from Carbon icons'calendar'

Note Types

  • daily — Calendar-based notes tied to specific dates (journals, daily logs)
  • reference — Standalone notes not tied to dates (pages, documents, meeting notes)

For backward compatibility, type = 'note' is treated as 'reference'.


Template (Body)

Everything after the frontmatter becomes the content of new notes. Templates support variables and cursor positioning.

Variable Syntax

Variables use ${namespace.variable} format and are replaced when the note is created:

# ${note.title}

Created: ${date.day_name}, ${date.month_name} ${date.day}

If a variable isn't recognized, it's left unchanged for debugging.

Cursor Positioning

Use {{CURSOR}} to set where the cursor appears when the note opens:

## Notes

- {{CURSOR}}

The marker is removed and the cursor positioned at that location.


Available Variables

Note Variables

VariableDescriptionExample
${note.title}Note titleMeeting Notes
${note.type}Type IDjournal

Date Variables

For daily notes, these use the note's date. For reference notes, they use the creation date.

VariableDescriptionExample
${date.iso}ISO format2026-02-05
${date.day}Day of month5
${date.month}Month (zero-padded)02
${date.year}Four-digit year2026
${date.day_name}Day of weekThursday
${date.month_name}Month nameFebruary
${date.week_number}Week of year (1-53)6

Calculated Dates

Reference other dates relative to the note's date:

VariableDescriptionExample
${date.today}The note's date2026-02-05
${date.week_start}Monday of that week2026-02-02
${date.week_end}Sunday of that week2026-02-08
${date.month_start}First of the month2026-02-01
${date.month_end}Last of the month2026-02-28
${date.year_start}January 1st2026-01-01
${date.year_end}December 31st2026-12-31
${date.last_friday}Most recent Friday2026-01-31
${date.next_monday}Coming Monday2026-02-09

Date Arithmetic

Add or subtract time using + or - with a number and unit (d days, w weeks, m months, y years):

VariableDescriptionExample
${date.today+1d}Tomorrow2026-02-06
${date.today-1w}One week ago2026-01-29
${date.month_end+1d}First of next month2026-03-01
${date.week_start+2w}Monday in 2 weeks2026-02-16

Examples

Daily Journal

A calendar-based journal with daily entries:

+++
name = 'Journal'
type = 'daily'
date = '${date.iso}'
filename = '${date.iso}'
icon = 'calendar'
+++

# ${date.day_name}, ${date.day} ${date.month_name} ${date.year}

## What happened today?

- {{CURSOR}}

## Thoughts & reflections

-

Creates: 2026-02-05.md with heading "Thursday, 5 February 2026"

Include the date field for daily notes — Cache uses it to associate the note with that date, and tasks inherit their due date from it.

Reference Pages

Simple standalone notes:

+++
name = 'Pages'
singular = 'Page'
type = 'reference'
filename = '${note.title}'
+++

# ${note.title}

{{CURSOR}}

Creates: meeting-notes.md (sanitized from title "Meeting Notes")

Weekly Reports

Reference notes can also use date variables (based on creation date):

+++
name = 'Reports'
singular = 'Weekly Report'
type = 'reference'
sort = 'proximity'
filename = '${date.year}-week-${date.week_number}'
+++

# Week ${date.week_number} Report

**Period:** ${date.week_start} to ${date.week_end}

## Summary

- {{CURSOR}}

Creates: 2026-week-6.md with the week's date range filled in