v1.8.1 — A secure, standalone desktop utility for bulk downloading Form 26AS, AIS, and TIS from the Income Tax Department e-Filing portal for multiple clients in one click — and now emailing those documents directly to clients.
Built with PyQt6 + Playwright. Runs on Windows, macOS, and Linux/WSL.
- System Tray — app hides entirely to the Windows system tray during a batch run; WinRT toast notifications with app icon on hide and completion; tray menu for Restore, Stop Batch, Quit.
- Selective Email Settings Export/Import — choose SMTP settings and/or individual templates to export; SMTP password exported encrypted and portable across machines.
- Dynamic Save button — Cancel in Email Settings switches to Save & Close only when changes are detected.
- App logo refreshed — new high-resolution icon with full DPI size set (16–256px); enlarged in header and added to Manage Assessment Years dialog and Help Manual.
- Themed tooltips — QToolTip adapts to light/dark theme.
- Help Manual updated — new sections for System Tray, Email Templates, Export/Import, Run History; logo in hero and sticky nav; screenshots now bundled in compiled build.
- Stopped batch preserves status — stopping no longer overwrites the last saved download status in the vault.
See the full CHANGELOG for details.
- Full Documentation
- Windows Build Guide — Nuitka, Inno Setup, WiX MSI
- macOS Support — setup, what changed, app-bundle build
- Development Log — design decisions & debugging history
- Changelog
git clone https://github.com/dkbholusaria/AayDocCapio.git
cd AayDocCapio
pip install -r requirements.txt
playwright install chromium
python app.pyRequires Google Chrome for AIS/TIS downloads (the app launches real Chrome via
channel="chrome"). 26AS works without it.
On macOS you can also run bash scripts/setup.sh once and then double-click
scripts/AayDocCapio.command in Finder — see the macOS guide.
| Feature | Details |
|---|---|
| Form 26AS | PDF + TXT download for all selected clients |
| AIS / TIS | Request generation + download once ready |
| Email delivery | Batch email tax docs to clients with one click |
| Provider presets | Gmail, Outlook, Office 365, Exchange, Yahoo, iCloud, Custom |
| Rich text composer | Font, size, B/I/U, placeholders, CC, BCC |
| Managing Clients | Encrypted credentials (AES-256 via Fernet) |
| Bulk import | Excel / CSV template with Name, PAN, DOB, Password, Email, CC |
| Assessment Year management | Toggle years on/off, add custom AY/TY entries |
| Download history | Last status and folder per client per AY, shown in table |
| Themes | Light and Dark Navy; extensible via themes.py |
| Resume after Stop | Retry only the clients that were not completed |
| Excel report | Per-client status, folder hyperlink, per-row timestamp |
| Headless mode | Run browser hidden or visible (for CAPTCHA handling) |
app.py — Main window and all application logic
config.py — Path helpers (_app_dir, _bundled_dir, etc.)
utils.py — Shared utilities (timestamps, etc.)
themes.py — ThemeColors dataclass, THEMES registry, build_stylesheet()
vault.py — Encrypted client vault, settings, download history
ui/
_theme.py — Shared active-theme state (avoids circular imports)
helpers.py — Widget factory helpers (_btn, _lbl, _shadow, _status_style)
widgets.py — StyledComboBox and delegates
dialogs.py — ManageYearsDialog, BatchProgressDialog, MailDocsDialog, SmtpSettingsDialog
automation/
browser.py — Playwright browser launch / auth helpers
downloader_26as.py — 26AS download + TXT → Excel/HTML converter
downloader_ais_tis.py — AIS/TIS download
emailer.py — SMTP send, batch send, session logging, document list builder
as26_converter.py — 26AS TXT parser
errors.py — Human-readable error messages
scripts/
release.sh — GitHub release automation (--dry-run, --rerun)
bump.sh — Version bump utility
AayDocCapio.command — macOS double-click launcher
resources/icons/ — All PNG icons (buttons, menus, email providers)
assessment_years.json — AY/TY list (editable via Settings → Manage Years)
- Python 3.11+
- Google Chrome (for AIS/TIS; Chromium suffices for 26AS)
- See
requirements.txtfor Python packages
Use Help -> Report Bug / Request Feature... inside the app to open a structured GitHub form for bug reports or feature requests.
AayDocCapio is licensed under the GNU Affero General Public License v3.0 or
later (AGPL-3.0-or-later) for changes and distributions after the
old-license-mit tag. See LICENSE.
Releases and commits up to and including old-license-mit remain available
under the MIT License. See legacy MIT notice.
New source files should include Copyright (C) 2026 Deepak Bholusaria and
SPDX-License-Identifier: AGPL-3.0-or-later near the top of the file.