Skip to content

exteditor/ghostbird

Repository files navigation

Ghostbird: GhostText for Thunderbird πŸͺΊπŸ“«πŸ‘»

Supports Thunderbird ESR
Status: Beta Latest release
Github Actions Status

Download on AMO

A GhostText implementation for the Thunderbird email client.

This repo contains an in-development Thunderbird add-on that works as a GhostText client in the mail compose window, so that users can write their emails in their favorite text editor like Vim (provided the text editor already has a GhostText add-on installed).

Requirements

  • Thunderbird 140 (We will mainly support ESR releases)

  • A text editor that has a GhostText server add-on installed and running:

    Sublime Text VSCodium Visual Studio Code GNU Emacs Vim Neovim Acme Helix $ANY_EDITOR

    The last two implementations can wrap any editor that blocks while editing.

Installation

logo

You can install Ghostbird in several ways:

Install within Thunderbird (Recommended)

  1. In Thunderbird, open Add-ons Manager.
  2. Search for "Ghostbird".
  3. Click the + Add to Thunderbird button.

Download and install manually

  1. Download the latest release from the Thunderbird add-on website or Github Releases.
  2. In Thunderbird, go to Add-ons Manager.
  3. Drag and drop the downloaded .xpi file into the Add-ons Manager window.

Alternatively, you can:

  1. Press βš™οΈ button at the top-right.
  2. Select Install Add-on From File... from the menu.
  3. Select downloaded .xpi file.

Build from source

  • Basically, make will do, which internally calls yarn install && yarn build.
  • See CONTRIBUTING.md to get started.

Usage

  1. Launch your favorite text editor.
  2. Start the GhostText server in your text editor (e.g., with :GhostTextStart in Vim).
  3. Press the gray Ghostbird button in the Thunderbird mail compose window. (The default shortcut is ^Ctrl+⇧Shift+H)
    • If the connection is successful, the button will turn blue .
    • If the connection fails, the button will turn red . Make sure that the GhostText server is listening. See Troubleshooting page of original GhostText.
  4. Write your email in the text editor.
  5. Close your text editor to stop Ghostbird.
  • Example using Notepad++ via GhostText-Any

    Screenshot using Notepad++ with GhostText-Any

How it works

flowchart LR
subgraph Thunderbird
    mailCompose@{label: Compose<br>Window}
    gtClient@{label: Ghostbird}
end

subgraph Your favorite text editor
    gtServer@{label: GhostText<br>Server}
    textEditor@{label: Text editor<br>screen}
end

mailCompose -->|Starts| gtClient
gtClient -->|Connects to| gtServer
gtServer -->|Shows Initial Text| textEditor
textEditor -->|Returns Edited Text| gtServer
gtServer -->|Updates| gtClient
gtClient -->|Updates| mailCompose
Loading

Roadmap

Legend

Mark Meaning Description
βœ… Done Released in previous versions
πŸͺΊ Experimental Released recently; please try and tell us if you notice something
🚧 WIP In development but not released
⬜ Planned Must be implemented to release the version
β›” Limitation The version will be released with this limitation

v0.0.1 (Alpha) - Released

  • βœ… Prepare the project skeleton (README, build, test, lint, debug, CI)
  • βœ… Start button on the toolbar
  • βœ… Edit plain text emails
  • βœ… Keyboard shortcuts
  • βœ… Roadmap and Project board
  • β›” Non-bidirectional: Thunderbird becomes read-only while Ghostbird is active
  • β›” No i18n: the UI is only in English*
  • β›” Quirky when editing HTML emails

*GhostText communicates only in UTF-8, so you can safely write emails in any language.

v0.1.0 (Alpha) - Released

v0.2.0 (Beta) - Released

v0.2.1 (Beta) - Current

v0.x.x (Beta) - 2025 Q4

v1.0.0 (Stable) - 2026 Q2

v1.x.x (Stable) - 2026 Q4

*Requires protocol extension and server-side support. I intend to develop one by forking GhostText-Any.

v2.x.x (Future)

  • Proper implementation as a GhostText client

    • ⬜ Cursor and selection synchronization
    • ⬜ Bidirectional editing; changes in Thunderbird are reflected in the text editor
  • ⬜ Better handling of conflicts, disconnection, and reconnection (possibly extending the protocol)

Non-goals

  • Editing text boxes other than the email compose window in Thunderbird
  • WYSIWYG editing for HTML emails
  • Thunderbird Mobile support

Contributing

If you like the idea, please:

Help wanted

We need help with:

FAQ

Is it safe to use?

  • I'd say yes, but save your work frequently since it may contain bugs and eat your email.
  • This add-on does not collect any personal data and can only connect to localhost. Attempts to send any data to external servers are blocked by Thunderbird's security model.
  • You can look inside the released .xpi files (which are just zip files) to verify that they match the build from the source code.
  • As for trustworthiness, the safest option is to wait until it reaches 1.0.0, as that indicates it has passed Mozilla's manual review.

Why not just fork the original GhostText add-on, or contribute to it?

How do I set up a development environment?

How do I troubleshoot connection issues?

How do I switch between HTML mode and Plain Text mode?

How can I support the project?

Please consider the following options:

If you've looked at the options above and still want to motivate the maintainer @snipsnipsnip specifically, you can tip some ETH.

Credits

Tools

Managed with Yarn rolled with barrelsby Typed with tsc Linted with Biome Tested with Vitest Bundled with tsdown Packaged with web-ext

License

License: MPL-2.0 License: GPLv3
Ghostbird is dual-licensed under (MPL-2.0 OR GPL-3.0-or-later). See also NOTICE.

About

Use your favorite text editor to write emails in Thunderbird πŸͺΊπŸ“«πŸ‘»

Topics

Resources

License

Contributing

Stars

Watchers

Forks