GNOME overlay for AI-powered text rewriting. Press a shortcut from anywhere, paste or speak your text, pick a tone — result is on your clipboard.
Runs as a D-Bus service. GTK4 + Libadwaita. Supports OpenAI, Anthropic, Gemini, and Ollama.
yay -S castword-gnome-bin| Format | Download |
|---|---|
Debian .deb |
castword-gnome-2026-04-10-00.deb |
| AppImage | Castword-2026-04-10-00-x86_64.AppImage |
| RPM | castword-gnome-2026-04-10-00.rpm |
| Flatpak | xyz.shapemachine.castword-gnome-2026-04-10-00.flatpak |
| Source tarball | castword-gnome-2026-04-10-00.tar.gz |
Prerequisites: Python 3.11+, GTK4, Libadwaita, uv
# Arch
sudo pacman -S python-gobject
# Debian/Ubuntu
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1git clone https://github.com/Shape-Machine/castword-gnome.git
cd castword-gnome
make installmake install creates a .venv, installs the package, and registers the D-Bus service, desktop file, icons, AppStream metadata, and GSettings schema.
castword is activated via a custom GNOME keyboard shortcut:
- Open GNOME Settings → Keyboard → Custom Shortcuts
- Add a new shortcut:
- Name:
castword - Command:
castword(or the full path fromwhich castword) - Shortcut:
Super+Shift+W(or your preference)
- Name:
The app will prompt you to set a shortcut on first launch if none is configured.
API keys are auto-detected from your environment — no manual config needed if keys are already exported in your shell config.
| Provider | Environment variable |
|---|---|
| OpenAI | OPENAI_API_KEY |
| Anthropic | ANTHROPIC_API_KEY |
| Google Gemini | GEMINI_API_KEY or GOOGLE_API_KEY |
| Ollama | (none — runs locally) |
To store keys separately, create ~/.config/castword/.env:
echo 'OPENAI_API_KEY=sk-...' >> ~/.config/castword/.envSwitch provider and model in Preferences → Providers.
ollama serve
ollama pull llama3Then select Ollama in Preferences.
castword ships with seven built-in tones:
| Tone | Default | Purpose |
|---|---|---|
| Direct | ✅ | Remove hedging, say exactly what needs to be said |
| Technical | ✅ | Structured with headings/bullets, precise language |
| Professional | ✅ | Polished and human — emails, LinkedIn, client comms |
| Social | ✅ | Punchy, engaging, emoji-ok — posts and marketing |
| TL;DR | — | 1–2 sentence summary |
| Flirty | — | Fun |
| Playful | — | Fun |
Add, edit, reorder, or toggle tones in Preferences → Tones. Each tone has a name and a fully editable system prompt.
git clone https://github.com/Shape-Machine/castword-gnome.git
cd castword-gnome
make run| Command | Description |
|---|---|
make run |
Compile schema locally and launch |
make install |
Full system install |
make clean |
Remove __pycache__, .pyc, compiled schema, .venv |
make release VERSION=yyyy-mm-dd-NN |
Build and publish all package formats |
Bug reports and feature requests: github.com/Shape-Machine/castword-gnome/issues






