Get it on AppCenter Get it from the Snap Store

Snippet Pixie Demo

Your little expandable text snippet helper.

Save your often used text snippets and then expand them whenever you type their abbreviation.

For example:- "spr`" expands to "Snippet Pixie rules!"

For non-accessible applications such as browsers and Electron apps, there's a shortcut (default is Ctrl+`) for opening a search window that pastes the selected snippet.

The Search and Paste window opened with Ctrl+` (can be changed) is very convenient for quickly finding and pasting snippets, and shows the most recently used snippets first for quick access. Using Shift+Return or Shift+Click on an entry in the Search and Paste window will Shift+Ctrl+V paste, great for terminal emulators, vim etc.

Snippets can be imported and exported in a simple JSON format.

Supports placeholders:-

Date/Time: Insert the current or calculated date/time with configurable format.Clipboard: Insert the text contents of the clipboard.Snippets: Insert snippets in your snippets!Cursor: Set where the cursor should end up after the snippet has expanded.

Quick Start Guide

[more coming soon]

Choosing an Abbreviation

Abbreviations should be short, easy to remember and hard to trigger accidentally.

It helps if an abbreviation includes either a key word from the fully expanded text, or an initialization or acronym that is part of it.

For example, if you regularly wrote "Snippet Pixie" 😉 you might use "sp".

However, there are a lot of words that include the letter combination "sp", so there's a reasonably high chance that Snippet Pixie would expand that abbreviation when you didn't want it to.

So instead it's common to add a "trigger character" to the end of the abbreviation. This is commonly a character that isn't found in normal sentences such as "`" or "~" that is easy to find on your keyboard. Often just appending a space is enough, or doubling up characters.

I personally use "`" (commonly known as grav or backtick) a lot as it's a single keystroke on my British layout keyboard just below my Escape key. So for me "sp`" is a natural abbreviation for "Snippet Pixie".

However, I could see using "sp " or "spp" for the abbreviation.

If you do use a trailing space as your trigger character you might find it useful to include a trailing space in the text that is expanded, e.g. "sp " expands to "Snippet Pixie " as it's more natural when typing.


All placeholders are delimited (wrapped) by $$, with the placeholder name starting with an @ symbol.

For example, today's date can be inserted with $$@date$$.

Some placeholders allow for extra arguments when : follows their name and that is followed by the argument. For example a format for a date, or the abbreviation for a snippet. Check the following descriptions for each placeholder for more details.

To use $$ in your snippet body, escape the second $ with a backslash like so: $\$.


Quick Examples:

Today's date with system format: $$@date$$Today's date with custom format: $$@date:%Y-%m-%d %H:%M:%S$$Tomorrow's date with system format: $$@date@+1D$$Date 2 weeks from today with custom format: $$@date@+2W:%x$$Time 3 hours from now: $$@time@+3H$$
@time is an alias for @date, with one important difference, the default output if no format specified is the default time format (%X) rather than default date format (%x).

The optional format specified after : can take a format string as detailed in the GLib.DateTime.format function's docs.

The optional date calculation starts with an @ after the placeholder name, followed by a signed integer and unit. The unit types are as follows:

Y: YearsM: MonthsW: WeeksD: Daysh: Hoursm: Minutess: Seconds
You can apply more than one date calculation, for example +2h+30m adds 2 hours and 30 minutes to the current time.

You can use both positive (+) and negative calculations, for example -3D takes 3 days from the current date.


When $$@clipboard$$ is part of a snippet's body, when its abbreviation is expanded the current text contents of the clipboard will replace the placeholder.


You can have up to three levels of embedded snippets with the @snippet placeholder.

The abbreviation for the snippet to be embedded is entered after :, for example $$@snippet:sigg;$$ expands the snippet with abbreviation sigg; in place of the placeholder.


Adding $$@cursor$$ to a snippet's body will put the cursor in its place after expansion instead of at the end of the expanded text.

If $$@cursor$$ is entered more than once in a snippet's body or via snippet embedding, then the last occurrence of the cursor placeholder wins.

Command Line Options

com.github.bytepixie.snippetpixie [OPTION…]

Show Snippet Pixie's window (default action)

Start with no window

Fully quit the application, including the background process

Turn auto start of Snippet Pixie on login, on, off, or show status of setting

Shows status of the application, exits with status 0 if running, 1 if not

-e, --export=filename
Export snippets to file

-i, --import=filename
Import snippets from file, skips snippets where abbreviation already exists

If used in conjunction with import, existing snippets with same abbreviation are updated

Display version number

-h, --help
Display help