The omnibox
One field does everything in Voodoo. It reads what you type twice at once — as a task to capture and as a search to run — and the preview under it always states what Enter will do before you press it. This is the whole grammar.
Prefixes
The first character switches what the whole line means.
(none) Compose a task and search at the same time. Enter guesses which you meant, and the preview tells you before you press it.
? Search only — never composes. Enter opens the top hit.
/ Run a command. Today: /help. More are on the way.
> Jump to a list, tag, or saved view.
' Take the whole line as a title, verbatim — no sigils parsed at all.
~ Write the task as a sentence. Your words all stay in the title; anything Voodoo recognizes is added as a chip beside it.
Sigils
One character per concept. Each sets a field when you capture, and filters when you search.
^tomorrow^apr15 9am^fri^2026-08-01 Search ^today^<7d^overdue^none!1!2!3 Search !1!<=2#Finance#Home/Reno Search #Finance@errand@phone Search @errand*yearly*every 2nd tue*after 3w Search **yearly=30m=2h Search =<30m+https://…+ Search +; they close at 4pm Search ;invoice%packing-list Search %-@errand-#Work-"flaky"Tokens narrow together — ^today !1 means overdue and high priority.
Plain English
Start a line with ~ and write the task
the way you'd say it.
These can hardly mean anything else, so no lead-in is needed.
friday at fourtomorrowapr 15next tuesdayevery two weeksurgenthttps://…An ordinary word could be anything — buy a new phone is not a tag — so a list, tag, estimate, note or template has to be introduced.
in financetagged waitingtakes about two hoursnote: they close at 4from template packing-listSigils still work on a ~ line, and
they win: ~call the bank friday ^mon is due Monday.
Lists, tags and templates only match ones you already have — a sentence never creates anything.
Smart Enter
With no prefix, the box is both a new task and a search. Enter picks the likely one and the preview commits to it — so it’s never a surprise.
- Add when the line reads like something new to capture.
- Open when it clearly matches a task you already have.
- Search when it’s a query with nothing to open yet.
Not what you wanted? ⌘ ↵ always adds, even over a search.
Keyboard
Everything is reachable without leaving the box. On Windows, ⌘ is Ctrl.
The four gates
Every sigil character also shows up in ordinary writing. A character becomes metadata only if it clears all four — one mangled title would cost more than any shortcut saves.
A sigil must begin a word. bob@example.com, C++, and 50% are safe — the character is glued to text before it.
It must touch its value, no space: ^fri parses, ^ fri does not. So 2 * 3 and x = 5 stay text.
The value has to be real — ^ a date, ! a 1–3, and # / @ a list or tag that already exists (unknown names are offered, not created).
Pasted text is literal by default, so a copied Slack line full of #eng and @here never mangles a title.
Advanced
// The barEverything before it is a literal title; everything after it is metadata. The escape hatch when a title is full of sigils.
pay AT&T bill // ^fri !1 #Home' Literal lineA leading apostrophe turns off all parsing for the whole line.
'50% off #123 @ 5pm!\ Escape a sigilA backslash protects the one character after it, so it stays in the title.
ship \#123 today: Field escape hatchQuery fields the sigils don’t cover. The preview says when a filter isn’t supported yet.
is:blocked has:children status:done/…/ RegexWrap a pattern in slashes to match titles by regular expression.
/inv(oice)?-\d+/Worked examples
pay AT&T bill ^fri !1 #Home Adds “pay AT&T bill”, due Friday, priority 1, filed in Home.
call plumber ; ask about the leak Adds “call plumber” with a note — ; runs to the end of the line, so put it last.
?^overdue #Work Finds overdue tasks in Work. Search only; nothing is composed.
standup *every weekday Adds a task that repeats every weekday.
read 3 * 6 joists Adds the literal title — a * mid-sentence isn’t a repeat, thanks to the gates.
'50% off #123 @ 5pm Adds that exact title. The leading apostrophe turns off every sigil.
~call the bank about the wire transfer friday at four, high priority, in finance Adds that whole sentence as the title, with a Friday 4pm date, priority 1, and the Finance list attached.
/help Opens this page.