Skip to content

exteditor/ghostbird

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

Supports Thunderbird ESR Status: Beta Latest release

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 the latest ESR)

  • 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, running make will do, which is roughly equivalent to 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 Gray button in the Thunderbird mail compose window. (The default shortcut is ^Ctrl+⇧Shift+H)
    • If the connection is successful, the button will turn blue Blue button.
    • If the connection fails, the button will turn red Red button. 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 Vim-Ghost

    vimghost.webm
  • 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

See also a list of milestones.

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
  • βœ… Milestones 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) - Released

v0.3.0 (Beta) - Released

v0.4.0 (Beta) - Current

v0.5.0 (Beta) - 2025 Q4

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)

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

Services

Github Actions Status Reviewed by CodeRabbit Covered by Codecov Ask DeepWiki

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

Compose emails using your favorite text editor in Thunderbird πŸͺΊπŸ“«πŸ‘»

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages