Introduction
InboxHelper is a lightweight, local-first email filtering desktop application designed to sync, classify, and filter your IMAP mailbox in real time without sending your data to external servers.
Modern productivity utilities increasingly rely on remote APIs and cloud-hosted large language models to categorize emails. This introduces significant issues, including high recurring monthly costs, network-induced latencies, and serious privacy concerns when parsing personal or business communication. InboxHelper operates strictly offline, using a local background daemon and a deterministic scoring engine that processes emails directly on your device.
Key Capabilities
- Offline Data Integrity: Credentials, folder indices, and sync transaction history are stored inside a local SQLite database file in your Windows AppData directory.
- Deterministic Parsing Engine: Evaluates bulk headers, scans unsubscribe endpoints, profiles domain trust, and scores natural language keywords to filter newsletters and automated clutter from your primary view.
- Asynchronous Synchronization: Utilizes a dedicated, thread-safe Python background worker that coordinates with your mail server, ensuring the UI remains perfectly responsive.
- Operating System Autostart: Includes a standard Windows registry hook to launch silently in the background on system boot, keeping your folders sorted before you open your email client.
Setup Wizard Installation
General users can run InboxHelper without installing a Python environment, configuring virtual environments, or executing console commands. We compile the application into a standalone setup wizard.
Step-by-Step Installation
Download the Installer
Go to the Downloads & Releases panel, and select the latest stable release of InboxHelper_Setup.exe.
Run the Setup Wizard
Execute the downloaded installer. The wizard will guide you through:
- Specifying the installation path (defaults to
C:\Program Files\InboxHelper\). - Creating standard Start Menu and Desktop shortcuts.
- Windows Startup Run Integration: Check the box to launch the background sync engine automatically on system boot.
Connect Your Account
Launch the application. The onboarding interface will prompt you to configure standard IMAP credentials (such as App Passwords) or authorize a secure Google OAuth2 connection to begin syncing your inbox.
Downloads & Releases
Below is the complete historical list of compiled binary versions for InboxHelper. All files are fetched directly from our official release tags on GitHub in real-time. Click any release version to download the standalone Windows setup wizard instantly.
Loading latest release assets from GitHub API...
Standard IMAP App Passwords
If you prefer a direct IMAP credential connection instead of Google OAuth2, you can connect securely using standard SSL credentials combined with an **App Password**.
Configuring Gmail App Passwords
- Go to your **Google Account Settings** (myaccount.google.com).
- Select the **Security** tab from the left sidebar.
- Ensure **2-Step Verification** is enabled on your account.
- Click on **2-Step Verification**, scroll to the bottom of the settings page, and select **App Passwords**.
- Type a descriptive name for the application (e.g.
InboxHelper Desktop), and click **Create**. - Copy the generated 16-character app password (spaces can be ignored).
- Launch InboxHelper, navigate to the **App Password tab** on the Login Wall, and fill in:
- IMAP Host:
imap.gmail.com - IMAP Port:
993 - Email Address:
your_email@gmail.com - App Password: Paste the copied 16-character code.
- IMAP Host:
Google OAuth2 Credentials Setup
For high-security setups without typing passwords, InboxHelper integrates standard Google OAuth2 client synchronization. This uses secure token exchanges and stores your refresh tokens locally in SQLite.
If you choose to use custom credentials, **you act as your own developer** by creating a free project in the Google Cloud Console. This ensures your credentials and keys remain completely private and under your control.
Google Cloud Console Step-by-Step Guide
Create a Google Cloud Project
Navigate to the Google Cloud Console. Log in with your Google account, click on the project selector dropdown in the top bar, select **New Project**, name it InboxHelper, and click **Create**.
Configure the OAuth Consent Screen
In the left sidebar, navigate to **APIs & Services** > **OAuth Consent Screen**:
- Select User Type: **External** (this allows you to link your personal Gmail).
- Fill in the mandatory fields: App name (
InboxHelper) and your Support Email. - Skip the scopes configuration panel.
- Add Test Users (Crucial!): Add your personal Gmail address to the Test Users list. Since your Google Cloud project is in "Testing" mode, Google will block any logins that are not explicitly listed in this Test Users list.
Create OAuth Credentials
Navigate to the **Credentials** tab on the left sidebar:
- Click **Create Credentials** > **OAuth Client ID**.
- Select Application Type: **Web Application** (this enables us to host a local secure callback server).
- Name:
InboxHelper Web Flow. - Authorized Redirect URIs: Add exactly:
http://localhost:8080/. - Click **Create**, and copy the **Client ID** and **Client Secret** shown in the popup.
Authorize in the App
Open InboxHelper's onboarding card, select **Google OAuth2**, paste your Client ID and Client Secret, and click **Connect**. A secure Google authentication tab will open in your web browser. Grant permissions, and you are done!
Scoring Heuristics Engine
InboxHelper's local classification engine performs high-speed mail parsing by reviewing envelope parameters and counting specific structural headers. It runs instantly (averaging 0.05 seconds per email) and outputs an importance score from **0 to 100**.
Emails scoring at or above your configured **Importance Threshold** are placed in the "Important" dashboard feed; all others are routed to "Clutter/Newsletter".
How a Mail Priority is Calculated
| Category | Scoring Condition Triggered | Weight |
|---|---|---|
| Thread Check | Ongoing conversation thread detected (replies starting with Re: or Fwd: with matching history) |
+35 points |
| Header Flags | Has List-Unsubscribe header flag (Automated newsletters) |
-40 points |
| Header Flags | Has Precedence: bulk/list/junk or Auto-Submitted flags |
-20 points |
| Address Check | Sender address contains automated bot keywords (e.g. no-reply, newsletter) |
-20 points |
| Recipients | Mailing list / bulk distribution check (more than 10 recipients in To or Cc) |
-20 points |
| Custom Rules | Sender domain matches user-defined Blacklisted Senders list | -50 points |
| Custom Rules | Sender address/domain matches user-defined Whitelisted Senders list | +50 points |
| Domain Check | Internal domain communication (e.g. colleague within the same corporate email domain) | +25 points |
| Domain Check | Sender is from a personal email provider domain (e.g. gmail.com) |
+15 points |
| Keywords | Subject contains transaction terms (e.g. invoice, receipt, payment) |
+25 points |
| Keywords | Subject/body contains high-priority terms (e.g. urgent, schedule, interview, proposal) |
+15 points |
Daily TL;DR Digest Engine
InboxHelper features an intelligent, 100% offline Natural Language Processing (NLP) engine that parses your important emails to generate daily summaries and checkable action items.
Because InboxHelper is designed to run purely locally on your device, this engine uses a custom, highly-optimized extractive summarization algorithm built entirely using standard Python libraries. This ensures that no data leaves your machine, no external API keys are required, and the system runs in milliseconds.
How local extractive summarization works
Sentence Splitting & Stopwords Filtering
The email body is split into clean sentences using regex patterns. The engine tokenizes all words, removes standard English "stopwords" (like the, is, but, then) which carry little semantic value, and normalizes whitespaces.
Word Frequency & Sentence Weighting
The engine builds a dynamic local word-frequency dictionary from the remaining terms. Every sentence is then scored by summing the frequencies of its words. Crucially, the score is normalized by the logarithm of the sentence length to prevent long sentences from dominating, and penalty multipliers are applied if typical clutter terms (e.g. unsubscribe, opt out) are detected.
Chronological Selection
The top 2 or 3 sentences with the highest normalized scores are selected. The engine then sorts them back into their original chronological order, ensuring the summary reads logically and maintains the author's conversational flow.
Heuristic Action-Item Parser
Every sentence is also parsed by a rule-based intent engine to detect actionable items. If a sentence matches specific task patterns (such as please confirm, urgent follow up, deadline is, send me the), it is automatically extracted as a checkable task and added to your interactive briefing checklist.
Checked tasks are synchronized directly to your local database so your daily triage progress is fully preserved.
SQLite Database Schema
CREATE TABLE IF NOT EXISTS digests (
id INTEGER PRIMARY KEY AUTOINCREMENT,
digest_date TEXT UNIQUE, -- Format: YYYY-MM-DD
summary_content TEXT, -- Stored JSON payload of email summaries
action_items TEXT, -- Stored JSON list of action tasks
created_at TEXT
);
Interactive Evaluation Sandbox
Want to preview how the InboxHelper rules engine behaves without launching the desktop application? Use the interactive simulator below to test your rules in real-time, right in your browser!
Security & Local Data Policy
InboxHelper is engineered to provide absolute security by maintaining strict data boundary control. All operations occur on your physical local machine.
Our 100% Offline Commitment
Your email bodies, text snippets, and metadata are indexed in a local SQLite file in your AppData/Local folder. It is never transmitted anywhere.
All OAuth2 refresh tokens and app passwords are stored strictly inside your local database. They are never sent to external servers or logged in shared cloud locations.
InboxHelper has no analytics tracking, no crash reporter telemetries, and no phone-home checkers. The application is completely private.
Database Location on Windows
You can audit or delete your SQLite database and credentials configuration files at any time. They are stored inside your system user directories:
# Main database storing cached sync records:
C:\Users\\AppData\Local\InboxHelper\inbox_helper.db
# Settings file containing host records and secure parameters:
C:\Users\\AppData\Local\InboxHelper\.env
Edge WebView2 Thread-Safe UI Execution
Many traditional local web-wrappers suffer from graphic-thread deadlocks when asynchronous web loops (like real-time IMAP polling) invoke synchronous browser commands (such as window.alert()).
InboxHelper completely eliminates these issues by replacing native blocking browser dialogs with a custom, non-blocking monochromatic alert overlay. This ensures absolute stability, smooth scaling transitions, and a 100% thread-safe desktop user experience.