Skip to content

2.32.0

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Oct 00:35
5a01663

QuickAdd 2.32.0

Note pickers now show your notes' file names, so notes that share a heading like "Background" no longer look alike. Tokens with options, such as {{FILE:Clients|label:Client}}, work inside a table, and the one-page form titles a list of options by its options. QuickAdd also no longer holds up Obsidian every time you close a window. And apps like Raycast can tell QuickAdd which note a choice should use.

To update, open Settings → Community plugins, click Check for updates, and then Update next to QuickAdd. The examples below come from the vault of a small pottery studio. Swap in your own notes and names as you go.

Note pickers show file names

When QuickAdd asks you to pick a note, such as for a Capture whose Capture to is a folder or for a {{FILE:...}} token, it showed each note's first top-level heading (a # Heading line) instead of its name. That helps if you name notes with IDs like 202610061432. But if your file names are the titles and your headings are sections, every note showed up as its first section:

Before The picker lists four project notes, each titled Background, with only the path beneath telling them apart
After The same picker lists Winter show, Kiln upgrade, Teaching a wheel class, Glaze line refresh, and Shop photos

Now the picker shows the file name. A note named with an ID still shows its first heading, like Teaching a wheel class above, and a frontmatter title still wins for any note. There's nothing to set up.

Here's a Capture that adds a dated line to a project's log from anywhere in your vault:

Running Log to project from the command palette while Winter show is open: the picker lists the projects by name, typing kiln leaves Kiln upgrade, an entry is typed, and Kiln upgrade opens with the new dated line at the end of its Log section

To build it:

  1. Keep your projects in a Projects folder, each with a # Log heading. For example, Projects/Kiln upgrade.md:

    # Background
    The old kiln can't hold cone 6 evenly. Quote for a new controller and elements.
    
    # Log
    - 2026-09-30 Kiln Parts Direct sent a quote.
    
    # Open questions
    - Do the shelves need replacing too?

    The Teaching a wheel class row in the pictures is Projects/202610061432.md, a note named with an ID whose first line is # Teaching a wheel class.

  2. Open Settings → QuickAdd, click New choice, and choose Capture. The choice's settings open.

  3. In Name, enter Log to project.

  4. In Capture to, enter Projects/. The / at the end makes QuickAdd ask which note in that folder to use each time.

  5. Set Write position to After line… and enter # Log in Insert after. Insert at end of section is already on.

  6. In Capture format, enter:

    - {{DATE:YYYY-MM-DD}} {{VALUE}}
    
  7. Turn on Open if you want to see the note after the capture.

  8. Turn on Add to command palette and click the back arrow at the top.

Run QuickAdd: Log to project, type kiln, and press Enter to pick Kiln upgrade. Type the entry and press Enter. On October 7, 2026, the note's log reads:

# Log
- 2026-09-30 Kiln Parts Direct sent a quote.
- 2026-10-07 Ordered the new controller. It ships Friday.

A few things to know:

  • An ID is a name that is only a timestamp of 12 or more digits, such as 202610061432, a UUID, or a ULID. A daily note such as 2026-10-07 isn't an ID, so it shows its name.
  • Typing searches the file name and the folder, so typing a note's name finds it either way.
  • The list starts with the notes you opened recently, then the rest by file name.

Docs: Friendlier names in the picker. Thanks to @zambonic for discussion #1885 (#2193).

Use tokens with options inside a table

Markdown starts a new table cell at every |, so inside a table, the | between a token's options has to be written as \|: {{FILE:Clients\|label:Client}}. QuickAdd didn't know about that \|. It looked for notes in a folder called Clients\, found none, and the picker came up empty. Now QuickAdd reads \| inside a token as |, and the table stays a table:

Before After
Typing co in the Client field offers a single row, Use "co" (a custom value), and the glaze field below is titled Sage,Celadon,Satin white Typing co in the Client field lists Cobalt Kitchen, Copper Pot Café, Ember & Co, and Blue Harbor Coffee, and the glaze field is titled Sage / Celadon / Satin white

Here's a template that keeps each order's details in a table:

Running New order from the command palette while Copper Pot Café is open: the one-page form asks what we're making, Client and Contact find Copper Pot Café and Jonas Berg, Celadon is picked, friday becomes the due date, and the new order note opens with a table that links to the client and the contact

To build it:

  1. Keep a note for each client in a Clients folder, and one for each person you work with in a People folder.

  2. Create a note called Templates/Order.md:

    ## Order
    | Field | Value |
    | --- | --- |
    | Client | {{FILE:Clients\|link\|label:Client}} |
    | Contact | {{FILE:People\|link\|label:Contact}} |
    | Glaze | {{VALUE:Sage,Celadon,Satin white}} |
    | Due | {{VDATE:due,YYYY-MM-DD\|label:Due date}} |
    
    ## Pieces
    - {{VALUE:pieces|label:What are we making?}}

    |link inserts a link to the note you pick. The last line isn't in the table, so its | stays as it is.

  3. Open Settings → QuickAdd, click New choice, and choose Template. In Name, enter New order.

  4. In Template path, enter Templates/Order.md.

  5. In File name, enter:

    {{DATE:YYYY-MM-DD}} {{VALUE:pieces|label:What are we making?}}
    
  6. Set New note location to In a specific folder, type Orders in the folder box below it, and click Add.

  7. Turn on Open.

  8. Set One-page input override to Always, so all the questions come in one form.

  9. Turn on Add to command palette and click the back arrow at the top.

