Sendoff v0.2.0 — renamed from Rewrite
The project was renamed: Rewrite → Sendoff. Same editor, same database, new name.
The old name read as "AI paraphraser" — the one thing this editor deliberately is
not: it makes no network calls and has no API keys. It also collided with
OpenRewrite and with Microsoft 365's
"Rewrite" feature. Renaming before the project gets posted anywhere was the last
cheap moment to do it.
Upgrading from v0.1.x — your tabs move with you
The app identifier changed (com.rewrite.app → dev.sendoff.app), which means the
data directory changed too. You do not need to do anything: on first launch
Sendoff moves ~/.local/share/com.rewrite.app to ~/.local/share/dev.sendoff.app
before it opens anything. It only moves when the old directory exists and the new
one does not, so it can never overwrite newer data, and it is safe to run twice.
Same for source builds — ./install.sh does the move as well, and refuses to run
while the app is open.
The database itself is untouched: same schema, same version, and it is still named
rewrite-db internally on purpose — that string is a path to your data, not a label.
Rolling back to a v0.1.x build works, as long as you move the directory back.
Download
Sendoff_0.2.0_amd64.AppImage — x86_64 Linux.
sha256 bcaff222dab8a2ea8870043da4efb47d7d1c436f5edb7282cc9a3e52a8a52b77
Needs glibc ≥ 2.35 — Ubuntu 22.04+, Debian 12+, Fedora 36+, Arch. Built in an
Ubuntu 22.04 container for that reason: an AppImage bundles its libraries but not
glibc, so building on a rolling distro would produce a file that only runs on
rolling distros.
Verified before publishing: the maximum GLIBC_* required across all 167 bundled
libraries is 2.35, and on a container with zero WebKit and zero GTK packages
installed it gets all the way to "Failed to initialize GTK" — it stops at the
missing display, not at a missing symbol.
It expects a normal desktop system for the libraries AppImage deliberately does not
bundle (graphics and text shaping: libGL, libEGL, libgbm, libdrm, libX11,
libX11-xcb, libxcb, libfontconfig, libfreetype, libharfbuzz, libfribidi,
libexpat). Any Linux desktop has them; a bare container does not.
⚠️ Don't mix the AppImage and a source build on the same machine. The AppImage
bundles WebKitGTK 2.50, while current distributions ship 2.52+, which writes
IndexedDB in a newer metadata format and silently upgrades the database the first
time it opens it. After that the AppImage can no longer read it and shows an empty
editor plus a storage error. Your data is intact and is never overwritten — when
Sendoff cannot read, it stops writing altogether. Go back to the build you were
using and your tabs are there.
Also in this release
Ctrl+Shift+,/Ctrl+Shift+.move the current tab along the bar, so reordering
no longer needsPgUp/PgDn— those live on a function layer on 60% keyboards.- Dragging a tab one position to the right now actually moves it. It had been a
mathematical no-op since the beginning: the tab was removed, the target slid into
the freed slot, and inserting "before the target" put it back where it started. - Typing
/at the start of a line or after a space opens an inline menu — your
trigger phrases first, then markdown scaffolding. A slash inside a word (src/lib,
12/08) stays plain text. - The window's
app_idis nowsendoff-desktopand the desktop entry's
StartupWMClassfinally matches it — they never did before, so window rules and
launcher icon association can now be written against it.
Only the AppImage is published. The .deb and .rpm come out of the same build but
have never been installed on a Debian or Fedora system, and shipping untested
packages is a promise this project cannot back.
Previous releases (v0.1.0, v0.1.1) are left exactly as they are — the sha256
recorded in their notes stays true. They are named Rewrite_* because that is what
the project was called then.