Structured data input for Obsidian – forms that create notes or update frontmatter
Find a file
tolvitty fbc2ada08b fix: address code review issues in conditional logic
- Add explicit boolean handling for toggle equals/not_equals
- Fix toNum to return NaN instead of 0 for empty values
- Use NaN guards in greater_than/less_than comparisons
- Add cleanupStaleConditions after field reorder/delete
- Clean up empty conditions objects before save

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 20:46:56 +01:00
docs/plans docs: add conditional logic implementation plan 2026-02-13 20:18:48 +01:00
src fix: address code review issues in conditional logic 2026-02-13 20:46:56 +01:00
.gitignore feat: scaffold Formfire plugin project 2026-02-13 13:10:42 +01:00
esbuild.config.mjs feat: scaffold Formfire plugin project 2026-02-13 13:10:42 +01:00
LICENSE docs: add README with badges and MIT license 2026-02-13 19:54:30 +01:00
manifest.json chore: bump version to 1.0.0 for release 2026-02-13 20:13:52 +01:00
package-lock.json fix: bump esbuild to ^0.25.0 to resolve CVE (dev server request leak) 2026-02-13 19:59:24 +01:00
package.json chore: bump version to 1.0.0 for release 2026-02-13 20:13:52 +01:00
README.md chore: bump version to 1.0.0 for release 2026-02-13 20:13:52 +01:00
styles.css feat: add styles for conditional logic editor and preview badges 2026-02-13 20:42:48 +01:00
tsconfig.json feat: scaffold Formfire plugin project 2026-02-13 13:10:42 +01:00

Formfire

Structured data input for Obsidian — forms that create notes or update frontmatter.

GitHub License Obsidian Version TypeScript


Overview

Formfire brings structured data input to Obsidian. Define custom forms with a visual builder, then use them to create new notes or update existing frontmatter — no manual YAML editing required.

Part of the Fire-Suite concept: closing the Input gap in the Input → Observe → Output workflow.

Features

13 Field Types

Field Description
Text Single-line text input
Textarea Multi-line text with resizable area
Number Numeric input with validation
Toggle Boolean on/off switch
Date Date picker with today as default
Time Time picker (HH:MM)
Dropdown Single-select from predefined options
Tags Multi-select with chip UI
Note Link Autocomplete from vault files
Folder Picker Autocomplete from vault folders
Rating 15 star rating
Slider Range input with configurable min/max/step
Color Color picker

Two Output Modes

  • Create — Generate a new note with frontmatter and a body template
  • Update — Modify frontmatter of an existing note (active file or prompt)

Visual Form Builder

  • Drag & drop field reordering
  • Side-by-side live preview
  • Undo / Redo with keyboard shortcuts (Ctrl+Z, Ctrl+Shift+Z)
  • Per-field type configuration (options, min/max/step, folder restrictions)

Template Engine

Use {{fieldId}} variables in file names and body templates, plus built-in variables:

  • {{date}} — current date (YYYY-MM-DD)
  • {{time}} — current time (HH:MM)
  • {{datetime}} — current date and time

Import & Export

Share forms as JSON files — individually or all at once. Imported forms receive fresh UUIDs to prevent collisions.

Installation

Manual

  1. Download the latest release (main.js, manifest.json, styles.css)
  2. Create a folder <vault>/.obsidian/plugins/formfire/
  3. Place the files in that folder
  4. Enable the plugin in Settings → Community Plugins

Build from Source

git clone https://github.com/tolvitty/obsidian-formfire.git
cd obsidian-formfire
npm install
npm run build

Copy main.js, manifest.json, and styles.css into your vault's plugin folder.

Usage

  1. Open Settings → Formfire to create your first form
  2. Use the Command Palette (Ctrl+P) → Formfire: Open Form to fill it out
  3. Alternatively, click the ribbon icon or use the sidebar view

Each form gets its own direct-access command for quick launching.

Access Points

Method Description
Command Palette Formfire: Open Form or per-form commands
Ribbon Icon Quick access from the left sidebar
Sidebar View Persistent form list panel
Settings Tab Full form management with builder

Development

npm run dev    # Watch mode with hot reload
npm run build  # Production build

License

MIT © tolvitty