Exporting and Importing Your Caddy Snippet Library

Caddy 1.1.0 added a simple way to back up or move your entire snippet library: export it to a single block of plain text, and import it the same way. No server, no account, no file format to fight with — just text you can paste anywhere.

Exporting

Exporting copies your whole library to the clipboard as one text block, with each snippet separated by a line containing only ---. From there you can paste it into a notes app, a password manager, an email to yourself — anywhere plain text is welcome.

The format

Each snippet block can optionally start with metadata lines, each in the form #key: value:

#label: Welcome message
#color: 3
#pin: true
Hello, welcome to our service!
---
#label: Address
#color: 1
#rank: 42
123 Main St, Suite 400.
---
Thanks for reaching out, I'll get back to you shortly.

Supported keys:

  • #label: some text — the snippet’s label, to the end of the line
  • #color: 1 — a color index, as numbered in the edit screen (this is a plain integer, so it may point to a different color if the color list ever changes between app versions)
  • #pin: true — whether the snippet is pinned
  • #rank: 42 — the internal tap counter used for frequency sorting

Metadata is only recognized at the very top of each block. The moment a line doesn’t start with #, Caddy stops looking for metadata — everything after that, including any line that happens to start with #, is treated as literal snippet text. That third example above has no metadata at all — just a plain snippet.

Importing

Importing is the reverse: paste a block of text formatted this way into the import screen, and Caddy splits it on --- (on its own line) to create one snippet per segment, applying any metadata it finds at the top of each.

The one edge case

Because --- on its own line is the separator, a snippet whose text genuinely contains a line that’s just three dashes will get split in the wrong place on import. There’s no escaping in the format today — if you hit this, swap --- for something else (----, --, or any string that won’t collide) before exporting, and revert it after importing.

Why plain text, not a file

This is deliberately clipboard-based rather than file-based. It means moving your library is as simple as copy and paste — no share sheet, no file picker, no app permissions to grant. If you need full-fidelity structured backups down the line, that’s a different, JSON-based feature — this format optimizes for “get my snippets out and back in” with the least friction possible.

See what else shipped in this release on the Caddy 1.1.0 announcement.