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.
Att-Hub is your central manager for Thunderbird attachments. Att-Hub scans your selected mail folders and instantly presents all attachments in a clear gallery – with search, full-text search, preview, and custom containers for organizing attachments to collect or to backup. ZIP and 7z archives can be browsed directly inside the add-on, and PDFs, Office documents like DOCX, XLSX or CSV tables, videos, TIFF/TGA images, and even HEIC photos are shown locally inside Thunderbird. The Draft View shows all attachments in a preview gallery while composing mail, and you can create ZIPs and PDFs or shrink and convert images directly from your dropped attachments.
Key Features:
Visual Gallery: All images, PDFs and documents in a dynamically adjustable grid – including light and dark themes.
Local Preview: Images, videos, PDFs, DOCX, XLSX, CSV, TXT/HTML, TIFF/TGA (incl. page navigation for multi-page TIFFs), HEIC/HEIF photos, GAEB files, ICS calendar invites and VCF contact cards are displayed directly inside Thunderbird.
Jump to Mail: One click opens the original message an attachment belongs to – or jumps straight back to your draft.
Archive Browser: Open and browse ZIP and 7z attachments directly inside Thunderbird – with real folder structure, breadcrumb navigation, ZIP-in-ZIP nesting and password prompts for encrypted archives.
Full-Text Search (Deep Search): Searches file names, metadata and file contents (PDF, Office, text) locally in the background – with relevance sorting and over all scanned attachments
Smart Filters: Find files instantly by file type, sender, inbox/sent via the text search.
Focus Mode: Full-screen preview with smooth scrolling and zoom – plus rotation, in-document search (Ctrl+F) and page snapshots at selectable DPI.
Image Editor: Crop, rotate, annotate and adjust brightness, contrast and sharpness – save to disk, copy to a draft or send as a new mail. Even document pages (PDF, DOCX, XLSX) 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 adjustable in fine steps, transparency flattening and an option to keep the original files.
Print: Print single attachments from Focus Mode or many at once in a grid layout – including PDFs, Office documents, text and HTML files.
Custom Containers: Organize attachments with intuitive drag & drop into virtual containers.
Bulk Actions: Select multiple files to download them as ZIP, attach them directly to a new email, or print them in a grid layout.
Draft View: While composing, browse, sort, zip or convert attachments to PDF in the gallery – incl. paste from clipboard and drop-in area via drag & drop. Create AES-256 password-protected ZIPs, merge images into a PDF, shrink or convert pictures, edit and replace attachments, or draw a quick note and attach it right away.
Online Viewer (optional): For exotic formats like CAD files (dwg, dxf), older Office formats and PPTX, an external viewer service can be used and configured in the settings – works for drafts and files inside ZIP archives, too.
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
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