Run QuickAdd: New order. Type 48 mugs with saucers, pick Copper Pot Café under Client and Jonas Berg under Contact, choose Celadon, type friday under Due date, and click Submit. (The pictures have the date calendar hidden. The calendar button at the right of Due date hides and shows it.) On Wednesday, October 7, 2026, QuickAdd creates Orders/2026-10-07 48 mugs with saucers.md:

## Order
| Field | Value |
| --- | --- |
| Client | [[Copper Pot Café]] |
| Contact | [[Jonas Berg]] |
| Glaze | Celadon |
| Due | 2026-10-09 |

## Pieces
- 48 mugs with saucers

Look at the glaze field in the form, too. A list of options without a |label: used to be titled with its raw text, Sage,Celadon,Satin white. Now it's titled Sage / Celadon / Satin white. A list with a |name: is titled by its name, and a title longer than 30 characters stops after a whole option and ends with "…". The Raycast extension's form shows the same titles (#2189).

A few things to know:

  • \| works in every token with options, such as {{VALUE}}, {{FIELD}}, and {{VDATE}}, in the one-page form and in prompts that come one at a time. A \| outside a token is left as it is.
  • If a table already had a token like {{VALUE:status\|label:Status}}, it only looked like it worked. QuickAdd stored the answer as status\, so a {{VALUE:status}} elsewhere in the template asked again. Now both use the same answer.
  • QuickAdd doesn't escape what it writes into a cell. An answer that contains a |, such as a link with display text ([[Note|Shown text]]), still starts a new cell.

Docs: In a table cell. Thanks to @JustinCragg for #2197 and the screenshots that pointed to the table (#2198).

Closing a window no longer waits for QuickAdd

QuickAdd saves a settings change about a second after you make it, and once more when Obsidian closes, in case a change hasn't been written yet. In 2.31.0, it asked Obsidian to wait for that last save every time, even when there was nothing to save. When a plugin asks to wait, Obsidian cancels the close, waits, and then closes again. In a test on Linux, Obsidian took about 3 seconds to shut down after its window closed with QuickAdd 2.31.0, and about 0.1 seconds with 2.32.0, the same as with QuickAdd turned off.

Now QuickAdd asks Obsidian to wait only when a change from the last second hasn't been saved. A change you make right before closing is still saved.

@vibe-lab-goodspecialists reported this in #2194, along with vault windows that didn't come back the next time Obsidian started. Closing no longer goes through the cancel and retry, but the missing windows didn't reproduce in testing. Obsidian doesn't reopen a vault window you closed while another one was still open, and that happens with QuickAdd turned off, too. If a window still goes missing after you update, please comment on #2194 (#2195).

For apps that drive QuickAdd

Some choices work with the note you're in: Capture to active file, Link to captured file, {{LINKCURRENT}}, {{SELECTED}}, and a Template set to Same folder as current file. A run started from outside Obsidian, such as from Raycast, used whichever tab happened to be open in Obsidian, so a link could land in a random note. Now the app can say which note it means.

  • The Raycast extension asks for the note. Before it runs a choice that uses the current note, it shows a searchable list of your notes, with No current note first when the choice can do without one. The extension isn't in the Raycast Store yet, so install it from source.

  • current= on the command line. quickadd:run, quickadd:run-template, quickadd:check, and quickadd:interactive take current= with a note's path, or current=none. Say a Capture named Add to inbox has Capture to set to an existing Inbox.md, Write position set to Bottom of file, and the Capture format - {{VALUE}} (from {{LINKCURRENT}}). Then

    obsidian vault=Pottery quickadd:run choice="Add to inbox" value-value="Ask the hall about extension cords" current="Projects/Kiln upgrade" verify=true

    adds - Ask the hall about extension cords (from [[Kiln upgrade]]) to the bottom of the inbox, whichever note is open in Obsidian, and answers "ok":true with "effect":"changed". value-value= answers {{VALUE}}, and verify=true makes QuickAdd check what it wrote, so a choice that needs a current note answers "ok":false with current=none. Without current=, QuickAdd uses the active tab, as before. A path with no note returns an error before anything runs. The obsidian command needs Settings → General → Command line interface turned on in Obsidian.

  • currentNote in quickadd:list. Every choice says whether it uses the current note: required, optional, or none. An app can ask for a note only when it matters.

When the named note isn't the one in the active editor, QuickAdd writes to the file directly. A capture set to At cursor, New line above cursor, or New line below cursor goes to the top of the note instead, and a link goes on a new last line.

Docs: current=, currentNote. Thanks to @ievlevpn, who built a note picker into their own Raycast extension and offered it (#2196).

Also in this release

Fixes

  • Create line if not found set to Cursor now needs the note you capture into to be open in the active editor. Before, when you captured into another note, QuickAdd took the line number of your cursor in the note you had open and created the missing line at that line number in the other note. Now the capture stops and says which note to open, for example 'Inbox.md' isn't open in the active editor. Choose Top or Bottom to capture into a note that isn't open (#2196, #2199).

New in the docs


Full changelog: 2.31.0...2.32.0