The syntax, skim it in two minutes.
Placeholders, triggers, keyboard shortcuts. Everything here works on the free tier unless tagged otherwise. For worked examples and nested-macro patterns, see the full guide.
What you can put inside a macro body.
Placeholders resolve at expansion time. Each fires once per expansion; values come from the system, the clipboard, your selection, or an inline prompt.
Today's date in ISO format (YYYY-MM-DD).
Current time in 24-hour HH:MM.
Full ISO timestamp with seconds and timezone.
Custom-format time. Supported tokens: HH, hh, mm, ss, A (AM/PM). Example: [$TIME:hh:mm A].
Fires an inline modal for user input. Extended form is [$PROMPT:Label:type:default] where type is one of text, select, number, or textarea. For select, the third segment is comma-separated options (e.g. [$PROMPT:Color:select:red,green,blue]); for the other types it is the default value. Two-segment forms like [$PROMPT:RE: Subject] are treated as a plain text label.
Pipe-separated dropdown picker. Lighter-weight than [$PROMPT] when only a menu is needed.
Inserts the current clipboard contents at the placeholder position.
The current text selection, captured at expansion time.
Marks where the caret lands after the macro expands.
Auto-incrementing counter. Uses a default bucket when no name is given.
Named counter. Each name gets its own persistent value (up to 500 distinct names per library).
Picks one option at random. Separator auto-detects: pipe > semicolon > comma.
Repeat text n times (safety-capped).
Plain (non-regex) find/replace on text.
String helpers: title case, trim, length, reverse, substring.
Diff two values. format is one of unified (default), arrow, beforeafter, or inline.
The current selection if there is one, otherwise the clipboard. Useful when a macro should work whether or not you highlighted something first.
Upper-case or lower-case text.
Percent-encodes text so it is safe to drop into a URL.
Masks two things in text: email local parts (casey@acme.com becomes c****@acme.com, domain kept) and runs of 7 or more digits, where every digit but the last four is starred. It does not detect card numbers or national ID numbers.
Tab stops. After the macro expands, Tab and Shift+Tab move between them in order, [$1] first and [$0] last. [$0] and [$CURSOR] mean the same thing. Each stop can carry a default: [$1:Hello] inserts that text and preselects it.
Your name and team, read from Settings. Never from the page. If you have not set them, the token turns into a fill-in prompt at expansion time rather than inserting nothing.
Ticket fields for helpdesk replies. Makro does not read them off the page - there is no extraction engine yet - so today each one resolves to a fill-in prompt with a localized label.
Dispatches a Tab or Enter key event mid-expansion so one macro can move between form fields or submit. These are synthetic events, so a page that ignores scripted key events will not respond to them.
Pauses the expansion for ms milliseconds before continuing, capped at 10 seconds. Pairs with the keystroke tokens on slow forms.
Takes the clipboard, splits it into lines, and types one line per field, tabbing onward as it goes. Stops as soon as the focus leaves an editable field.
Inserts an image, in rich-text fields only. HTTPS only (unlike [$OPENURL], plain http is refused), and private or loopback addresses are refused.
Opens a URL in a new tab as part of the expansion, with noopener,noreferrer. Accepts http and https, refuses anything else, and refuses internal or loopback addresses so a hostile page cannot steer it at a router or metadata endpoint. Capped at 5 opens per expansion.
Custom-format date. Supported tokens: YYYY, YY, MMM, MM, DD, ddd, HH, mm, ss. Example: [$DATE:MMM DD, YYYY].
Date math. Offsets: +3d, -1w, +2m, +1y. Append :format for custom output; otherwise defaults to YYYY-MM-DD.
Whole calendar days from today until the given date. Example: [$DAYSUNTIL:2026-12-25].
Whole calendar days from the given date until today. Example: [$DAYSSINCE:2026-01-01].
Evaluate a math expression at expansion time. Operators: + - * / and parentheses. No modulo.
Nested macro. Depth capped at 3 to prevent loops.
Conditional block. Renders inner text only when the condition matches; blocks can be nested. Currently beta-gated for Pro+ subscribers.
Extended [$PROMPT] form types. Free users still get the basic dialog, but the type segment (select, number, textarea) silently downgrades to plain text on free accounts.
Regex transform on the third segment text. Pattern is validated against catastrophic-backtracking before use.
Last Smart Copy OCR result from the session, inserted into a macro body. This placeholder itself requires Pro or Premium, independent of Smart Copy's own scanning and AI cleanup/Vision, which are available on every tier.
References a captured Page Variable. Part of the Page Variables beta program (same gate as Smart Fill).
How a hotword fires.
Type the hotword, then press one of the trigger keys. Makro matches the word just before the caret; it will not fire mid-word.
Opening the quick-search popup.
Both shortcuts open the same overlay - bind what fits your habits. Shortcuts are configurable in your browser's extension keyboard settings.
Beyond the cheat sheet.
If you need worked examples for nested macros, regex transforms, or the full placeholder matrix with every format modifier, the deep-dive guide has it.