Metadata-Version: 2.4
Name: accountpilot
Version: 0.2.0
Summary: Unified per-machine account sync framework — email, iMessage, calendar, and more
Project-URL: Homepage, https://github.com/aren13/accountpilot
Project-URL: Repository, https://github.com/aren13/accountpilot
Project-URL: Issues, https://github.com/aren13/accountpilot/issues
Project-URL: Changelog, https://github.com/aren13/accountpilot/blob/main/CHANGELOG.md
Author-email: Hasan Arda Eren <ardaeren13@gmail.com>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
Keywords: archive,email,imap,imessage,oauth,personal-data,search,sync
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Communications :: Email
Classifier: Topic :: Communications :: Email :: Email Clients (MUA)
Classifier: Topic :: Database
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: aioimaplib
Requires-Dist: aiosmtplib
Requires-Dist: aiosqlite
Requires-Dist: click>=8.0
Requires-Dist: google-auth-oauthlib>=1.0
Requires-Dist: google-auth>=2.0
Requires-Dist: jinja2>=3.0
Requires-Dist: mail-parser
Requires-Dist: msal
Requires-Dist: phonenumbers>=8.13
Requires-Dist: platformdirs>=4.0
Requires-Dist: pydantic>=2.0
Requires-Dist: python-dateutil
Requires-Dist: pytypedstream>=0.1
Requires-Dist: pyyaml
Requires-Dist: watchdog>=4.0
Provides-Extra: dev
Requires-Dist: jsonschema>=4.20; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-asyncio; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Description-Content-Type: text/markdown

# AccountPilot

A unified per-machine account sync framework. Pulls email, iMessage,
calendar, and other personal data into a local SQLite database via a
plugin architecture. Designed for individual users who want a queryable
archive of their own data.

## Features

- **Mail (IMAP IDLE):** Gmail + Outlook + generic IMAP, OAuth2 (XOAUTH2)
  or password auth, RFC 2047 + MIME attachment handling, multi-account.
- **iMessage:** macOS chat.db reader with watchdog file-watcher,
  attachment + group-chat support, attributedBody decoder.
- **Cross-source identity:** one phone number = one person whether
  it appears in iMessage handles or Gmail signatures.
- **SQLite + FTS5 full-text search** across every source.
- **Auto-restarting background daemon** via launchd (macOS) or
  systemd (Linux) — install with one command.

## Installation

**Homebrew (macOS / Linuxbrew):**

```bash
brew install aren13/tap/accountpilot
```

**pip:**

```bash
pip install accountpilot
```

**pipx** (recommended for CLI-only use, isolates dependencies):

```bash
pipx install accountpilot
```

Requires Python 3.11+. macOS or Linux. (iMessage support is macOS-only;
mail works on both.)

## Quick start

```bash
# Create the config skeleton
accountpilot setup

# Edit ~/.config/accountpilot/config.yaml to add your accounts
$EDITOR ~/.config/accountpilot/config.yaml

# For OAuth-based accounts (recommended): set up Google Cloud Console /
# Azure AD OAuth client JSON, then run the interactive login:
accountpilot oauth login google 1
accountpilot oauth login microsoft 2

# One-shot historical pull:
accountpilot mail backfill 1
accountpilot imessage backfill 2

# Install the auto-restarting background daemon:
accountpilot service install mail
accountpilot service install imessage

# Search across all sources:
accountpilot search 'invoice'
accountpilot search '"meeting tomorrow"'
```

## Configuration

`~/.config/accountpilot/config.yaml` defines the people you sync FOR
(owners) and the accounts you sync FROM. See
[docs/configuration.md](docs/configuration.md) for the full schema.

## Documentation

- [Configuration](docs/configuration.md) — config.yaml schema
- [Plugins: Mail](docs/plugins/mail.md) — Gmail / Outlook / IMAP setup
- [Plugins: iMessage](docs/plugins/imessage.md) — chat.db permissions
- [OAuth setup](docs/oauth-setup.md) — Google Cloud / Azure AD recipes
- [Search](docs/search.md) — FTS5 query syntax
- [Contributing](CONTRIBUTING.md)
- [Security](SECURITY.md)

## License

AGPL-3.0-or-later. See [LICENSE](LICENSE).

The AGPL'ed copy of `aioimaplib` (an upstream dependency) means
AccountPilot ships under AGPL too. If you build a network service
that exposes AccountPilot's functionality to end users, you must
publish your modifications under AGPL — see the LICENSE file.
