150+ Free Text Expander Snippets

A hand-picked starter pack of 150+ snippets — for customer support, sales, marketing, writing, healthcare, legal work, recruiting, teaching, daily life, project management, developers, and the terminal. Copy what you need, or import the whole pack into Lightning Assist in one click.

Install Lightning AssistWorks with Lightning Assist, AutoHotkey, Espanso, TextExpander, and more.

How to use this pack

  1. Browse the categories below, hit Copy on any snippet that fits your work, and paste it into your text expander as a new entry. Each card shows the recommended trigger.
  2. Or click "Download all as JSON" — the file imports directly into Lightning Assist via Settings → Import Snippets.
  3. Edit triggers and bodies freely. The pack is meant as a starting point, not a rigid template.

Customer Support

Honest, human replies for tickets — no canned-response feel.

:hi
Friendly opener
Hi [#name#], thanks for reaching out — happy to help. 
Personable opener that doesn't sound like a template.
:rec
Acknowledge a bug
Thanks for the detailed report — we've reproduced this on our side and it's now ticketed. I'll follow up here as soon as the fix ships.
Acknowledge a bug without overpromising.
:eta
No-ETA reply (honest)
I don't have a firm ETA yet, but I'll come back to you within [#timeframe#] with a real update — even if the update is just "still working on it".
Better than silence or a fake date.
:refund
Refund policy reply
Of course — I've started the refund process. It usually clears in 5–10 business days depending on your bank. You'll get a confirmation email once it's issued.
Don't make refunds painful; you'll never get the customer back if you do.
:escalate
Escalation note (internal)
@TEAM_LEAD — escalating: customer [#name#], ticket [#id#], blocking issue: [#summary#]. Already tried: [#steps#]. Need: [#decision#].
Internal hand-off that gives the lead everything in one read.
:feature
Feature request log
Thanks for suggesting this — I've logged it on our roadmap board. We weigh requests by how many people ask, so the more context you can share about your use case the more it helps us prioritise.
Acknowledges without committing to ship.
:closeticket
Close-ticket nudge
I'm going to mark this resolved on my side, but reply any time if it comes back and I'll reopen it instantly — no need to start a new ticket.
Polite close that keeps the door open.
:gdpr
GDPR data request reply
I've received your data access / deletion request and routed it to our compliance team. Per Article 12 GDPR, we'll respond in full within 30 days, usually faster.
Standard GDPR acknowledgment that proves you know the rules.
:sla
Status check during outage
Quick update: we're aware of the issue, our team is actively investigating, and the next status update will be in [#minutes#] minutes. Live status: [#status_url#].
Cadence reassurance during outages.
:thanks
Thank-you closer
Thanks for sticking with us through this — really appreciated. Have a great rest of your [#day#].
Better than "have a nice day!".
:shipped
Follow-up after fix shipped
Hi [#name#] — circling back: the fix for [#issue#] shipped in version [#version#]. Could you give it another try when you have a minute and let me know how it works for you?
Closes the loop on bugs. Most teams forget this step.
:workaround
Suggest a workaround
While we work on a permanent fix, here's a quick workaround: [#workaround_steps#]. Not ideal, I know — we'll let you know the moment the proper fix lands.
Acknowledges the workaround is not the final answer.
:csat
Ask for a satisfaction rating
One quick favor: would you mind rating this conversation? Single click, takes 5 seconds: [#survey_link#]. Helps us a lot.
Ask after a successful resolution, not during.
:paymentfail
Payment failure notice
Hi [#name#] — looks like the latest payment didn't go through (most often this is an expired card or address mismatch). You can update your payment method here: [#billing_url#]. No service interruption — just a heads-up so it doesn't pile up.
Calm, non-alarming dunning email.
:complaintack
Acknowledge a serious complaint
I hear you, and you're right to be frustrated. [#specific_acknowledgment#]. Let me find out exactly what happened and come back with both an explanation and a plan to fix it. Give me until [#deadline#].
Validates first, time-boxes the response.

Sales

Cold outreach, follow-ups, demos and closing.

:intro
Cold outreach intro
Hi [#name#] — I run growth at Lightning Assist. Saw you [#specific_thing#] and thought I'd reach out. We help [#target#] [#outcome#]. Worth a 15-min chat next week?
Respects their time; opens with something specific you noticed.
:followup
No-reply follow-up
Bumping this up — totally understand if the timing isn't right. If it is, here's the easiest way to start: [#link#]. If not, no need to reply.
One follow-up. Then move on.
:demo
Demo confirmation
Confirmed for [#day#] at [#time#] ([#tz#]). Calendar invite is on its way. I'll keep it under 20 min and show you exactly the [#focus_area#] flow you mentioned.
Sets expectation so the demo doesn't drift.
:pricing
Send pricing
Pricing is straightforward: $5.99/month per user, no tiers, no usage caps, all features included. 14-day free trial — no card up front. Link: https://www.lightning-assist.com/pricing
Pricing should never be a paragraph.
:proposal
Proposal recap
Recap of what we discussed:
• Goal: [#goal#]
• Scope: [#scope#]
• Timeline: [#timeline#]
• Investment: [#price#]

Let me know if anything is off and I'll revise.
Catches misalignments before contracts.
:closelost
Close-lost follow-up (6 months)
Hi [#name#] — circling back after about 6 months. We've shipped [#biggest_change#] since we last spoke. If the original blocker was [#their_blocker#], that's now solved. Worth another look?
Long-tail re-engagement that doesn't feel pushy.
:refer
Ask for a referral
Glad it's working out! If you know anyone in [#their_industry#] who might benefit from [#value_prop#], I'd love an intro. We have a referral program too: [#link#].
Best moment to ask is right after praise.
:invoice
Invoice question response
No problem — we can switch to [#net_terms#] terms or send invoices for [#billing_period#] cycles instead of monthly. Just confirm which one and I'll update the account today.
Don't lose a sale over invoicing flexibility.
:calendar
Send calendar link
Here's my calendar — pick whatever works: [#calendar_link#]. If those times don't fit, just send 2-3 windows that do and I'll make one work.
Always offer the manual fallback — some buyers hate calendar tools.
:revive
Revive a stalled deal
Hi [#name#] — last we spoke you were [#their_state#]. Curious where things landed? Even a quick "not now" is helpful so I know where to put my energy.
Non-pushy revival. Permission to say no makes more people reply.
:nda
NDA needed?
Want me to send our standard mutual NDA before we go deeper, or are you fine talking under verbal NDA for now? Either works.
Removes the awkward "is this confidential?" pause.
:budget
Budget qualification
Quick question to make sure I'm pitching the right tier: what's the rough budget you're working with for [#category#] this year? Saves us both time vs. me throwing pricing options at the wall.
Direct budget question framed as efficiency for them.
:custom
Custom term offer
We can do [#custom_term#] if it helps you say yes — for example, switching to annual billing for a [#discount#]% discount, or extending the trial by [#days#] days. Which would help most?
Concrete options > vague "we can be flexible".
:churn
Win-back after cancellation
Hi [#name#] — saw you cancelled and wanted to reach out (no pressure to come back). What broke down for you? Even one line of feedback is gold and helps us not screw it up for the next person.
Lead with humility, not retention pitch.
:bant
BANT qualification (internal)
Discovery notes — [#account#]:
• Budget: [#budget#]
• Authority: [#decision_maker#]
• Need: [#pain#]
• Timeline: [#timeline#]
• Champion: [#champion#]
• Risks: [#risks#]
Internal CRM note. Forces the rep to actually ask.

Marketing & Content

UTMs, alt text, meta tags, launch tweets and changelogs.

:utm
UTM template
?utm_source=[#source#]&utm_medium=[#medium#]&utm_campaign=[#campaign#]&utm_content=[#variant#]
Always include content for A/B testing.
:alt
Alt text reminder
alt="[#describe_what_you_see_in_the_image_for_a_blind_person#]"
Forces you to write descriptive alt text, not just "image".
:meta
Meta title & description
<title>[#primary_keyword#] | Lightning Assist</title>
<meta name="description" content="[#description#]">
Title under 60 chars; description under 155.
:lp
Landing page outline
1. Hero (problem → outcome in 8 words)
2. Social proof (logos / quote)
3. 3 benefits (icon + headline + line)
4. How it works (3 steps)
5. Objection handling (FAQ)
6. CTA
A landing page that converts has these 6 sections in order.
:tweet
Launch tweet template
🚀 Just shipped: [#thing#]

• [#benefit_1#]
• [#benefit_2#]
• [#benefit_3#]

Try it free: [#link#]
Short, scannable, link last.
:blogcta
Blog footer CTA
Want to try Lightning Assist yourself? It's free for 14 days, no card needed → https://www.lightning-assist.com/downloads
Friendlier than "Sign up now!".
:changelog
Changelog entry
## [#version#] — [#date#]

### Added
- 

### Changed
- 

### Fixed
- 
Keep-a-Changelog format. Users actually read these.
:press
Press kit one-liner
Lightning Assist is the AI text expander for Windows, Mac & Linux — turn keyboard shortcuts into full messages, code, and templates, then enhance them with built-in AI. Founded 2024 in Iași, Romania.
Boilerplate every PR person asks for.
:hashtags
Productivity hashtag set
#productivity #textexpander #automation #aitools #worksmarter #saaslife #remotework #devtools
Tweak per platform — Instagram tolerates more, LinkedIn fewer.
:ctas
CTA variants
Try it free →
Get started in 60s →
See how it works →
Watch the 90-second demo →
Claim your free trial →
A/B test two of these against each other every launch.
:bio
Twitter / X bio
Building [#product#] · helped [#count#] [#audience#] [#outcome#] · DMs open · [#location#]
Specific numbers > generic "founder, builder".
:newsletter
Newsletter intro
Hey — [#first_name#] here. Quick one this week: [#tldr#]. Full story below ↓
A scannable intro outperforms long preambles.
:podcast
Podcast episode description
In this episode of [#show#], [#guest#] joins us to talk about [#topic#].

We cover:
• [#point_1#]
• [#point_2#]
• [#point_3#]

Listen wherever you get podcasts: [#links#]
Three bullet points = the search-friendly summary.
:ytdesc
YouTube description
[#hook#]

In this video:
00:00 [#section_1#]
[#timestamp_2#] [#section_2#]
[#timestamp_3#] [#section_3#]

🔗 Links:
• [#link_1#]
• [#link_2#]

📺 Subscribe: [#subscribe_url#]
Timestamps boost retention + watch-page SEO.
:og
Open Graph meta tags
<meta property="og:title" content="[#title#]">
<meta property="og:description" content="[#description#]">
<meta property="og:image" content="[#image_url#]">
<meta property="og:url" content="[#canonical_url#]">
<meta property="og:type" content="website">
Without OG tags, your link looks broken on Slack/Discord/Twitter.

Writing & Email

Signatures, OOO, meeting requests, recaps, and apologies that actually land.

;sig
Email signature
[#your_name#]
[#your_title#], Lightning Assist
https://www.lightning-assist.com
Plain-text sig — works in every client.
;oo
Out-of-office
Hi — I'm out of office until [#return_date#] with limited email access. For urgent matters, please contact [#backup_email#]. I'll reply when I'm back.
Clear, polite, no apology.
;meet
Meeting request
Hi [#name#] — would you have 20 min next week to talk about [#topic#]? Here's my calendar: [#link#]. Or feel free to suggest a time that works for you.
Offers both options without forcing one.
;nope
Polite decline
Thanks for thinking of me — really appreciate it. Going to pass on this one because [#reason#], but please keep me in mind for future stuff.
Says no without burning the bridge.
;calc
Calendar invite text
[#event_title#]
📅 [#date#]
⏰ [#start_time#]–[#end_time#] [#tz#]
📍 [#location_or_link#]

Agenda:
• 
• 
• 
A calendar invite that does NOT say "Let's sync".
;recap
Meeting recap
Quick recap from our call:

**Decided:**
• 

**Action items:**
• [#owner#] — [#task#] — by [#date#]

**Next sync:** [#when#]
Send within an hour or it loses 80% of its value.
;lookback
Weekly review prompt
This week's wins:
• 

This week's misses:
• 

Next week's top 1:
• 
Three sections, no more. Anything longer doesn't get re-read.
;apol
Apology that lands
I'm sorry — that's on me. Here's what went wrong: [#cause#]. Here's what I'm doing about it: [#action#]. Here's when you'll see it: [#date#].
Three sentences: own it, fix it, time-box it.
;remind
Friendly reminder
Hi [#name#] — gentle nudge on [#what#]. No urgency, just keeping it on your radar. Let me know if anything's blocking you on it.
"Gentle" + "no urgency" = polite without being passive.
;oops
Self-correction email
Quick correction to my earlier email: I said [#wrong_thing#], but it's actually [#right_thing#]. Sorry for any confusion.
Own the mistake, fix it, move on.
;dblintro
Introducing two people
Hi [#person_a#] and [#person_b#],

Making the introduction.

[#person_a#], meet [#person_b#] — [#person_b_short_bio#].
[#person_b#], [#person_a#] is [#person_a_short_bio#].

I'll let the two of you take it from here.

[#your_name#]
Standard double-intro. Always ask both first ("intro consent").
;loopin
Loop someone in
Looping in [#name#] for visibility — this is in their wheelhouse and they'll have a faster answer than I would.
Justifies the new CC so they know why they're on the thread.
;reschedule
Reschedule a meeting
Hi [#name#] — sorry, something came up and I'll need to reschedule our [#meeting_type#] on [#date#]. Could we move to [#alt_1#] or [#alt_2#] instead? If neither works, send me a few times and I'll make one fit.
Two options + manual fallback removes back-and-forth.
;bump
Polite chase reply
Just bumping this — wanted to make sure it didn't get lost in your inbox. No rush at all if other things are louder right now.
Single bump. Then move on — silence is an answer too.
;closeline
Default close line
Looking forward to hearing your thoughts.
Better than "Best," — invites a reply without demanding one.

Healthcare & Medical

SOAP notes, prescriptions, vitals, referrals, and patient-friendly explanations.

:soap
SOAP note skeleton
S (Subjective):

O (Objective):
Vitals: BP [#bp#], HR [#hr#], RR [#rr#], T [#temp#], SpO2 [#spo2#]

A (Assessment):

P (Plan):
Standard SOAP structure for clinic visits.
:rxinst
Prescription instructions boilerplate
Take [#dose#] by mouth [#frequency#] for [#duration#] days. Take with food. Do not stop early even if you feel better. Side effects to watch for: [#side_effects#]. Call us if [#red_flags#].
Patient-facing instructions in plain language.
:vitals
Vitals shorthand
BP [#systolic#]/[#diastolic#] mmHg | HR [#hr#] bpm | RR [#rr#]/min | T [#temp#]°C | SpO2 [#spo2#]% RA | Pain [#pain#]/10
One-line vitals capture for charting.
:hpi
HPI template
Patient is a [#age#]-year-old [#sex#] presenting with [#chief_complaint#], onset [#when#], [#duration#] duration. Quality: [#quality#]. Severity: [#severity#]/10. Modifying factors: [#better_worse#]. Associated symptoms: [#associated#]. Pertinent negatives: [#negatives#].
History of Present Illness — covers the OPQRST mnemonic.
:apptconf
Appointment confirmation
Confirming your appointment with Dr. [#provider#] on [#date#] at [#time#]. Please arrive 15 min early to complete forms. Bring: photo ID, insurance card, and any current medications. Reply CANCEL to reschedule.
Cuts no-shows when sent 24h ahead.
:noshow
No-show follow-up
We noticed you missed your [#date#] appointment with Dr. [#provider#]. We'd like to help you reschedule — reply with a few times that work for you, or call [#phone#]. No fee for one missed appointment.
Empathetic, not punitive — most no-shows are circumstance, not disrespect.
:referral
Referral letter opener
Dear Dr. [#specialist#],

Thank you for accepting [#patient_name#] (DOB [#dob#]) for evaluation of [#reason#]. Relevant history is summarized below; full records attached. Please feel free to reach me at [#contact#] with any questions.

Kind regards,
Dr. [#your_name#]
Specialist referral that respects their time.
:educate
Patient-friendly diagnosis explanation
Your [#test_or_scan#] showed [#finding#]. In plain language: [#plain_explanation#]. This is generally [#assessment#] and the next step is [#next_step#]. You don't need to worry about [#common_misconception#]. Reply here or call us if anything is unclear.
Translate medical jargon into patient-readable English.
:fmh
Family medical history checklist
Family medical history (note relation + age at diagnosis):
- Heart disease:
- Diabetes:
- Cancer (specify type):
- Stroke:
- Hypertension:
- Mental health:
- Genetic conditions:
- Other relevant:
Drop into intake forms or chart prompts.
:dischrg
Discharge summary opener
Discharge summary for [#patient#], MRN [#mrn#].

Admission date: [#admit#]
Discharge date: [#discharge#]
Primary diagnosis: [#primary_dx#]
Secondary: [#secondary_dx#]

Hospital course: [#course#]

Medications at discharge:
- 

Follow-up:
- 
Skeleton for hospital discharge documentation.
:ros
Review of systems
Review of systems:
• Constitutional: [#fever_chills_weight#]
• HEENT: [#headache_vision#]
• CV: [#chest_pain_palpitations#]
• Resp: [#cough_sob#]
• GI: [#nausea_pain#]
• GU: [#dysuria_freq#]
• MSK: [#joint_pain#]
• Neuro: [#numbness_dizziness#]
• Skin: [#rash#]
• Psych: [#mood_sleep#]
10-system ROS skeleton.
:pe
Physical exam template
Physical exam:
Gen: [#general_appearance#]
Vitals: see flowsheet
HEENT: [#heent#]
CV: [#heart#]
Lungs: [#lungs#]
Abdomen: [#abdomen#]
Ext: [#extremities#]
Neuro: [#neuro#]
Skin: [#skin#]
Standard PE structure for clinic notes.
:allergy
Allergy documentation
Drug allergies: [#allergy_list#]. Reaction: [#reaction#]. Severity: mild / moderate / severe. Verified with patient on [#date#].
Severity + verification date are the two fields most charts skip.
:workabs
Work / school absence note
To Whom It May Concern,

This letter confirms that [#patient_name#] (DOB [#dob#]) was under my medical care from [#start_date#] to [#end_date#] and was unable to attend work/school during that period. They are now cleared to return [#with_or_without_restrictions#].

Dr. [#your_name#]
[#contact#]
Generic absence note that satisfies most HR/registrar requests.
:preop
Pre-op instructions
Pre-op instructions for [#procedure#] on [#date#]:
• Nothing by mouth after midnight (clear liquids OK until [#cutoff#])
• Stop [#medications_to_stop#] [#days_before#] days before
• Continue [#medications_to_continue#]
• Arrive [#arrival_time#] at [#location#]
• Bring photo ID, insurance card, current medication list
• Have someone available to drive you home
Patient-facing pre-op checklist.

Recruiting & HR

Cold outreach, kind rejections, offer letters, onboarding emails, and exit interviews.

:cold
Recruiter cold outreach
Hi [#candidate#] — I came across your profile and your work on [#specific_project#] caught my attention. We're hiring a [#role#] at [#company#] with [#key_perk#]. Open to a 15-min chat to see if it's interesting? No pressure either way.
Specific opener > generic spray.
:rejcv
Rejection (CV stage)
Hi [#candidate#], thank you for applying to the [#role#] role at [#company#]. After reviewing your background, we've decided to move forward with other candidates whose experience more closely matches what we're looking for. We genuinely appreciate the time you took to apply, and wish you the best.
Honest, brief, kind. No "keep on file" lies.
:rejintv
Rejection (after interview)
Hi [#candidate#], thank you again for the time you spent interviewing for [#role#]. After careful consideration, we've decided to move forward with another candidate. This wasn't an easy decision — your [#strength#] stood out. If a more aligned role opens up, I'll reach out directly. Wishing you the best.
Specific recognition makes the rejection sting less.
:offer
Offer email opener
Hi [#candidate#] — delighted to share that we'd like to offer you the [#role#] position at [#company#]. Full details and offer letter attached. Headlines: base [#salary#], equity [#equity#], start date [#start_date#], manager [#manager#]. Happy to walk you through anything live — propose a time and I'll make it work.
Excitement first, details second, friction last.
:sched
Schedule interview
Hi [#candidate#] — congrats on moving to the next round! The next step is a [#duration#]-min [#interview_type#] interview with [#interviewer#] ([#interviewer_role#]). Here are 3 time slots that work; pick whichever is easiest:

• [#slot_1#]
• [#slot_2#]
• [#slot_3#]
Three slots > calendar link sometimes (more personal).
:refreq
Reference request
Hi [#reference#] — I'm interviewing for [#role#] at [#company#] and your name came up as someone I'd love to list. Would you be comfortable being a reference for me? If yes, the recruiter is [#recruiter#] and they may reach out in the next 1–2 weeks. Either way, no pressure — appreciate you considering it.
Asks for permission first instead of just listing them.
:onb
Day-1 onboarding email
Welcome to [#company#], [#name#] — we're thrilled to have you. For day one ([#date#]):

• Arrive at [#time#], [#location#]
• Ask for [#point_of_contact#]
• Bring: [#things_to_bring#]
• Dress: [#dress_code#]
• Lunch is on us

First-week schedule and accounts setup attached. Reply with any questions.
A pre-day-1 email cuts day-1 anxiety dramatically.
:exit
Exit interview invite
Hi [#name#], before your last day on [#date#], we'd love a 30-min exit conversation — the goal is honest feedback on what worked, what didn't, and how we can be a better employer for the next person in your role. Confidential, no consequences. Pick any time: [#calendar_link#].
Frames the exit interview as helping others, not justifying yourself.
:ack
Application acknowledgment
Hi [#candidate#], thanks for applying to the [#role#] role at [#company#]. We've received your application and the hiring team will review it over the next [#timeframe#]. We'll only reach out if we'd like to move you forward — please don't take silence personally; volume is always higher than we'd like.
Silence is the #1 candidate complaint. Acknowledge.
:promo
Promotion announcement (internal)
Team — please join me in congratulating [#name#] on their promotion to [#new_role#], effective [#date#]. Since joining [#years#] ago, [#name#] has [#specific_accomplishment_1#], [#specific_accomplishment_2#], and [#accomplishment_3#]. The role is well-earned. Cheers, [#name#]! 🎉
Specific accomplishments > vague praise.
:leaveok
Leave request approved
Hi [#name#], your [#leave_type#] request from [#start_date#] to [#end_date#] is approved. [#coverage_arrangement#] will cover for you. Enjoy the time off — see you back on [#return_date#].
Confirmation + coverage clarity in one message.
:perfprep
Performance review prep
Hi [#name#] — your [#period#] performance review is scheduled for [#date#]. To make this productive, please send me by [#prep_deadline#]:

• 3 things you're proud of from this period
• 1-2 areas where you want to grow
• Any blockers I or the team should help unblock

No formal write-up needed — bullet points are fine.
Specific prep ask = specific review.
:raisecons
Raise request response
Thanks for raising this with me. I want to look into it properly rather than answer off the cuff. Give me until [#deadline#] to come back with a clear yes/no plus reasoning. Either way, I appreciate you advocating for yourself.
Buys you time without saying no, without saying yes.
:pip
PIP opener (formal)
Hi [#name#] — this email formally places you on a Performance Improvement Plan effective [#start_date#]. The PIP runs through [#end_date#]. Specific areas, expectations, and check-in cadence are in the attached document. Please review and acknowledge by [#ack_deadline#]. I'm here to help you succeed in this — let's make this productive.
Tone matters: this is supportive, not punitive.
:kudos
Public employee appreciation
Want to call out [#name#] this week — [#specific_thing#]. [#why_it_mattered#]. Stuff like that doesn't go unnoticed. Thank you, [#name#].
Specific praise. Public when possible, private when sensitive.

Education & Teaching

Grade comments, late-work policy, office hours, syllabus links, and recommendation letters.

:gradeA
Top-grade comment
Excellent work, [#student#]. Your [#specific_strength#] was particularly strong — your argument about [#thesis#] was both well-supported and original. Consider submitting this for [#venue#].
Specific praise > "great job!". Encourage next-level action.
:gradeC
Mid-grade comment with growth path
Solid effort, [#student#]. The structure was clear, and your handling of [#strength#] showed understanding. Two specific things to push to the next level: (1) [#actionable_1#], (2) [#actionable_2#]. Stop by office hours if you'd like to discuss.
Actionable feedback > letter grade alone.
:lateassign
Late assignment policy reminder
Hi [#student#], your [#assignment#] was due [#due_date#] and I haven't received it. Per the syllabus, late submissions lose [#penalty#] per day, capped at [#max_penalty#]. If something happened — illness, emergency, anything — please reply and we'll work something out.
Policy + door open. Most late students have a real reason.
:academint
Academic integrity flag
Hi [#student#], I'd like to discuss your [#assignment#] with you. There are passages that closely resemble published source material without attribution. Before any decisions are made, I'd like to hear your side. Please come by office hours on [#date#] or schedule another time.
Don't accuse — invite a conversation. Often there's a citation mistake, not malice.
:oh
Office hours info
Office hours: [#day#] [#start#]–[#end#] [#tz#], [#location_or_link#]. No appointment needed for [#walk_in_topics#]. For [#deeper_topics#], please book a slot: [#calendar_link#]. Email if those don't work — I'll find time.
Reduces "is OH still happening?" emails.
:syllabus
Syllabus link reminder
The full syllabus, including grading breakdown, late policy, attendance policy, and accommodations process, lives at [#syllabus_url#]. Most questions about logistics are answered there — please check before emailing. For policy clarifications I haven't covered, I'm always happy to help.
Cuts repeat questions in half.
:examlogistics
Exam logistics
Exam logistics for [#exam_name#]:
• Date: [#date#], [#time#] ([#duration#])
• Location: [#room#]
• Allowed: [#allowed_materials#]
• Not allowed: [#prohibited#]
• Format: [#format#] — [#question_count#] questions
• Accommodations: contact [#disability_office#] at least 7 days ahead
Comprehensive pre-exam brief.
:rec
Recommendation letter opener
Dear [#recipient#],

It is my pleasure to recommend [#student#] for [#program#]. I taught [#student#] in [#course#] during [#semester#], where they [#specific_accomplishment#]. In a class of [#class_size#], [#student#] was [#ranking#] for their [#quality#].
Specific > generic. Include numbers when possible.
:rubric
Grading rubric line
Grading rubric:
• Argument & thesis (30%): [#description#]
• Evidence & analysis (30%): [#description#]
• Structure & flow (20%): [#description#]
• Style & mechanics (20%): [#description#]

Full descriptors: [#rubric_url#]
Drop into syllabus + assignment prompts.
:extok
Extension granted
Hi [#student#], I've granted an extension on [#assignment#] until [#new_deadline#]. No need to explain further — just submit by the new date. Reach out if you need additional support beyond a deadline change.
Sometimes the kindest reply is the shortest one.
:extno
Extension declined
Hi [#student#], I've reviewed your extension request and unfortunately I can't grant it on this assignment. Per the syllabus, this one is firm because [#reason#]. The late penalty applies, but submit anyway — partial credit beats zero. If something larger is going on, please loop in [#dean_of_students#].
Decline that protects the student's GPA + flags the right escalation path.
:grpwork
Group project guidelines
Group project guidelines for [#assignment#]:
• Groups of [#size#], self-formed by [#deadline#] or assigned
• Each member must contribute and document their contribution
• Final submission includes a 1-page reflection signed by all members
• Disputes: contact me before final submission, not after
• Grading is individual based on contribution, not group-flat
Heading off the "my group did nothing" complaint.
:canc
Class canceled
Hi all — class on [#date#] is canceled. We'll cover the planned material in [#alternate_format#] on [#alt_date#]. Reading for that session is unchanged. Apologies for the late notice.
Don't over-apologize. Get to the make-up plan fast.
:midterm
Midterm grade summary
Hi [#student#] — quick midterm summary:
• Assignment 1: [#grade_1#]
• Assignment 2: [#grade_2#]
• Midterm exam: [#midterm#]
• Participation: [#participation#]
• Current course grade: [#current_grade#]

To finish strong, focus on [#focus_area#]. Office hours if you want to talk strategy.
Mid-semester check-in that prevents end-of-term surprises.
:essayhelp
Essay help boundaries
Hi [#student#] — happy to help with your essay. To make office hours productive, please bring:

1. Your thesis in one sentence
2. Your outline or topic sentences for each paragraph
3. The specific section you're stuck on

Don't bring a full draft expecting me to copy-edit — that's not the best use of either of our time, and you'll learn more from focused feedback.
Sets expectations once = saves you 50 emails per term.

Personal & Daily

Address, phone, RSVP, birthday, sympathy — the snippets every adult should have ready.

:addr
Home address
[#your_full_name#]
[#street_address#]
[#city#], [#state#] [#postal#]
[#country#]
For shipping forms, applications, etc.
:myphone
Phone number
[#your_phone_with_country_code#]
Saves you re-typing it 10× a day.
:myemail
Email address
[#your_email#]
For forms that auto-correct your typing into nonsense.
:ty
Thank-you note
Hi [#name#],

Thank you so much for [#specific_thing#]. It really meant a lot — [#why_it_mattered#]. Hope to [#return_gesture#] soon.

[#your_name#]
A handwritten-feel thank-you takes 30 seconds with a snippet.
:gz
Congratulations
Huge congrats on [#achievement#], [#name#]! [#specific_observation#] — you've earned this. Looking forward to seeing what's next.
Specific observation > "congrats!".
:rsvpyes
RSVP yes
Hi [#host#], thanks so much for the invite — I'd love to come. Please let me know if I can bring anything. Looking forward to seeing you on [#date#].
Polite RSVP that offers to help.
:rsvpno
RSVP no
Hi [#host#], thank you so much for thinking of me. I unfortunately can't make it on [#date#] — [#brief_reason#]. Have a wonderful time, and let's catch up soon.
Decline that keeps the relationship warm.
:bday
Birthday wish
Happy birthday, [#name#]! 🎉 Hope you're celebrating in exactly the way you want — and that [#age#] brings you [#specific_wish#]. Cheers to you.
Personalize the specific wish — "more travel", "the new job", etc.
:sympathy
Sympathy / condolence message
Dear [#name#], I just heard about [#loss#]. I'm so deeply sorry. [#specific_memory_or_thought_about_the_person_lost#]. Please know I'm thinking of you and your family — there's no need to reply. If there's anything you need, even just company, I'm a call away.
No "let me know if you need anything" — be specific.
:iou
Quick reply when busy
Got this — won't be able to reply properly until [#when#]. Will come back with a real response then. Thanks for your patience.
Better than ignoring or replying half-attentive.
:dispute
Bank charge dispute
I'd like to dispute a charge on my account dated [#date#] for [#amount#] from [#merchant#]. The charge is [#unauthorized_or_incorrect_amount_or_not_received#]. I have already attempted to resolve this with the merchant on [#contact_date#]. Supporting documentation attached. Account number ending in [#last_four#].
Drop into your bank's dispute form.
:wifi
WiFi credentials share
WiFi: [#network_name#]
Password: [#password#]
Save your guests the awkward squinting at the router.
:diet
Dietary preferences
Quick heads-up on dietary stuff for me: [#vegetarian_vegan_kosher_halal_allergies#]. Not picky beyond that — happy to work around whatever the kitchen makes easiest.
Polite, non-demanding heads-up for hosts and restaurants.
:emerg
Emergency contact info
[#full_name#]
[#relationship#]
Phone: [#phone#]
Alt phone: [#alt_phone#]
Email: [#email#]
Drop into school/work/medical forms.
:greview
Ask for a Google review
If you had a good experience, would you mind leaving a quick Google review? Takes about 30 seconds and means the world to a small business. [#review_link#]
Asks for the review without faking the experience.

Project Management

Standups, weekly status, risks, retros, scope-creep flags, and post-mortems.

:standup
Daily standup format
Yesterday:
- 

Today:
- 

Blockers:
- [#none_or_specific#]
The classic three-line standup. Anything longer = it should be a meeting.
:status
Weekly status update
## [#project#] — week of [#date#]

**Status:** 🟢 on track / 🟡 at risk / 🔴 blocked

**Shipped this week:**
- 

**Up next:**
- 

**Risks/blockers:**
- 

**Help needed:**
- 
Color status forces honesty. "On track" lies eventually catch up.
:risk
Risk register entry
Risk: [#description#]
• Probability: low / medium / high
• Impact if it happens: low / medium / high
• Owner: [#owner#]
• Mitigation: [#mitigation#]
• Trigger to escalate: [#trigger#]
A risk without an owner is a wish.
:ai
Action item from meeting
**Action:** [#what#]
**Owner:** [#who#]
**Due:** [#when#]
**Definition of done:** [#measurable_outcome#]
"Definition of done" is the line most action items skip.
:retro
Retro template (start/stop/continue)
## Retro — [#sprint#]

**Start doing:**
- 

**Stop doing:**
- 

**Continue doing:**
- 

**Action items from this retro:**
- 
Retros without action items are venting sessions.
:scope
Scope creep flag
Heads up — [#request#] is outside the current sprint scope. Options:
1. Add it to the next sprint backlog
2. Swap it in by removing [#what_to_drop#]
3. Defer indefinitely

Which do you want to do? I won't move on it until I hear back.
Visibility is everything. Quiet scope creep kills sprints.
:est
Estimate disclaimer
Rough estimate: [#days#]. This assumes [#assumptions#] and excludes [#exclusions#]. If those change, the estimate changes. Will refine after [#milestone#].
Estimates are negotiations, not promises.
:async
Async update opener
Async update — no meeting needed. [#TLDR_one_line#].

Details:
[#details#]

What I need from you: [#ask_or_nothing#].
Deadline: [#date_or_no_rush#].
Clear ask = clear answer. Vague update = silent thread.
:demo
Demo agenda
## Demo — [#feature#]
[#date#] · [#duration#]

1. Why we built this ([#problem#]) — 2 min
2. Live demo — [#demo_duration#] min
3. Edge cases & known issues — 2 min
4. Q&A — [#qa_duration#] min
Demos that ramble lose the room. Time-box every section.
:postmortem
Post-mortem opener
## Post-mortem: [#incident_title#]
**Date:** [#date#]
**Duration:** [#minutes#] min
**Severity:** SEV-[#level#]
**Customers impacted:** [#count#]

### What happened

### Timeline
- [#time#] — 

### Root cause

### What went well

### What we will change
- 
Blameless post-mortem skeleton — outcomes, not finger-pointing.
:raid
RAID log entry
RAID log entry:
• Type: Risk / Assumption / Issue / Dependency
• Description: [#description#]
• Owner: [#owner#]
• Status: open / in progress / resolved
• Impact: low / medium / high
• Date raised: [#date#]
• Last update: [#last_update#]
Standard RAID format used in PRINCE2 and most enterprise PMOs.
:charter
Project charter
Project charter — [#project_name#]

**Problem statement:** [#problem#]
**Goal:** [#measurable_goal#]
**Success criteria:** [#criteria#]
**Out of scope:** [#out_of_scope#]
**Timeline:** [#start#] → [#end#]
**Sponsor:** [#sponsor#]
**Lead:** [#lead#]
**Budget:** [#budget#]
One-pager that prevents 90% of mid-project scope arguments.
:launch
Launch checklist
Launch checklist — [#feature#]:
☐ Code merged + deployed to production
☐ Feature flag flipped on for [#audience#]
☐ Marketing site copy updated
☐ Help docs published
☐ Support team briefed
☐ Analytics events firing
☐ Internal Slack post
☐ External announcement (blog/social)
☐ Customer outreach to top [#count#] accounts
☐ On-call rotation prepped
Generic enough to use for any feature launch.
:handoff
Project handoff doc
Project handoff — [#project_name#]

**Status:** [#status#]
**Where things are:** [#current_state#]
**Recent context:** [#recent_decisions#]
**Open items:**
- 
**Stakeholders:**
- 
**Critical credentials/access:** [#secure_location#]
**Watchouts:** [#known_landmines#]
**My availability post-handoff:** [#availability#]
A handoff doc is what separates good leavers from bad ones.
:slip
Slip notification
Heads up — [#milestone#] is going to slip from [#original_date#] to [#new_date#]. Cause: [#root_cause#]. Mitigation: [#mitigation#]. Impact on dependent work: [#downstream_impact#]. Calling this out now so we can adjust together rather than discover it on the deadline.
Slips become disasters when hidden. Surface them early.

Developer

Boilerplate, debug helpers, code-review and PR templates.

;log
console.log debug
console.log('🔍', { });
Drop-in JS debug print with an emoji marker so you can grep it later.
;clog
console.log named variable
console.log('VARNAME →', VARNAME);
Replace VARNAME twice — keeps the label and the value in sync.
;try
try/catch boilerplate
try {
  
} catch (err) {
  console.error(err);
}
Cursor lands inside the try block.
;af
arrow function
const NAME = () => {
  
};
Top-level arrow function declaration.
;todo
TODO with date + initials
// TODO(YOUR_INITIALS, 2026): 
Inline TODO that survives blame and grep.
;fixme
FIXME with severity
// FIXME(P1): 
Flag that the next person reading this code is going to have to deal with.
;gi
git ignore line
node_modules/
.env
.env.local
.next/
out/
dist/
build/
*.log
.DS_Store
A reasonable starter .gitignore for Node/Next.js.
;prdesc
PR description template
## Summary

## Why

## How to test

## Risks

## Out of scope
Standard 5-section PR description that reviewers actually read.
;bugrepro
Bug repro template
**Repro steps**
1. 
2. 
3. 

**Expected:**

**Actual:**

**Environment:** OS / browser / version
For bug tickets — fills in the gap most people leave open.
;sql
SQL safe count check
SELECT COUNT(*) FROM TABLE_NAME WHERE ;
Always run this before an UPDATE or DELETE.
;readme
README scaffold
# [#project_name#]

[#one_line_description#]

## Install

```
npm install
```

## Usage

```
npm run dev
```

## Scripts

- `npm run build` — production build
- `npm test` — run tests

## License

[#license#]
Bare-minimum README that still covers what new contributors need.
;commitconv
Conventional commit
feat([#scope#]): [#short_summary_imperative_mood#]

[#optional_longer_explanation#]

Closes #[#issue_number#]
Conventional Commits format — plays well with semantic-release.
;curl
curl POST template
curl -X POST https://[#endpoint#] \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer [#token#]' \
  -d '{ "key": "value" }'
Multi-line curl with auth header. Easy to read in commit history.
;debounce
Debounce utility
function debounce(fn, ms = 300) {
  let t;
  return (...args) => {
    clearTimeout(t);
    t = setTimeout(() => fn(...args), ms);
  };
}
The 6-line debounce that nobody actually memorizes.
;envex
.env.example skeleton
DATABASE_URL=postgres://user:pass@host:5432/dbname
REDIS_URL=redis://localhost:6379
NODE_ENV=development
PORT=3000
[#API_KEY_NAME#]=[#your_key_here#]
Always commit a .env.example. Never commit a .env.

Terminal & Shell

Git, Docker and disk-space rescue commands you forget at the worst moment.

;gst
git status
git status -sb
Short branch + status format — paste into chat without spam.
;glog
pretty git log
git log --oneline --decorate --graph --all -20
Visual tree of last 20 commits across branches.
;gundo
undo last commit (keep changes)
git reset --soft HEAD~1
Soft reset — your changes stay staged, only the commit goes.
;dprune
docker prune
docker system prune -af --volumes
Reclaim disk space from stopped containers + unused images.
;lstop
biggest files in cwd
du -ah . 2>/dev/null | sort -rh | head -20
Quickly find what's eating disk space.
;portkill
kill process on port (mac/linux)
lsof -ti:PORT_NUMBER | xargs kill -9
Replace PORT_NUMBER. Use when "address already in use".
;grephist
Search bash history
history | grep '[#search_term#]'
Find that one command you ran 3 weeks ago and forgot.
;tar
Tar gzip archive
tar -czf [#archive_name#].tar.gz [#folder_or_file#]
c=create, z=gzip, f=file. The classic.
;sshconf
SSH config block
Host [#alias#]
  HostName [#hostname_or_ip#]
  User [#username#]
  IdentityFile ~/.ssh/[#key_name#]
  Port [#port#]
Drop into ~/.ssh/config — then just `ssh alias`.
;ipinfo
Check IP info
curl -s https://ipinfo.io/json | jq
Quick public-IP + geo lookup.
;dudirs
Top-level disk usage
du -sh */ | sort -rh | head -20
Sorted human-readable size of dirs in cwd. Top 20 offenders.
;watch
Watch a command every 1s
watch -n 1 [#command#]
Re-run a command on a loop. Great for `kubectl get pods` etc.

License

Free to use, modify, and share. No attribution required. If the pack saves you time and you want to give credit anyway, link to https://www.lightning-assist.com/snippets-starter-pack — that helps other people find it too.

Found this useful? Share it.

If this pack saved you time, share it on Hacker News, Reddit r/productivity, dev.to, or your team Slack. The more people use Lightning Assist for snippets, the more snippets we can curate and ship for free.