mcpField
O
obsidian-templater

obsidian-templater

github.com/nweiiProductivity1091 installsUpdated 1w ago
Repository

About obsidian-templater

obsidian-templater is a skill for Obsidian users working with dynamic note templates. It covers Templater syntax, JavaScript execution blocks, built-in APIs, and date handling.

Key features

  1. 01Dynamic expressions and code blocks
  2. 02Control whitespace in templates
  3. 03Use built-in tp.* functions
  4. 04Format dates with Moment.js
  5. 05Examples for note templates

Use cases

  1. 01Generate notes with dynamic content
  2. 02Add folder-based template conditionals
  3. 03Handle dates in templates
  4. 04Look up or debug tp.* APIs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nweii/agent-stuff --skill obsidian-templater

After installing, type/obsidian-templaterin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
examples.md
modules.md
momentjs.md

Details

From the project README

Templater template generation

Templater is an Obsidian plugin for dynamic note templates. Commands embedded in a template file run when the template is applied to a note, outputting results inline.

Core template syntax

TagBehavior
<% expression %>Outputs the result of the expression
<%* code %>Executes JS code; no output by default
<%+ expression %>Re-evaluated in preview mode (deprecated, avoid)
<%- / -%>Trims one newline before/after the tag
<%_ / _%>Trims all whitespace before/after the tag

To output from a <%* %> execution block, append to the special tR string:

<%* tR += "some output" %>

To discard everything generated up to a point (e.g., strip template-only frontmatter):

<%* tR = "" -%>

All tp.* functions are available in both tag types.


Built-in modules

Read references/modules.md when selecting or debugging a tp.* API. It preserves exact sync behavior, property/function distinctions, async requirements, run modes, hooks, and user-function limits.

Whitespace control in templates

Control flow tags (<%* if (...) { %>, <%* } %>) leave blank lines by default. Use -%> to trim the newline that follows a tag:

<%* if (tp.file.folder() === "Work") { -%>
**Project:** <% tp.frontmatter.project %>
<%* } else { -%>
General note
<%* } -%>

Implementation examples

Read references/examples.md when a complete pattern is useful for daily notes, prompted metadata and rename, template-only frontmatter removal, folder conditionals, or note inclusion.

Date formatting with Moment.js

See momentjs.md for a comprehensive formatting cheatsheet and JS manipulation reference. Use this when defining format strings for tp.date.now() or when manipulating dates inside <%* %> blocks using the moment global.


Optional vault integration via obsidian-clis

If the obsidian-clis skill is available and Obsidian is running, vault context can improve output:

obsidian properties counts          # what frontmatter properties exist across the vault
obsidian tags counts sort=count     # most-used tags
obsidian read file="Daily Note"     # read an existing template for style reference

Run relevant read-only CLI checks within the user's request, following the vault's instructions. A request to create or update a template authorizes those scoped writes; ask only for unresolved choices, destructive changes, or a user-requested review checkpoint. Follow the environment's execution permissions.


Official documentation links

Rendered docs (human-readable): https://silentvoid13.github.io/Templater/

LLM-safe Templater summary: For a preprocessed, audit-friendly summary of the official Templater documentation, see https://context7.com/silentvoid13/templater/llms.txt.

Comments

Markdown supported