Terminal-only cross-platform text expander with global shortcut expansion.
Project description
Terminal Text Expander
A terminal-only, local-first text expander for macOS, Windows, and Linux.
Define snippets from the command line, run the daemon in the background, and type triggers anywhere on your system. When a trigger is followed by Space, Enter, or Tab, it is replaced with the saved text.
pipx install text-expander
text-expander install
text-expander add
Example:
;l<space>
expands to:
https://linkedin.com/in/yourprofile
Install
Recommended:
pipx install text-expander
text-expander install
With pip:
python -m pip install text-expander
text-expander install
From this repository:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
pip install -e .
On Linux, global keyboard capture may require additional system permissions depending on your desktop session. On macOS, grant Accessibility permissions to the terminal app that starts the daemon.
Commands
text-expander add
text-expander list
text-expander edit ;l
text-expander delete ;l
text-expander search linkedin
text-expander install
text-expander uninstall
text-expander start
text-expander stop
text-expander status
text-expander doctor
text-expander run
text-expander startup install
text-expander startup uninstall
text-expander export snippets.json
text-expander import snippets.json
text-expander backup
Storage
Snippets and runtime files are stored locally:
- macOS:
~/Library/Application Support/text-expander - Windows:
%APPDATA%\text-expander - Linux:
~/.config/text-expander
Set TEXT_EXPANDER_HOME=/path/to/dir to use a custom data directory.
No cloud services are used.
Notes
- Expansions are suppressed while the app is simulating replacement text to prevent recursive triggering.
- The daemon uses clipboard paste as the primary expansion path because it is faster and more reliable for long replacements. It restores the previous clipboard contents when possible.
- Startup registration uses LaunchAgents on macOS, the user Startup folder on Windows, and systemd user services on Linux.
pip installonly installs the CLI. Runtext-expander installexplicitly to register and start the background daemon.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file text_expander-0.1.0.tar.gz.
File metadata
- Download URL: text_expander-0.1.0.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01ee866e6896ddb3c979404061bf4ce87e5f227c4789d0e7037f41394712a8ab
|
|
| MD5 |
2f13a2eeb0c6f65f555a0584467eee84
|
|
| BLAKE2b-256 |
37f8fc12f518346d6ce61ddc5ca9ad3004075c5d194f4d5f2495dfb63be91180
|
Provenance
The following attestation bundles were made for text_expander-0.1.0.tar.gz:
Publisher:
publish.yml on MadhuSaini22/text-expander
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
text_expander-0.1.0.tar.gz -
Subject digest:
01ee866e6896ddb3c979404061bf4ce87e5f227c4789d0e7037f41394712a8ab - Sigstore transparency entry: 1417403182
- Sigstore integration time:
-
Permalink:
MadhuSaini22/text-expander@bdc5ea67ec12e989d736f60454f83c2b844a107f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MadhuSaini22
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bdc5ea67ec12e989d736f60454f83c2b844a107f -
Trigger Event:
push
-
Statement type:
File details
Details for the file text_expander-0.1.0-py3-none-any.whl.
File metadata
- Download URL: text_expander-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a33b25980745c44e4fca600e92779a0335946c7f613a54cd262c15aa9c6fca1
|
|
| MD5 |
4a944ff9c1862b0522a8fe072fed1f86
|
|
| BLAKE2b-256 |
3cfb15e39733375bfb0317d3a750bfc52512dc5fd2ca8b32ae0d27fbfd348e9a
|
Provenance
The following attestation bundles were made for text_expander-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on MadhuSaini22/text-expander
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
text_expander-0.1.0-py3-none-any.whl -
Subject digest:
7a33b25980745c44e4fca600e92779a0335946c7f613a54cd262c15aa9c6fca1 - Sigstore transparency entry: 1417403187
- Sigstore integration time:
-
Permalink:
MadhuSaini22/text-expander@bdc5ea67ec12e989d736f60454f83c2b844a107f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MadhuSaini22
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bdc5ea67ec12e989d736f60454f83c2b844a107f -
Trigger Event:
push
-
Statement type: