The overall attachment manager & viewer: search, filter, print, save, paste attachments from all chosen mail folders. View in Thunderbird: PDF, Images + HEIC, Office (DOCX, XLSX), CSV, ZIP, GEAB, ... Organize in containers to show, print or backup.
Stop digging through mail for attachments: find any file from any selected folder in seconds – without opening a single message.
Att-Hub is the central attachment manager for Thunderbird: it collects every attachment from your chosen folders into a visual gallery – searchable, filterable, instantly at hand. The invoice as PDF? Vacation photos, even HEIC from your iPhone? That Word document or a ZIP full of paperwork? Att-Hub renders almost any format right inside Thunderbird – completely local, no cloud, no uploads, no extra software.
The areas at a glance – and what they do:
The Gallery (Archive): Every attachment from all watched folders as a tile grid with preview images. Freely adjustable tile size, light and dark themes. Optionally run several Att-Hub tabs or windows side by side – ideal for multi-monitor setups.
Search & Find: Full-text Deep Search scans file names, metadata AND file contents of PDFs, Office documents and text files – with relevance sorting. Smart filters for file type, sender, inbox/sent. Recent searches stay one clock-icon click away, and the gallery remembers your scroll position. One click jumps straight to the original mail.
The View Mode: While reading a mail, open that mail's attachments in an instant – right inside Thunderbird, without saving them first or launching external software. Read a PDF, flip through an Office document, zoom into a photo: it all stays in the add-on.
The Preview: PDFs, all common image formats – including HEIC/HEIF from your iPhone –, Office documents (DOCX, XLSX, CSV), videos, TXT/HTML, ICS invites and VCF cards are rendered locally; TIFF/TGA too (with page navigation for multi-page TIFFs), plus GAEB files. Focus Mode offers full-screen preview with smooth zoom and scrolling, rotation, in-document search (Ctrl+F) and page snapshots at selectable DPI.
The Archive Browser: Browse ZIP and 7z attachments directly inside Thunderbird. Real folder structure with clickable breadcrumb navigation, ZIP-in-ZIP nesting, password prompts for encrypted archives and pseudo icons per file type.
The Draft Mode: While composing, the Draft View accompanies you – every attachment of the draft as a preview gallery. Reorder via the grip handle (drag & drop with edge auto-scroll), insert new files from the clipboard or via drag & drop. Optionally auto-convert, shrink or rename images on import – multi-page TIFFs and animated GIFs as first page/frame only or as separate images.
The Image Editor: A complete tool within the tool – for received attachments just as for drafts. Crop, rotate, draw, annotate, censor, adjust brightness/contrast/sharpness. Use images as shape fills (Fill/Stretch/Tile), scale proportionally, store stamp presets including colors, text and fills. The result replaces the attachment, lands as a new file in the draft, on disk or as a new mail. Even PDF and Office pages can be captured at selectable DPI and edited on pixel level.
Shrink & Convert: Reduce or re-encode attachments right inside the draft – JPEG/PNG/PDF output, quality in fine steps, transparency flattening, optional keeping of original files.
Bundle, Print, Send: Select multiple attachments and download them as ZIP (optionally AES-256 encrypted), merge them into a PDF, print single files or whole grids, or attach them straight to a new mail. Or draw a quick note and attach it instantly.
The Containers: Organize attachments with drag & drop into virtual containers – for collecting, backup or later use.
Your data stays yours: Everything runs locally inside Thunderbird – no uploads, no tracking. Only exotic formats (CAD/DWG/DXF, older Office formats, PPTX) can optionally go through an external viewer service of your choice – configurable, opt-in per click.
Att-Hub grew out of my own need for a better attachment workflow in Thunderbird – I use it every day. If it helps you too, even better! Questions, ideas and bug reports are welcome: thrilldroid@gmail.com
Developer’s Comments
Att-Hub was born out of my own need for a better attachment workflow — I use it every day myself. If it helps you too, even better! Questions, ideas or bug reports are welcome: thrilldroid@gmail.com
Version Information
Version 3.0.8
4.8 MiB
Works with
Thunderbird 115.0 and later
============================================================ Att-Hub 3.0.8 - Release Notes All changes since the published version 3.0.1 (Intermediate versions 3.0.2 through 3.0.7 were never published - their complete content is included here, see the "Also new" section further below) ============================================================
OVERVIEW - All new features since 3.0.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Surface & integration: - NEW 3.0.8: New colored add-on icon - the familiar 3x3 tile wave now rendered in diagonal blue bands instead of black - NEW 3.0.8: No experiment API anymore - Att-Hub is a pure WebExtension again, without privileged parts (the short-lived navigation-bar hiding from the never-published versions 3.0.6/3.0.7 was dropped; Thunderbird's navigation bar stays visible, as in every add-on tab) - Cards are dragged by a small grip icon in the top-left corner - the rest of the tile keeps its normal pull/pan scrolling; the grip only appears where dragging makes sense (draft: reorder / archive: drop into containers) - Status messages (sorting, attaching, converting) shown as a floating box - always visible, without shifting the tiles
Editor & annotations: - Use clipboard or file images as shape fills - including circles and freehand shapes; fit modes Fill (proportional) / Stretch / Tile with a size slider - Transparent image fills show real transparency; the drop shadow follows the visible image silhouette - Proportional scaling with Shift/Ctrl while dragging corner handles; image fills flip when a corner is dragged past the opposite corner - Per-object "No Adjustments" button: image corrections can optionally affect every element (shapes, text, image fills) - Frame width 0 possible; transparency sliders go all the way to 0 (object and fill opacity) - Text boxes: left/center/right alignment buttons - Multi-selection shows only shared properties; custom readable crosshair cursor - HEIC/HEIF images are converted automatically on import; paste-error modal with "Open File"/"Paste again" buttons
Image adjustments & performance: - Brightness lifts bright areas more gently; clicking an adjustment value (the "0" label) resets the slider - Adjust sliders smooth again (vector redraw only when needed, one repaint per frame) - Bugfix: polygons and freehand objects rotated twice on image rotation
Presets: - Complete preset rework: colors are stored; image (as data URL) and text can optionally be included - stamp presets; (txt)/(img) marks in the dropdown - "# Clipboardpaste" system preset for clean image drops; "# Initial" reliably selectable again; preset logic fixed
Draft, attachments & file formats: - Reorder draft attachments via grip-drag - with edge auto-scroll; drops onto the same position, text fields or containers are cleanly ignored (no reload, no stray text, no duplicates) - Image-import settings now apply to all import paths (paste, drop, file picker, draft attachments); Convert, Shrink and Rename combine independently - rename-only never touches the file - Multi-page TIFFs and animated GIFs: on import choose first page/frame only or all pages as separate images - Info dialog shows image pixel dimensions; it opens instantly - dimensions fill in asynchronously with a loading indicator (HEIC and very large files no longer block) - Newly attached and moved cards are activated and scrolled into view automatically - Bugfix: duplicate attachments on draft import caused by overlapping processing runs - Edit ZIP entries directly in the draft editor; clickable ZIP breadcrumb - Full TIFF and TGA support (incl. multi-page TIFFs as page-wise documents); Shrink/Convert with format and quality selection + flatten color; Make PDF with ICS/VCF cards + HEIC sniffing; Make ZIP keeping the order - ZIP/7z browser with folders + type-specific pseudo icons; TXT/HTML with editor/browser look; online viewer also in drafts and ZIP archives; Edit Page with DPI dialog; sharp Office thumbnails + DOCX "N PAG." badge - Context bar: uniform 24x24 icon buttons; crop-ratio/text buttons look like real buttons
NEW IN 3.0.8 ~~~~~~~~~~~~
New icon The add-on icon is now colored: the familiar 3x3 tile wave (growing tiles with an opacity ramp) appears in diagonal blue bands - from light sky blue at the top left to deep indigo/violet at the bottom right. Applies to the toolbar buttons, the add-on manager and the ATN listing.
Experiment API completely removed The experiment API introduced in the (never published) versions 3.0.6/3.0.7 (api/attHubChrome/) was dropped and fully removed: manifest.json no longer contains "experiment_apis" or "strict_max_version", the api/ folder and all call sites are gone. Consequences: - Att-Hub is a pure WebExtension again - no privileged manifest fields, no generic "full access" install prompt - Thunderbird's navigation/location bar stays visible in the Att-Hub tab - as it does in every regular add-on tab (Thunderbird forces it on for moz-extension: pages) - The drag guard that suppressed tab switching while dragging over the tab strip is gone - behavior matches versions <=3.0.5 - No version expiry via strict_max_version anymore
NEW IN 3.0.7 ~~~~~~~~~~~~
Grip-based drag & drop Cards are dragged only via a small grip icon (six dots) in the top-left corner. The rest of the card keeps the familiar pull/pan scrolling - no more conflict between scrolling and dragging. The grip only appears where dragging makes sense: in drafts for reordering (while the container sidebar is closed) and in archive view for dropping into containers (while the sidebar is open, after its expand animation).
Clean drop behavior Invalid drop targets are actively blocked: drag payloads can no longer land as text in the search field or other inputs, and the browser shows the "not allowed" cursor. The drag uses a private MIME type - drops outside Thunderbird or onto foreign targets are simply inert. Dropping onto the dragged card itself, or back into an unchanged position, is ignored instead of triggering a needless reload. Draft attachments cannot be dropped into containers; the "Add Container" button is hidden in draft mode.
Edge auto-scroll while dragging When a dragged attachment approaches the top or bottom edge, the area scrolls on its own - as usual in desktop programs. Applies to the draft grid (reorder) and the container list, with separately tuned speeds.
Floating status box "Sorting", "Adding files", "Converting images" and similar statuses appear as a floating, framed box centered in the viewport with the loading logo - visible regardless of where the add card currently sits, and without shifting any tiles.
Card focus after actions Newly attached files (paste, drop, file picker, draft import) automatically become the active card and scroll into view once loaded. After a reorder, the first moved card is activated.
Image import: independent switches The settings section is now called "Image Import" and applies to ALL import paths: paste, OS file drop, file picker and attachments already present in drafts. "Convert", "Shrink" and "Rename" combine independently: - Rename only: the file is just renamed - no conversion, no decoding (HEIC stays HEIC) - Shrink only: resizing keeps the original format and name where possible - Convert only: format change without renaming - Combinations multiply accordingly Includes the Autoformat setting (JPEG/PNG/original) and an adjustable JPEG quality.
Multi-page images and animated GIFs When a multi-page TIFF or an animated GIF goes through processing (Convert or Shrink enabled), a dialog asks: first page/frame only, or all pages as separate images - the choice applies to the whole batch. Importing all pages creates files with _p1, _p2, ... suffixes (or a continuing Autoname counter); in the draft scan the first page replaces the original in place and further pages are inserted right behind it. With rename-only, the file stays untouched (multi-page/animated). GIF frames are decoded via the built-in ImageDecoder API - no new library.
Info dialog: pixel dimensions without waiting The info dialog now shows a "Dimensions" line (W x H px) for images. It opens instantly - expensive decodes (HEIC, very large files) run asynchronously while a small loading indicator spins in the line; on failure the line disappears cleanly. Header-based (fast) for PNG/JPEG/WebP/BMP/AVIF, GIF, TIFF (IFD tags) and TGA; HEIC via the decoder.
Bugfix: duplicate attachments on draft import The draft import processing could run multiple times in parallel (poller vs. a waiting dialog): second runs with stale attachment IDs appended replacements instead of replacing - up to 12 attachments from 4 source files. A run guard now prevents overlapping processing.
TECHNICAL ~~~~~~~~~
- manifest.json: "experiment_apis" block and "strict_max_version" removed; version 3.0.8. - icon.svg: colored variant (per-tile diagonal fill, five blue/indigo stops). - api/ folder removed (experiment API dropped). - background.js: the three browser.attHubChrome?.refresh?.() calls after tabs.create removed. - tab.js: the two browser.attHubChrome?.setCardDragActive() calls (dragstart/endDnd) removed. - renderer.js: .card-grip (draggable) + CARD_DRAG_MIME ("application/x-att-hub-cards") instead of text/plain - external targets ignore the payload. Drop targets carry data-drop-ok. - tab.js (DnD): global dragover/drop guard (marked targets only, plus the draft grid); dragged group's IDs remembered -> self-drops/drops onto dragged cards ignored and the indicator hidden; initDnDScrollZones covers #gridContainer + #containerList (RAF loop, separate max speeds); pendingFocusFilename activates the new/moved card after loadData/applyFilters (via filename, since compose attachment IDs change on re-attach); floating reorder loader (position:fixed, pointer-events:none). - containers.js: draft drop handler for containers removed (draft cards may not go into containers); remaining drop targets marked data-drop-ok. - ui_handlers.js: draftImportRunning guard against parallel import runs; processImportedImage returns arrays (multi-page split), rename-only skip logic; attachOSFilesToDraft and processDraftImageImportsImpl handle N results (first page replaces in place via replaceComposeAttachmentPreservingOrder, further pages via insertComposeAttachmentAfter); loop-wide existingNames/ counterRef; showFloatingStatus as a floating status box (replaces showAddCardStatus); sidebar toggle syncs dnd-able delayed to the expand animation. - actions.js: shrinkImageBlobAllPages - encodes every page/frame individually (same format/quality rules). - exotic_image.js: isGifName, animatedFrameCount, decodeGifFrames via the ImageDecoder API (guarded, static/ null fallback). - dialogs.js: imageDimensions(item) - createImageBitmap for common raster formats, GIF header, TIFF IFD 256/257, TGA header, HEIC via decodeHeicToJpeg; showItemInfo builds the dimensions row with an inline loader and fills it asynchronously (fillDimsAsync); the row disappears on failure. - tab.html: settings section "Clipboard Image Paste" -> "Image Import" (Autoformat, JPEG quality, Autoname, Convert/Shrink/Rename switches). - style.css: .card-grip (semi-transparent, hover emphasis), .grid-loader-inline, draft hiding of #addContainerBtn. - No new permissions, no new libraries.
ALSO NEW - the never-published intermediate versions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Details in each version's own notes file; summaries below)
From 3.0.7: - Content as described under "NEW IN 3.0.7" above: grip drag & drop, drop guards, edge auto-scroll, floating status box, card focus, image-import settings, multi-page TIFF/animated GIF import, info-dialog dimensions, draft- import race fix. (The experiment API that version also contained was removed again in 3.0.8 - see NEW.)
From 3.0.6: - Only the experiment API for hiding the navigation bar - dropped/removed completely in 3.0.8; nothing of that version remains.
From 3.0.5: - Proportional scaling with Shift/Ctrl while dragging corner handles (aspect ratio for rect/ellipse/censor, direction for line/arrow/measure; freehand inverted: proportional by default, free per axis with the modifier) - Image flipping: dragging a corner past the opposite corner mirrors image fills (flipX/flipY, reversible, persists) - Preset logic repaired: preset content (text/image) is stamped onto newly drawn objects; "# Initial" is reliably selectable again - Preset save dialog: "Include image fill (stamp)" (default on) + "Include text content" (default off); colors are part of presets again - (txt)/(img) marking in all preset dropdowns - "# Clipboardpaste" now offered for pure-rect selections only (it used to set lineWidth 0 on arrows) - Context bar on multi-selection shows only shared properties; "No Adjustments" hides when a censor object is selected - Text boxes: left/center/right alignment buttons - Transparency slider reaches 0; brightness lifts highlights more gently (contrast compensation fades toward white) - Paste-failure modal with "Open File"/"Paste again"; HEIC/ HEIF import via the bundled heic-to lib (dynamic import on canvas-decode failure) - Custom readable crosshair (black + white halo) as draw-readiness cursor for all drawing tools
From 3.0.4: - Editor: per-object "No Adjustments" button replaces the global "Apply to pasted images" checkbox - image corrections can optionally affect EVERY element (shapes, text, image fills) - System preset "# Clipboardpaste": pasted images drop cleanly without frame/shadow - overridable by saving a preset, just like "# Initial" - Stamp presets: image fills, element text and the No-Adjustments state are stored in presets (image embedded as data URL - portable, no file path needed) - Transparent image fills show real transparency; the drop shadow follows the visible image silhouette - Clicking an adjustment value (the "0" label) resets the slider - Performance: adjust sliders are smooth again - vector redraw only when needed, one repaint per frame - Bugfix: polygons and freehand objects rotated twice on image rotation - Context bar: uniform 24x24 icon buttons; crop-ratio and text buttons look like real buttons
From 3.0.3: - Editor: use clipboard or file images as shape fills - including circles and freehand shapes - New fit modes for image fills: Fill (proportional), Stretch, Tile with a size slider - "Apply to pasted images" (superseded in 3.0.4 by the per-object toggle) - Frame width 0 possible (as long as a fill keeps the shape visible); fill transparency down to 0 - Edit ZIP entries directly in the draft editor - the ZIP stays untouched, the result is inserted behind it - Clickable ZIP breadcrumb
From 3.0.2: - TIFF and TGA: thumbnail, Focus View, print, edit; multi-page TIFFs as page-wise documents - Shrink/Convert: format selection (JPEG/PNG/PDF), JPEG quality in 1% steps, flatten color only for transparency, "Keep original files" - Make PDF: ICS/VCF as designed cards, HEIC sniffing via magic bytes, multi-page TIFFs, output keeps attachment order - Make ZIP: attachment order preserved, "Keep original files" - ZIP/7z browser: folders as DIR cards with Explorer thumbnails, nested archives - ZIP thumbnails: pseudo icons per file type - TXT/HTML: editor resp. browser look for thumbnail and Focus View, both printable - Online viewer workaround: works in drafts and for files inside ZIP archives - Edit Page: DPI selection dialog before the snapshot, DPI slider directly in the crop toolbar - XLSX/CSV/Office thumbnails rendered at card size; DOCX shows an "N PAG." badge - Various stability fixes for focus return and thumbnail restore
Att-Hub does not collect, transmit or share any user data. All processing (indexing, thumbnails, previews, archive browsing) happens locally on your device; the add-on makes no network requests of its own. The optional "View online" button merely opens an external viewer website in your browser — no attachment data is transmitted by the add-on.
Some add-ons ask for permission to perform certain functions (example: a tab management add-on will ask permission to access your browser’s tab system).
Since you’re in control of your Thunderbird, the choice to grant or deny these requests is yours. Accepting permissions does not inherently compromise your browser’s performance or security, but in some rare cases risk may be involved.
This add-on can:
Get data from the clipboard
Input data to the clipboard
Download files and read and modify the browser’s download history