A local-first library of AI prompts for Obsidian. Each prompt is a plain Markdown note with YAML frontmatter, so the library stays readable, searchable, and portable even without the plugin. Nothing leaves the vault: no network calls, no accounts, no telemetry. Works on desktop and mobile.
- Full-tab library with fuzzy search: a subsequence matcher scores and ranks results by title, use case, and body, independent of word order, and highlights the matched characters in the title.
- Filters for type, category, tags, quality, visibility, and date, plus sorting by title, date, usage recency, relevance, or favorites-first.
- Each card carries icon-button actions (copy with variables, copy raw, edit metadata, open as note, delete, toggle favorite) and, as of v1.2.0, a right-click (long-press on mobile) context menu with the same actions as text labels, a second way to reach them without cluttering the card further.
- A lint badge appears on any card with a warning; click it to open the full findings for that prompt.
- Create and edit prompts from a modal. The frontmatter holds the metadata; the body lives in the note itself, so it opens in the normal Obsidian editor.
- Tag and category fields suggest values already used in the library, ranked by a local keyword-frequency scorer. The plugin never applies suggestions automatically, it only offers them as chips.
- The edit modal shows up to 5 related prompts, ranked by shared tags, category, and title or use-case tokens, so duplicate or near-duplicate prompts are easy to spot.
- Copy with variables: prompts can declare
{{name}}placeholders, filled through a form before copying. Placeholders support a default value ({{name|default}}), a hint ({{name|default|hint}}), and a choice dropdown ({{tone|formal,casual|hint}}). - Context variables resolve automatically at copy time:
{{@selection}}inserts the current editor selection,{{@title}}and{{@date}}pull from the active note, and{{@clipboard}}reads the system clipboard. - A placeholder insertion palette (the "Insert placeholder" command, inline
{{autocomplete while typing, and a button in the create/edit modal) lists context variables, names already used elsewhere in the library, and the raw syntax templates, so nothing needs to be memorized. - Vault transclusion: a
[[wikilink]]inside a prompt body resolves to the linked note's content at copy time, one level deep. The resolver leaves heading (#) and block (^) references unresolved by design. - Variable profiles: save a named set of placeholder values from the fill-in form and reapply it later from a dropdown, useful for prompts that are copied often with the same inputs.
- A quick picker (fuzzy suggest modal) for reuse without opening the full library tab. Hold Ctrl or Cmd while selecting to copy the raw body instead of resolving variables.
- An
obsidian://promptboxlauncher URI, callable from Raycast, Alfred, Shortcuts, or any other URI-aware tool. Passpathortitleto jump straight to a prompt,raw=trueto skip the variable form, or no parameters at all to open the picker.
- A linter flags common problems on demand: malformed or conflicting placeholder declarations, empty bodies, missing use case or category, near-duplicate titles, and notes that lost their type value after a type-key rename. It only reports, it never rewrites a note.
- JSON export and import, with a per-conflict diff preview (old value versus new, field by field) before anything gets overwritten.
- Curated packs bundle a set of prompts with pack-level metadata for sharing a themed collection as a single file; a plain export stays byte-identical for everyone else.
- A read-only statistics modal reports library size, tag and category distribution, and orphaned references, computed on demand.
- The plugin tracks usage locally (last-used date, copy count) to power the "recently used" sort. This lives in the plugin's local data, never in the notes themselves.
| Command | Does |
|---|---|
| Open library | Opens the library view |
| New prompt | Opens the create modal |
| Edit prompt metadata | Opens the edit modal for the active note, if it's a prompt |
| Insert placeholder | Opens the placeholder insertion palette at the cursor |
| Copy prompt | Copies the active note with variables resolved |
| Copy prompt (raw) | Copies the active note's body unresolved |
| Export prompts (JSON) | Exports the current filtered set |
| Import prompts (JSON) | Opens the import flow with diff preview |
| Lint library | Runs the linter over the whole library |
| Library statistics | Opens the statistics modal |
None ship with a default hotkey; assign them under Settings, Hotkeys.
- Prompts folder: the vault folder that holds prompt notes (subfolders included). Changing it re-indexes immediately.
- Default type for new prompts: preselected in the create modal.
- Type frontmatter key: the frontmatter key used for a prompt's type, default
type. Change it to avoid a clash with another taxonomy using the same key; existing notes keep their old key until edited. - Type and category values: add, rename, reorder, or remove; these feed the modal dropdowns and the library filters. Removing a value in use never touches existing notes, only the dropdown list.
- Variable profiles: rename or delete profiles saved from the copy-with-variables form.
- Open the library from the ribbon icon or the "Open library" command, and set the prompts folder in the plugin settings.
- Create a prompt with "New prompt". The frontmatter holds the metadata, the note body is the prompt text.
- Copy a prompt from a card action, the right-click menu, the quick picker, or the
obsidian://promptboxURI. A form opens for any placeholders; the result goes to the clipboard. - While writing a prompt body, run "Insert placeholder" or type
{{to insert a variable or a syntax template without memorizing the format.
Once the plugin is in the community list: Settings, Community plugins, Browse, search for "Promptbox".
Before then, install it with BRAT by adding the repository istefox/promptbox.
The full planning package (specification, ADRs, tiered plan) lives in docs/: MVP spec, community-library spec, implementation plan, Architecture Decision Records.