Free, open-source, cross-platform text expansion for Linux and macOS
MuttonText is a privacy-first text snippet expansion tool that automates repetitive typing through intelligent keyword-to-snippet substitution. Built with native performance and Beeftext compatibility, MuttonText brings powerful text expansion to Linux and macOS users.
MuttonText monitors your typing and instantly expands predefined keywords into full text snippets. Type sig and get your full email signature. Type addr and get your complete address. All processing happens locally on your machine - no cloud, no telemetry, ever.
- Privacy First - All data stays local. No telemetry. No cloud. Ever.
- Native Performance - Sub-50ms substitution latency through Rust backend
- Beeftext Compatible - Import/export Beeftext libraries seamlessly
- Rich Variables - Date/time, clipboard, input dialogs, nested combos
- Combo Picker - Quick search window for instant snippet access
- Group Organization - Organize snippets into hierarchical groups
- Flexible Matching - Strict word-boundary or loose substring matching
- Application Exclusions - Auto-pause in password managers and other apps
- Automatic Backups - Never lose your snippet library
- System Tray Integration - Quick pause/resume and status at a glance
Screenshot placeholder - coming soon
curl -sL https://api.github.com/repos/Muminur/MuttonText/releases/latest \
| grep "browser_download_url.*\.dmg" \
| cut -d '"' -f 4 \
| xargs -I {} sh -c 'curl -L -o /tmp/MuttonText.dmg "{}" && open /tmp/MuttonText.dmg'This downloads the latest .dmg, mounts it, and opens it so you can drag MuttonText.app to your Applications folder. Grant Accessibility permissions when prompted.
curl -sL https://api.github.com/repos/Muminur/MuttonText/releases/latest | grep "browser_download_url.*\.deb" | cut -d '"' -f 4 | xargs -I {} sh -c 'wget -q --show-progress -O /tmp/MuttonText.deb "{}" && sudo dpkg -i /tmp/MuttonText.deb && sudo apt install -f -y && rm /tmp/MuttonText.deb'If sudo can't prompt for a password (e.g. inside a non-interactive shell), replace sudo with pkexec for a graphical auth dialog.
This automatically downloads the latest .deb release, installs it, resolves any missing dependencies, and cleans up.
Linux (Debian/Ubuntu) - .deb package:
# Download latest release (check Releases page for current version)
wget https://github.com/Muminur/MuttonText/releases/latest/download/MuttonText_0.0.1_amd64.deb
# Install
sudo dpkg -i MuttonText_0.0.1_amd64.deb
# Fix any missing dependencies
sudo apt install -f -yLinux (Fedora/RPM):
wget https://github.com/Muminur/MuttonText/releases/latest/download/MuttonText-0.0.1-1.x86_64.rpm
sudo rpm -i MuttonText-0.0.1-1.x86_64.rpmmacOS:
# One-liner: download and open the latest DMG
curl -sL https://api.github.com/repos/Muminur/MuttonText/releases/latest \
| grep "browser_download_url.*\.dmg" \
| cut -d '"' -f 4 \
| xargs -I {} sh -c 'curl -L -o /tmp/MuttonText.dmg "{}" && open /tmp/MuttonText.dmg'
# Then drag MuttonText.app to Applications and grant Accessibility permissions when promptedNote: Versions in the URLs above (e.g.
0.0.1) may be outdated. The one-liner above always fetches the latest. You can also check the Releases page for the current version.
MuttonText checks for updates automatically on startup (configurable in Preferences → Updates). When an update is detected you can download it directly from within the app.
You can also update manually:
In-app update check (all platforms):
- Open MuttonText → Preferences (tray icon or menu)
- Go to the Updates tab
- Click Check for Updates
- If a new version is available, click Download Update
macOS — one-liner:
curl -sL https://api.github.com/repos/Muminur/MuttonText/releases/latest \
| grep "browser_download_url.*\.dmg" \
| cut -d '"' -f 4 \
| xargs -I {} sh -c 'curl -L -o /tmp/MuttonText.dmg "{}" && open /tmp/MuttonText.dmg'
# Drag the new MuttonText.app to Applications, replacing the old oneLinux (Debian/Ubuntu) — one-liner:
curl -sL https://api.github.com/repos/Muminur/MuttonText/releases/latest \
| grep "browser_download_url.*\.deb" \
| cut -d '"' -f 4 \
| xargs -I {} sh -c 'wget -q --show-progress -O /tmp/MuttonText.deb "{}" && sudo dpkg -i /tmp/MuttonText.deb && sudo apt install -f -y && rm /tmp/MuttonText.deb'Linux (Fedora/RPM) — one-liner:
curl -sL https://api.github.com/repos/Muminur/MuttonText/releases/latest \
| grep "browser_download_url.*\.rpm" \
| cut -d '"' -f 4 \
| xargs -I {} sh -c 'wget -q --show-progress -O /tmp/MuttonText.rpm "{}" && sudo rpm -U /tmp/MuttonText.rpm && rm /tmp/MuttonText.rpm'Linux (AppImage):
# Download new AppImage
curl -sL https://api.github.com/repos/Muminur/MuttonText/releases/latest \
| grep "browser_download_url.*\.AppImage" \
| cut -d '"' -f 4 \
| xargs -I {} sh -c 'wget -q --show-progress -O ~/Applications/MuttonText.AppImage "{}" && chmod +x ~/Applications/MuttonText.AppImage'Windows:
- Download the latest
.exeinstaller from the Releases page - Run the installer — it will automatically replace the existing installation
Linux (Debian/Ubuntu):
sudo apt remove mutton-textLinux (Fedora/RPM):
sudo rpm -e mutton-textmacOS:
# Drag MuttonText.app from Applications to Trash
# Optionally remove app data:
rm -rf ~/Library/Application\ Support/com.muttontext.app
rm -rf ~/Library/Preferences/com.muttontext.app.plist
rm -rf ~/Library/Caches/com.muttontext.app- Launch MuttonText - it will appear in your system tray
- Click the tray icon and choose "Open Main Window"
- Create your first combo:
- Keyword:
hello - Snippet:
Hello, World!
- Keyword:
- Type
hellofollowed by a space in any application - Watch it expand to
Hello, World!
All Platforms:
- Rust 1.78+ (latest stable recommended) - Install Rust
- Node.js 18+ - Install Node.js
- Tauri CLI:
cargo install tauri-cli
Linux (Debian/Ubuntu):
sudo apt install -y build-essential libssl-dev libgtk-3-dev \
libayatana-appindicator3-dev librsvg2-dev libwebkit2gtk-4.1-dev \
libxdo-dev libx11-dev libxcb1-dev libxcb-render0-dev \
libxcb-shape0-dev libxcb-xfixes0-dev libasound2-devLinux (Fedora):
sudo dnf install -y @development-tools openssl-devel gtk3-devel \
libappindicator-gtk3-devel librsvg2-devel webkit2gtk4.1-devel \
libxdo-devel libX11-devel libxcb-devel alsa-lib-develmacOS:
xcode-select --install# Clone repository
git clone https://github.com/Muminur/MuttonText.git
cd MuttonText
# One-command setup (installs Rust automatically if missing, checks all deps)
bash scripts/setup-dev.sh
# Run in development mode
npm run tauri dev
# Build for production
npm run tauri build
# Install the built package
# Linux:
sudo dpkg -i src-tauri/target/release/bundle/deb/MuttonText_0.0.1_amd64.deb
# macOS: open the generated .dmg from src-tauri/target/release/bundle/dmg/
open src-tauri/target/release/bundle/dmg/| Platform | Status | Notes |
|---|---|---|
| Linux (X11) | Full Support | Recommended desktop environment |
| Linux (Wayland) | Partial Support | Limited by Wayland security model |
| macOS 12+ | Full Support | Requires Accessibility permissions |
| Windows | Not Supported | Planned for future release |
Extend MuttonText with community-built integrations:
Use Claude to expand selected text dynamically. Select rough notes → type ;;email → Claude writes a polished email in-place.
bash integrations/claude-autokey/install.shTriggers: ;;email, ;;tldr, ;;reply, ;;fix
- CONTRIBUTING.md - Development guidelines
- CHANGELOG.md - Version history
We welcome contributions! Please see CONTRIBUTING.md for:
- How to report bugs and request features
- Development setup and workflow
- Code style and testing requirements
- Pull request process
MuttonText is licensed under the MIT License.
- Beeftext - Inspiration and feature reference
- Tauri - Cross-platform framework
- All our contributors