Skip to main content
Import/Export requires a paid plan. Pro unlocks Import and Export from the Settings → Data section.

Overview

Vowen stores all your customisations in a single JSON file you can export, share, and re-import on another machine. The same file format is used whether you’re:
  • Migrating from one computer to another
  • Sharing a curated pack of expansions with your team
  • Building a starter pack programmatically (e.g. asking an LLM to generate one)
The importer never overwrites existing items. Anything that already exists in your settings (matched by shortcut, name, or trigger) is skipped — only new items are added.

How to import

  1. Open Vowen → Settings
  2. Scroll to the Data section
  3. Click Import Data
  4. Drop your .json file onto the dropzone (or click to browse)
  5. Review the preview — Vowen shows the count of each item type found in the file
  6. Click Import to confirm

How to export

  1. Open Vowen → SettingsData section
  2. Click Export Data
  3. Choose where to save the resulting .json file
The export includes every customisation listed in the file format below.

File format

An import file is a single JSON object. Every key shown below must be present even if its value is an empty array — the importer validates the shape before parsing the contents.

Required top-level keys

If any of dictionary, threads, or workflows is missing, the import is rejected with the message “This file doesn’t appear to be a Vowen export.”

Expansions (rich text supported)

Expansions are the most flexible item type and the only one alongside threads that supports rich text (bold, lists, links, headings, colours, highlights, alignment).

Schema

Shortcuts already present in your settings are skipped on import. If you want to update an existing expansion, delete it first in the app, then re-import.

Plain expansions

For plain expansions, body and replacement are identical.

Rich-text expansions (HTML)

When format is "html", the body is parsed as an HTML fragment by Vowen’s rich editor and the rich version is placed on the OS clipboard. Apps that read the rich slot (Gmail, Notion, Apple Mail, Slack rich compose, Word, Google Docs) receive the formatted version; apps that only read plain text (Terminal, code editors, <input> fields) get replacement.

Supported HTML

Vowen’s editor is built on Tiptap with the StarterKit, Link, TextStyle, Color, Highlight, and TextAlign extensions. The following tags round-trip cleanly:

Special characters

Use HTML entities inside body for any character that has meaning in HTML: In replacement (plain text) you can use the literal characters directly — no escaping needed.

Rich expansion example

Dynamic tokens

Both plain and html bodies support these tokens, which are resolved at expansion time:

Other item types

Dictionary

Vocabulary words that bias transcription accuracy.
Existing words are skipped by case-insensitive match on text.

Threads

Voice-triggered text replacements applied during transcription.
Threads also support rich text (format: "html" with body as HTML), following the same conventions as expansions. Existing threads are skipped when both trigger and replacement are exact matches.

Workflows

  • builtin entries only flip the enabled state of workflows that ship with Vowen; unknown ids are ignored.
  • custom entries are added as new workflows. Existing custom workflows are skipped by case-insensitive name match.

Custom utilities

Existing utilities are skipped by case-insensitive name match. After import, the keyboard hook is automatically re-registered with the new hotkeys.

Validation rules

The importer enforces these rules and surfaces a single error if any fail:
  • The file extension must be .json.
  • The file must parse as valid JSON.
  • _vowen must be true.
  • dictionary, threads, workflows, workflows.custom must all be arrays/objects of the correct shape.
  • Each expansion must have a shortcut (string) starting with : and either body or replacement non-empty.
  • Each thread must have trigger and replacement as strings.
  • Each custom workflow and utility must have a name string.
Malformed individual entries are silently skipped — they don’t fail the whole import.

Minimal example (just expansions)

A valid file can contain expansions only. The other keys must still be present as empty arrays:

Generating a file with an LLM

If you have a list of shortcuts in any format (a spreadsheet, a Word doc, a wiki page), you can hand it to ChatGPT, Claude, Gemini, or any other LLM along with the prompt below. The model will produce a ready-to-import .json file.
Copy the prompt below verbatim, paste your source material under My shortcuts at the bottom, and ask the model to return only the JSON inside a code block. Save the response as vowen-import.json and drop it into Vowen’s Import Data dialog.

Troubleshooting

The file is missing _vowen: true or one of the required top-level keys (dictionary, threads, workflows). Check that all keys from the file format section are present, even as empty arrays.
One of the required keys exists but is the wrong type. dictionary and threads must be arrays; workflows must be an object containing a custom array.
The file doesn’t parse as JSON. Common causes: trailing commas, unescaped quotes inside body strings, smart quotes around keys. Paste the file into a JSON validator to locate the syntax error.
Items with shortcuts/triggers/names that already exist are skipped — the success toast shows how many were added. Delete the existing entry in the app first if you want to replace it.
The target app doesn’t support rich paste (Terminal, code editors, single-line inputs). Vowen falls back to the replacement string in these apps — this is expected behaviour.