Advanced Usage Guide
Master every Makro feature - from basic text expansion to Smart Rewrite, cloud sync, and 25+ dynamic placeholders. Everything a new user needs to become a power user.
Add to Chrome - FreeGetting Started
How text expansion works in Makro - type a short trigger, get full text instantly.
Jane Smith
Product Manager - TechHQ
How It Works
/sig, brb, or !!addr/sig, /SIG, and /Sig all trigger the same macro.Date & Time Placeholders Free
Insert dynamic dates, times, and calculated dates into your macros.
Basic Date & Time
| Placeholder | Description | Example | Output |
|---|---|---|---|
[$DATE] |
Today's date (ISO format) | [$DATE] |
2026-03-16 |
[$TIME] |
Current time (24h) | [$TIME] |
14:30 |
[$DATETIME] |
Full ISO 8601 timestamp | [$DATETIME] |
2026-03-16T14:30:00 |
Custom Date Formats
Use [$DATE:FORMAT] with these format codes:
| Code | Output | Example |
|---|---|---|
YYYY | 4-digit year | 2026 |
MM | 2-digit month | 03 |
DD | 2-digit day | 16 |
MMMM | Full month name | March |
dddd | Full day name | Monday |
HH | Hours (24h) | 14 |
mm | Minutes | 30 |
Date Math
Add or subtract time from today using units: d (days), w (weeks), m (months), y (years).
| Placeholder | Description | Example | Output |
|---|---|---|---|
[$DATE+7d] |
7 days from today | [$DATE+7d] |
2026-03-23 |
[$DATE-30d] |
30 days ago | [$DATE-30d] |
2026-02-14 |
[$DATE+3w] |
3 weeks from today | [$DATE+3w] |
2026-04-06 |
[$DATE+1m:MMMM DD] |
1 month from now, formatted | [$DATE+1m:MMMM DD] |
April 16 |
[$DATE-1y] |
1 year ago | [$DATE-1y] |
2025-03-16 |
[$DATE+2w:dddd, MMMM DD] outputs something like "Monday, March 30".Clipboard & Selection Free
Insert clipboard contents or currently selected text into your macros.
| Placeholder | Description | Example Use |
|---|---|---|
[$CLIPBOARD] |
Current clipboard contents | Link: [$CLIPBOARD] |
[$SELECTION] |
Currently selected text | "[$SELECTION]" |
Clipboard Math
Modify clipboard contents with arithmetic operations:
| Placeholder | Description |
|---|---|
[$CLIPBOARD[-30%]] | Remove last 30% of clipboard text |
[$CLIPBOARD[+10]] | Append 10 characters |
Example: URL Wrapper
Create a macro with hotword /link:
Copy a URL, type /link, and the URL is wrapped in an HTML anchor tag.
Interactive Prompts Free
Ask for user input when a macro expands - perfect for templates with variable fields.
| Placeholder | Description | Example |
|---|---|---|
[$PROMPT:Label] |
Text input with label | Dear [$PROMPT:Name], |
[$PROMPT:Label:default] |
Text input with default value | [$PROMPT:City:New York] |
Example: Meeting Follow-up Template
Thanks for meeting on [$DATE:dddd]. Here are the action items:
1. [$PROMPT:Action Item 1]
2. [$PROMPT:Action Item 2]
Let me know if I missed anything.
Best,
[$PROMPT:Your Name:Jane]
When you type /followup, Makro asks for each prompt value before expanding.
[$PROMPT:Your Name:Jane] pre-fills "Jane" but lets you change it.Text Transforms Free
Transform text case, trim whitespace, find and replace, and more - all inside your macros.
| Placeholder | Description | Example | Output |
|---|---|---|---|
[$UPPER:text] |
Convert to UPPERCASE | [$UPPER:hello world] |
HELLO WORLD |
[$LOWER:text] |
Convert to lowercase | [$LOWER:Hello World] |
hello world |
[$TITLE:text] |
Convert to Title Case | [$TITLE:hello world] |
Hello World |
[$TRIM:text] |
Remove leading/trailing whitespace | [$TRIM: hello ] |
hello |
[$LENGTH:text] |
Character count | [$LENGTH:hello] |
5 |
[$REVERSE:text] |
Reverse characters | [$REVERSE:hello] |
olleh |
[$SUBSTR:0:5:text] |
Extract substring (0-indexed) | [$SUBSTR:0:5:Hello World] |
Hello |
[$REPEAT:3:text] |
Repeat N times | [$REPEAT:3:ha] |
hahaha |
[$URLENCODE:text] |
URL-encode text | [$URLENCODE:hello world] |
hello%20world |
Find & Replace
| Placeholder | Description | Example | Output |
|---|---|---|---|
[$REPLACE:find:new:text] |
Replace first match | [$REPLACE:world:earth:hello world] |
hello earth |
[$REGEX:pattern:new:text] |
Regex find/replace | [$REGEX:\\d+:X:abc123] |
abcX |
Example: Auto-Generate a Search URL
Select "best text expander" then type /google https://google.com/search?q=best%20text%20expander
Example: Clean and Format User Input
User enters " jane smith " Jane Smith
Example: Extract Initials from Clipboard
Clipboard contains "marketing" - type /initials M
Nesting Transforms
Combine transforms by nesting them. Inner placeholders resolve first, then outer ones process the result:
Example: Replace then title-case [$TITLE:[$REPLACE:-: :some-kebab-case]] Result: Some Kebab Case
[$UPPER:[$TRIM:text]] first trims whitespace, then converts to uppercase.Math & Logic Free
Evaluate math expressions and use conditional logic in your macros.
Math Expressions
| Placeholder | Description | Example | Output |
|---|---|---|---|
[$CALC:2+2] |
Addition | [$CALC:2+2] |
4 |
[$CALC:100*0.15] |
Multiplication | [$CALC:100*0.15] |
15 |
[$CALC:(50+25)/3] |
Grouping with parentheses | [$CALC:(50+25)/3] |
25 |
Example: Tip Calculator
15% tip: $[$CALC:[$PROMPT:Bill amount]*0.15]
20% tip: $[$CALC:[$PROMPT:Bill amount]*0.20]
Total (20%): $[$CALC:[$PROMPT:Bill amount]*1.20]
Example: Discount Calculator
20% discount: -$[$CALC:[$PROMPT:Price]*0.20]
You pay: $[$CALC:[$PROMPT:Price]*0.80]
Enter "49.99" when prompted Original price: $49.99
20% discount: -$9.998
You pay: $39.992
Conditional Logic
Use [$IF] / [$ELSE] / [$ENDIF] to include or exclude text based on conditions:
Example: Platform-Aware Response
Thanks for the pull request! I'll review this shortly.
[$ELSE]
Thanks for reaching out! I'll get back to you soon.
[$ENDIF]
[$MACRO:/sig]
Example: Conditional Signature
Product Manager
[$IF:site=company.com]Phone: (555) 123-4567
[$ENDIF]jane@company.com
On company.com Jane Smith
Product Manager
Phone: (555) 123-4567
jane@company.com
On any other site Jane Smith
Product Manager
jane@company.com
[$IF] to show phone numbers only on internal sites, include disclaimers only on client-facing domains, or change your greeting based on the platform.Cursor & Tab Stops Free
Control where the cursor lands after expansion and create multi-field templates.
| Placeholder | Description | Example |
|---|---|---|
[$CURSOR] |
Place cursor here after expansion | Hello [$CURSOR], welcome! |
[$0] - [$9] |
Tab stops - cursor jumps in order | To: [$1] Subject: [$2] |
[$1:default] |
Tab stop with pre-filled default | [$1:John Doe] |
[$FILLFORM] |
Trigger form-fill mode | [$FILLFORM]Name: [$1] |
Example: Email Template with Tab Stops
Subject: [$2:Follow-up]
Hi [$3:there],
[$CURSOR]
Best regards,
[$4:Your Name]
After expansion, press Tab to jump between fields [$1] through [$4]. The cursor rests at [$CURSOR] for your message body.
Advanced Placeholders Free
Nested macros, counters, delays, random values, and more.
| Placeholder | Description | Example |
|---|---|---|
[$MACRO:/sig] |
Insert another macro's expansion | [$MACRO:/sig] |
[$COUNT] |
Auto-incrementing counter (resets daily) | Invoice #[$COUNT] |
[$COUNT:invoices] |
Named counter | INV-[$COUNT:invoices] |
[$RANDOM:a,b,c] |
Random value from list | [$RANDOM:Hi,Hey,Hello] |
[$WAIT:1000] |
Pause for N milliseconds (max 10,000) | [$WAIT:500] |
[$IMAGE:url] |
Insert image from URL | [$IMAGE:https://...] |
[$RANDOM] - Randomized Text
Pick a random value from a comma-separated list each time the macro expands. Great for keeping repetitive messages fresh.
Example: Support Greeting Randomizer
First expansion Hey! How can I help you today?
Second expansion Good to hear from you! How can I help you today?
Example: Random Sign-Off
Jane
[$RANDOM] picks a new value every time the macro expands. Use it for greetings, sign-offs, motivational quotes, or A/B testing email subject lines.[$COUNT] - Auto-Incrementing Counters
Generate sequential numbers that auto-increment each time you use the macro. Named counters maintain separate sequences.
Example: Invoice Numbering
Number: INV-[$DATE:YYYYMMDD]-[$COUNT:invoices]
Date: [$DATE:MMMM DD, YYYY]
Bill to: [$PROMPT:Client Name]
Amount: $[$PROMPT:Amount]
Result INVOICE
Number: INV-20260316-001
Date: March 16, 2026
Bill to: Acme Corp
Amount: $1,500
Example: Support Ticket IDs
Priority: [$PROMPT:Priority:Normal]
Issue: [$PROMPT:Description]
Result Ticket ID: SUPPORT-042-0316
Priority: High
Issue: Login page returns 500 error
[$COUNT] resets daily. Named counters like [$COUNT:invoices] maintain their own independent sequence. Use different names for invoices, tickets, reports, etc.[$MACRO] - Nested Macros
Reference other macros inside a macro body. Build reusable building blocks and compose complex templates.
Example: Composable Email
Macro /sig Best regards,
Jane Smith | Product Manager
jane@company.com
Macro /reply (uses both) [$MACRO:/greeting]
[$CURSOR]
[$MACRO:/sig]
Result of typing /reply Hey Sarah,
[cursor lands here]
Best regards,
Jane Smith | Product Manager
jane@company.com
Example: Multi-Block Legal Email
[$CURSOR]
[$MACRO:/disclaimer]
[$MACRO:/sig]
Chain as many [$MACRO] references as you need. Each one expands its own placeholders too.
[$WAIT] - Timed Delays
Insert a pause during expansion. Useful when filling forms that need time to process between fields.
Example: Sequential Form Fill
The [$WAIT:300] gives the page 300ms to process each field before moving to the next. Increase the delay for slower pages.
[$WAIT] accepts values from 1 to 10,000 milliseconds. Use 200-500ms for form fills. Use longer delays when a page needs to load between steps.Power Combo: Complete Daily Report
See how multiple advanced placeholders work together in a single macro:
[$RANDOM:Good morning team!,Hey everyone!,Hi all!]
Yesterday:
- [$PROMPT:What did you do yesterday?]
Today:
- [$PROMPT:What will you do today?]
[$IF:blockers=yes]Blockers:
- [$PROMPT:What is blocking you?]
[$ENDIF]
[$MACRO:/sig]
Result Daily Standup #12 - Monday, March 16, 2026
Hey everyone!
Yesterday:
- Finished the API integration tests
Today:
- Deploy to staging, start on the dashboard UI
Jane Smith | Product Manager
jane@company.com
Power Combo: Smart Customer Reply
Thanks for [$IF:site=github.com]your issue report[$ELSE]reaching out[$ENDIF]. [$CURSOR]
Reference: [$COUNT:replies]-[$DATE:MMDD]
[$MACRO:/sig]
Result (on GitHub) Hello Alex,
Thanks for your issue report. [cursor]
Reference: 087-0316
Best regards,
Jane Smith | Product Manager
jane@company.com
[$RANDOM], [$IF], [$COUNT], and [$MACRO] as your workflows get more sophisticated.Smart Rewrite Free Pro
Rewrite selected text with AI - make it formal, casual, shorter, or fix grammar. Works locally or via the cloud.
AI Providers
Ollama / LM Studio (Local) Free
Runs entirely on your machine. Free, private, no data leaves your device. Requires Ollama or LM Studio installed locally.
Makro Smart Rewrite Pro
Cloud-powered AI using Llama 3.3 70B via Cloudflare Workers AI. Fast, high-quality rewrites with your Pro license.
Rewrite Actions
| Action | What It Does |
|---|---|
| Make formal | Professional tone for business communication |
| Make casual | Friendly, conversational tone |
| Make empathetic | Warm, understanding tone |
| Make assertive | Confident, direct tone |
| Fix grammar | Correct grammar, spelling, and punctuation |
| Simplify | Use simpler words and shorter sentences |
| Shorten | Make the text more concise |
| Expand | Add detail and context |
| Convert to bullets | Turn prose into a bulleted list |
| Make step-by-step | Convert into numbered steps |
| Custom instruction | Write your own rewrite prompt |
How to Use
Smart Actions Free
Give a macro a keyboard shortcut that works even when you are not in a text field. A macro body is content by default - to open a web link you say so with [$OPENURL].
How It Works
Because a macro body is content by default, a plain web link is text you can send - it is not opened. When you want a shortcut to open a link in a new tab, add the [$OPENURL:target] placeholder.
| Placeholder | Description | Example |
|---|---|---|
[$OPENURL:target] |
Open target in a new tab (http/https only). Inserts nothing. Other schemes are refused. | [$OPENURL:https://status.example.com] |
[$SELECTION_OR_CLIPBOARD] |
The highlighted selection if there is one, otherwise the clipboard contents | https://ipinfo.io/[$SELECTION_OR_CLIPBOARD] |
Example: Support Link You Can Send
A macro body that is content. Trigger the shortcut while no text field is focused and the link is copied to your clipboard, ready to paste into a chat or ticket. Trigger it inside a reply box and the link is inserted in place.
Fire the shortcut with no text field focused Copied: https://support.makroexpander.com
Example: Open an IP Lookup for the Selected Text
Highlight an IP address (or copy one), fire the shortcut, and Makro opens the lookup in a new tab. [$SELECTION_OR_CLIPBOARD] uses your selection when there is one and falls back to the clipboard. [$OPENURL] resolves last, so the address is already filled in before the tab opens, and nothing is inserted into the page.
With "8.8.8.8" highlighted, fire the shortcut Opens https://ipinfo.io/8.8.8.8 in a new tab (nothing inserted)
[$OPENURL] opens http and https links only - other schemes are refused for safety. Use bare [$SELECTION] instead of [$SELECTION_OR_CLIPBOARD] when you want the shortcut to do nothing if nothing is highlighted.Search & Quick Access Free
Find and insert macros instantly with the search overlay.
Keyboard Shortcut
Press Ctrl+Shift+Space to open the search overlay from any text field.
How It Works
Context Menu & Shortcuts Free
Quick access to your macros via right-click menu and keyboard shortcuts.
Context Menu
Right-click in any text field to see your macros organized by category. The menu shows:
Top 10 Most-Used
Your most frequently expanded macros appear at the top for quick access.
Last 5 Recent
Recently used macros are grouped separately so you can re-use them fast.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+Shift+Space | Open search overlay |
| Ctrl+Shift+A | Quick add a new macro |
| Ctrl+Shift+L | Repeat last expanded macro |
| Alt+Shift+V | Open clipboard history |
Categories & Organization Free
Organize macros into a nested category hierarchy up to 3 levels deep.
Category Hierarchy
Categories support up to 3 levels of nesting:
Email Templates
Customer Support
Sales Outreach
Code Snippets
Personal
Signatures
Category Operations
| Action | How |
|---|---|
| Create | Click the folder icon in the macro list header |
| Rename | Right-click a category - Rename |
| Move | Right-click a category - Move to... |
| Delete | Right-click a category - Delete (removes all macros inside) |
| Add subcategory | Right-click a category - New subcategory |
Cloud Sync Pro
Sync your macros across all your devices with zero-knowledge encryption.
How Sync Works
Zero-Knowledge Encryption
Your macros are encrypted with AES-256-GCM before leaving your device. The server stores only encrypted blobs and never has access to your plaintext data. Even if the server were compromised, your macros remain private.
Sync Operations
| Operation | Description |
|---|---|
| Push to Cloud | Upload your local macros (encrypted) to the server |
| Pull from Cloud | Download and decrypt cloud macros to this device |
| Force Replace from Cloud | Overwrite local macros with cloud version |
| Force Replace to Cloud | Overwrite cloud with local macros (rate-limited) |
Device Management
View all synced devices, set custom device names, and deactivate devices you no longer use - all from the Settings panel.
Backup & Restore Free
Protect your macros with automatic and manual backups.
Auto-Backup
Enable automatic backups in Settings. Choose a schedule:
Daily
Backs up once every 24 hours.
Weekly
Backs up once every 7 days.
Monthly
Backs up once every 30 days.
Password-Protected
Optionally encrypt backups with a password for extra security.
Automatic Safety Backups
Makro automatically creates internal backups before these operations:
| Trigger | When |
|---|---|
| Extension update | Before Makro updates to a new version |
| Sync pull | Before downloading macros from the cloud |
| Import | Before importing macros from a file |
| Force replace | Before overwriting local or cloud data |
Manual Backup & Restore
Use the Export button in the Makro popup to create a JSON backup file. Import it on any device to restore your macros.
Clipboard History Free
Automatically capture and search your clipboard history with smart filtering for sensitive data.
How It Works
When enabled, Makro captures clipboard contents as you copy text. All entries are encrypted with AES-256-GCM and stored locally.
Smart Filtering
Makro automatically detects and excludes sensitive data from clipboard history:
Credit Card Numbers
Patterns matching card numbers are auto-excluded.
Social Security Numbers
SSN patterns (XXX-XX-XXXX) are detected and blocked.
API Keys & Passwords
Common API key and password patterns are filtered.
Private Keys
PEM and RSA private key formats are excluded.
Using Clipboard History
Press Alt+Shift+V to open clipboard history. Search through past entries and click to insert.
Settings
| Setting | Description | Default |
|---|---|---|
| Max history items | Number of clipboard entries to keep | 50 |
| Auto-clear | Clear sensitive data after N seconds | Off |
| Show source | Display where each clip was copied from | Off |
| Custom filters | Add your own regex patterns to exclude | None |
Import & Export Free
Import macros from 9+ text expander tools or export your Makro library as JSON.
Supported Import Formats
How to Import
Placeholder Conversion
Makro automatically converts placeholders from other tools:
| Tool | Their Syntax | Makro Equivalent |
|---|---|---|
| TextExpander | %clipboard | [$CLIPBOARD] |
| TextExpander | %| | [$CURSOR] |
| Text Blaze | {clipboard} | [$CLIPBOARD] |
| Text Blaze | {time} | [$TIME] |
| Espanso | {{clipboard}} | [$CLIPBOARD] |
| AutoHotkey | %clipboard% | [$CLIPBOARD] |
| Alfred | {cursor} | [$CURSOR] |
| PhraseExpress | {#clipboard} | [$CLIPBOARD] |
Export
Click Export in the Makro popup to download your entire macro library as a JSON file. The file includes all categories, subcategories, and macros.
Starter Packs Free
Pre-built macro collections for common industries and roles. Install with one click.
Real Estate
Property listings, showings, offers
Customer Service
Support templates, responses
Engineering
Code snippets, PR templates
Marketing
Copywriting, social media
Sales
Outreach, follow-ups, proposals
Legal
Contracts, clauses, disclaimers
How to Install a Pack
Settings & Customization Free
Customize Makro to fit your workflow - themes, shortcuts, blocked sites, and more.
Appearance
| Setting | Options |
|---|---|
| Theme | Auto (follows system), Light, Dark |
| Expansion animation | Enable/disable the sparkle effect on expansion |
| Menu format | Pipes (|), Slashes (/), or Bullets (-) |
Behavior
| Setting | What It Does |
|---|---|
| Spell check | Enable browser spell check in macro editor |
| Blocked sites | List of domains where Makro won't expand hotwords |
| Show top 10 menu | Display most-used macros in context menu |
| Show last 5 menu | Display recent macros in context menu |
| Folders first | Show categories before macros in context menu |
Customizable Shortcuts
All keyboard shortcuts can be changed in Settings to avoid conflicts with other extensions or applications.
AI Settings
| Setting | Description |
|---|---|
| AI provider | Choose between Ollama / LM Studio (local) and Makro Cloud |
| Local AI endpoint | Custom URL for your local AI server (Ollama or LM Studio) |
| Prompt style | Natural or Detailed rewrite prompts |
| Semantic suggestions | AI-powered macro suggestions based on context |
| Custom prompts | Create your own rewrite instructions |
Ready to Master Makro?
Install Makro free and start using these features today.
Add to Chrome - Free