Skip to content

Wear OS Port #6969

Open
Open

Description

@xDazld

Checklist

  • I have used the search function to see if someone else has already submitted the same feature request.
  • I will describe the problem with as much detail as possible.
  • This issue only contains a request for one single feature, not multiple (related) features.

App version

6.602

Problem you are trying to solve

Currently, emails received through K-9 can only be manged through a notification that is sent on arrival (which was added as a fix to the related #619). However, other apps (i.e. Outlook) provide a version of their app that runs on a wearable, allowing emails in the inbox to be read and managed after their notification is cleared.

Suggested solution

A port has a long list of things that would need to be considered; this would be a long term goal (and not something I am asking for overnight).

Screenshots / Drawings / Technical details

No response

Activity

  1. JUhalt commented on Oct 3, 2026

    @JUhalt

    Hi Thunderbird team,

    I'd like to share a prototype for this issue and ask whether it's useful to you before proposing any code.

    Up front: this was vibe-coded. I built it with an AI coding assistant (Claude Code), directing it and testing the results myself. I've tried to follow AGENTS.md, and I'll disclose AI use on any PR. I understand AI help doesn't lower the review bar, and that you may prefer not to take AI-written code at all. That's completely fine.

    What it is: a Wear OS companion, working name "ThunderWren", in my fork:
    https://github.com/JUhalt/thunderbird-android

    • Phone-first: Thunderbird on the phone does all the syncing and sends the watch small inbox snapshots over the Wearable Data Layer. The watch never stores credentials or talks to a mail server. A standalone mode is deliberately left out; the RFC explains why.
    • On the watch: unified, Unread, Starred and per-account inboxes; each account's folders (sent only when opened); reading whole messages (fetched from the phone only when opened); read/star/archive/delete and swipe actions; mark all as read; open on phone; replies (voice, keyboard or ready-made, reviewed before sending, and sent by the phone); a Tile and a complication that follow the lock screen notification privacy setting; a few watch settings (like swipe actions); and a demo mailbox for trying it without a phone.
    • On the phone: a companion module only in the full flavor (a no-op module for foss), plus a reply action on Wear notifications.
    • Behind two feature flags: wear_companion and wear_notification_quick_reply, off by default and on only in Debug and Daily builds.
    • Written up as an RFC in your format:
      https://github.com/JUhalt/thunderbird-android/blob/main/docs/engineering/rfcs/0010-wear-os-companion.md

    Testing so far: I've tested it on my own Pixel 10 Pro Fold and Pixel Watch 5, and on paired emulators in Android Studio. It also has unit and UI tests.

    Trying it: the latest build is https://github.com/JUhalt/thunderbird-android/releases/tag/v0.1.0-beta7. The watch app has a demo mailbox, so it can be tried on a Wear OS emulator without a phone.

    Questions for you:

    1. Is a Wear OS companion something you'd accept from a contributor, or is it reserved for the team? If this belongs on Mozilla Connect rather than here, say so and I'll post it there instead.
    2. Does the phone-first approach in the RFC fit your plans? I'm happy to change it.
    3. If you're interested, how would you like it: the RFC first as its own PR, then small PRs (notification reply → phone companion → watch app)? Or would you rather treat the fork only as a reference?
    4. Naming and location: I assume the watch app would carry the Thunderbird name and live wherever you prefer. "ThunderWren" is just a working title.

    I won't open any PRs unless you say it's welcome. Thanks for Thunderbird!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: enhancementNew features or improvements to existing features.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions