You type the same things all day. The commit prefix. The PR template. "Steps to reproduce." The standup. The console.log with a label so you can find it again. Each one is ten seconds, and there are dozens of them a day.
A text expander turns each into a few keystrokes: type ;pr and the whole template lands, wherever your cursor is. Below are 15 snippets worth setting up, written in the token syntax we use at TypeFire. The ideas work in any good expander; the syntax is ours.

Type thx, get the whole reply. The tokens below work the same way.
A quick primer on the syntax
Every example uses four kinds of placeholder that fill in at the moment of expansion:
-
{{fill:Label}}stops and asks you for a value (a ticket number, a scope).{{fill:Label|default}}prefills it. -
{{date}},{{time}}and formats like{{date:dddd}}insert today's date, the time or the weekday. Date math works too:{{date:+1d}}is tomorrow. -
{{clipboard}}pastes whatever you last copied. -
{{cursor}}leaves your cursor at that spot after expanding (plain-text snippets only).
Save these as Plain Text snippets, even the Markdown-looking ones, so {{cursor}} works and the Markdown pastes exactly as written.
The full list is in the dynamic tokens docs, and this 90-second walkthrough shows fill-ins and date math in action:
A tip on naming: start every abbreviation with a character you never type at the start of a word, like ; or z. Then ;pr never fires by accident in the middle of a sentence.
Git and pull requests
1. Conventional commit, ;cc
{{fill:type|feat}}({{fill:scope}}): {{fill:summary}}
One form, three boxes, and a correctly formatted commit message every time.
2. Branch name, ;br
git checkout -b {{fill:type|fix}}/{{fill:ticket}}-{{fill:short name}}
3. Pull request template, ;pr
## What changed
{{cursor}}
## Why
## How to test
1.
## Checklist
- [ ] Tests added or updated
- [ ] Docs updated
- [ ] No new warnings
If your PR template is Markdown, preview it before you push. We wrote up four ways to preview Markdown live, including the task-list syntax this one uses.
4. Approve with a nit, ;lgtm
LGTM, thanks! One small nit (non-blocking): {{cursor}}
5. Changelog entry, ;cl
## [{{fill:version}}] - {{date}}
### Added
- {{cursor}}
Code review and bugs
6. Review checklist, ;crv
- [ ] Does it do what the ticket says?
- [ ] Edge cases: empty, huge, unicode, offline
- [ ] Errors are handled and shown in plain words
- [ ] Tests cover the change
- [ ] No secrets, no debug logging left in
7. Bug report, ;bug
**Steps to reproduce**
1. {{cursor}}
**Expected**
**Actual**
**Environment:** {{fill:browser or OS}}, reported {{date}}
8. "Can you share more?", ;more
Thanks for the report! Could you share the exact steps, what you expected, and a screenshot or the console output? That'll help us reproduce it.
Code you type a hundred times
9. Labeled log, ;log
console.log("{{fill:label}}:", {{fill:value}});
10. TODO with an owner and a date, ;todo
// TODO({{fill:owner}}, {{date}}): {{cursor}}
A dated TODO is one somebody might actually come back to.

Two more from our developer snippets page: {{clipboard}} drops in what you just copied, {{cursor}} parks the caret inside the block.
11. Markdown table skeleton, ;tbl
| {{fill:Column 1}} | {{fill:Column 2}} |
| --- | --- |
| | |
Team rituals
12. Standup, ;su
**{{date:dddd}}**
- Yesterday: {{cursor}}
- Today:
- Blockers: none
13. On-call handoff, ;oncall
Handing off on-call, {{date:MMMM DD}}.
- Open incidents:
- Watch out for:
- Next check-in: {{date:+1d:dddd}}
Two that run code (Mac app)
TypeFire snippets can also be shell scripts: the script runs when you expand it, and its output is pasted. These two live on the Mac app.
14. A fresh UUID, ;uuid (Shell Script snippet)
uuidgen | tr '[:upper:]' '[:lower:]'
15. Your local IP, ;ip (Shell Script snippet)
ipconfig getifaddr en0
Where they work
On the Mac, snippets expand in every app: your editor, the terminal, Slack, the browser. In Chrome, Edge and Brave, the TypeFire extension expands them on every site, so ;pr works right inside GitHub's PR form.

On the Mac, a snippet can also get its own keyboard shortcut, for the ones you never want to type at all.
If you're choosing a browser text expander, we compared the options in our guide to the best Chrome text expander. And there's a page on TypeFire for developers with more code-shaped examples.
The short version
- Prefix abbreviations with
;orzso they never fire by accident. - Use
{{fill:...}}for the parts that change and{{date}}for anything dated. - Start with the five you type most: commit, PR, bug report, standup, log line.
What's the one thing you type every single day that should be a snippet?
Top comments (0)