Structured data input for Obsidian – forms that create notes or update frontmatter
- 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> |
||
|---|---|---|
| docs/plans | ||
| src | ||
| .gitignore | ||
| esbuild.config.mjs | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
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 | 1–5 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
- Download the latest release (
main.js,manifest.json,styles.css) - Create a folder
<vault>/.obsidian/plugins/formfire/ - Place the files in that folder
- 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
- Open Settings → Formfire to create your first form
- Use the Command Palette (
Ctrl+P) → Formfire: Open Form to fill it out - 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