Auto Expander

by jeansordes
5
4
3
2
1
Score: 39/100

Description

Reviews

No reviews yet.

Stats

0
stars
367
downloads
0
forks
9
days
9
days
9
days
3
total PRs
0
open PRs
0
closed PRs
3
merged PRs
32
total issues
17
open issues
15
closed issues
1
commits

Latest Version

9 days ago

Changelog

0.5.3 (2026-09-25)

Improvements

  • add complete installation, configuration, usage, and privacy documentation
  • align the manifest and settings interface with Community directory requirements
  • remove leftover sample command and status bar code
  • normalize user-defined configuration file paths

README file from

Github

Auto Expander

Auto Expander replaces short triggers with reusable text snippets while you type. It works on desktop and mobile, supports literal and regular-expression triggers, and can run Obsidian commands after an expansion.

Features

  • Expand snippets instantly or after pressing Space, Tab, Enter, or Backspace.
  • Use literal triggers or regular expressions.
  • Place the cursor anywhere in the replacement with $0.
  • Reuse regular-expression capture groups such as $1 in replacements.
  • Run one or more Obsidian commands after an expansion.
  • Keep snippets in a JSONC configuration file inside your vault.
  • Reload snippets automatically when the configuration file changes.

Installation

Community plugins

Once Auto Expander is listed in the Community plugins directory:

  1. Open Settings → Community plugins.
  2. Select Browse and search for Auto Expander.
  3. Select Install, then Enable.

BRAT

Until the community listing is available, install Auto Expander with BRAT:

  1. Install and enable BRAT.
  2. In BRAT settings, select Add Beta plugin.
  3. Enter https://github.com/jeansordes/auto-expander.

Getting started

  1. Open Settings → Auto Expander.
  2. Select Create default file. The plugin creates auto-expander-config.md in the root of your vault.
  3. Edit the JSONC array in that file and save it. Changes are loaded automatically.

A minimal configuration looks like this:

[
  {
    // Expands immediately after typing "btw".
    "trigger": "btw${0:instant}",
    "replacement": "By the way$0"
  },
  {
    // Expands when Space is pressed after "addr".
    "trigger": "addr${0:space}",
    "replacement": [
      "123 Example Street",
      "Paris, France$0"
    ]
  }
]

The configuration can be a .md or .json file. In a Markdown file, place the array in a json code block. JSONC comments and trailing commas are supported.

Snippet format

Each snippet accepts the following fields:

Field Required Description
trigger Yes Literal text or a regular expression wrapped in /.../. Add a cursor marker to select the activation method.
replacement No A string or array of lines to insert. Use $0 for the final cursor position.
commands No An Obsidian command ID or array of command IDs to run after replacement.

Activation methods

Add one or more activation methods to the trigger's cursor marker:

  • ${0:instant} — expand as soon as the trigger is typed.
  • ${0:space} — expand when Space is pressed.
  • ${0:tab} — expand when Tab is pressed.
  • ${0:newline} or ${0:enter} — expand when Enter is pressed.
  • ${0:backspace} — expand when Backspace is pressed.

Multiple methods can be combined, for example ${0:space,tab}. A literal trigger without a cursor marker expands instantly.

Regular-expression triggers

Wrap a trigger in forward slashes to treat it as a regular expression:

[
  {
    "trigger": "/Hello, (.+)${0:newline}/",
    "replacement": "Welcome, $1!$0"
  }
]

Regular expressions run locally against the editor content. Avoid patterns with catastrophic backtracking; Auto Expander stops long-running matching attempts and shows a notice.

Running commands

Use command IDs from Obsidian or another installed plugin:

[
  {
    "trigger": "/today${0:instant}",
    "replacement": "<% tp.date.now(\"YYYY-MM-DD\") %>$0",
    "commands": "templater-obsidian:replace-in-file-templater"
  }
]

The Command delay setting controls the delay between multiple commands.

Privacy

Auto Expander works entirely inside your vault. It does not make network requests, collect telemetry, or access files outside the vault.

Development

Requirements: Node.js 18 or later and npm.

npm install
npm run ci

Use npm run dev for a watch build. Production releases are built with npm run build and include main.js, manifest.json, and styles.css as individual GitHub release assets.

License

MIT