Pipes

A pipe changes a value before it's inserted. Add it after a | inside any token, and chain as many as you like.

{text name="Title" | lower | trim | kebab}
{clipboard | json-pretty}
{selection | ai:"Proofread"}

Built-in pipes

Case

PipeResult
upperUPPERCASE
lowerlowercase
titleTitle Case
sentenceSentence case
camelcamelCase
pascalPascalCase
snakesnake_case
kebabkebab-case
constantCONSTANT_CASE

Text and lines

PipeResult
trimRemoves spaces and new lines at both ends
sort-linesSorts lines
dedupe-linesRemoves duplicate lines
remove-empty-linesRemoves blank lines
join-linesJoins lines with a space, or join-lines:", "
reverseReverses the text
strip-diacriticsRemoves accents: café → cafe
ordinal3 → 3rd
regexFind and replace: regex pattern="\s+" replace=" "
mapSwaps a value for another: map:"Open=OPN, Closed=CLS"

Encoding

PipeResult
json-prettyFormats JSON
json-minifyMinifies JSON
json-stringEscapes text as a JSON string
base64 / base64-decodeBase64
url-encode / url-decodePercent encoding

AI

ai:"Preset name" runs the value through one of your AI presets. You can also give a prompt instead: ai prompt="Make it shorter".

Named pipes

Save a chain of pipes under a short name, then use it like any built-in pipe.

  1. Open Building Blocks ▸ Pipes.
  2. Click +.
  3. Name it slug and set the pipes to lower | trim | kebab.

Now use it anywhere:

{text name="Title" | slug}

The editor has a + button that lists every pipe, so you can build a chain by clicking.