Skip to main content

Documentation

Snippet variables

Insert the date, the time, the clipboard, a unique identifier or a value you type at the moment you paste, with CMDglows snippet variables.

A snippet is text you reuse. A variable is a piece written between braces, for example {date}. When you insert the snippet, CMDglows replaces it with its value. The saved snippet keeps the variable: it is only computed at insertion.

The variables

VariableWhat it inserts
{date}Today’s date, as dd/MM/yyyy
{date:yyyy-MM-dd}Today’s date in the format you choose, for example 2026-10-29
{time}The time, as HH:mm
{time:HH:mm:ss}The time with seconds
{clipboard}The last copied text
{selection}The text selected when you open the palette
{uuid}A unique identifier, different at each insertion
{argument:Name}A value you type at each insertion
{cursor}Where the cursor lands after insertion

For dates and times, the format letters are: yyyy (4-digit year), yy (2-digit year), MM and M (month), dd and d (day), HH and H (24-hour hour), mm (minutes), ss (seconds). Other characters are copied as they are.

Variable names are not case-sensitive: {DATE} works too.

Asking for a value with {argument}

{argument:Client} asks you for a value at each insertion. If you write {argument:Client} twice, both places receive the same value.

What happens depends on where you insert:

  • Chrome extension palette: one field appears for each argument name. The text updates as you type.
  • Android keyboard, Windows bar, automatic expansion: no field. The argument stays empty and the cursor lands where it was. You type the value there.

Changing the result

Add | and a modifier inside the braces:

{clipboard | uppercase}
q={selection | trim | percent-encode}
{uuid | uppercase}

Available modifiers:

  • uppercase: all capitals.
  • lowercase: all lowercase.
  • trim: removes spaces at the start and end.
  • percent-encode: encodes text for a web address (key word becomes key%20word).
  • json-stringify: writes the text as a JSON string, in quotes, with special characters escaped.

You can chain several, from left to right. If a modifier name is unknown, the variable stays as written in the text, without an error.

Writing braces without a variable

If you want text that looks like a variable, double the opening brace: {{date} inserts as {date}. Braces that are not a recognised variable also stay as written: a JSON fragment such as {"a": 1} is unchanged.

Where each variable works

VariableChrome extensionWindows bar (Ctrl+Alt+Space)Android keyboard
{date}, {time}, {uuid}, {cursor}YesYesYes
{clipboard}Yes, after you grant the clipboard permission from the popupYesYes
{selection}Yes, in the paletteNo, emptyNo, empty
{argument:Name}Yes, with a fieldNo, empty: the cursor lands on itNo, empty: the cursor lands on it

Examples

  • A follow-up note: On {date} at {time}, {argument:Client} replied. {cursor}
  • A search link: https://www.example.com/search?q={selection | trim | percent-encode}
  • A ticket reference: TICKET-{uuid | uppercase}

Good to know

  • Variables are computed at each insertion. A {date} snippet gives the day’s date on the day you use it.
  • If a variable cannot be read (empty or inaccessible clipboard), it becomes empty instead of blocking the insertion.
  • Only the first {cursor} counts: later ones are removed.