Your Synaplan AI workspace, right inside Outlook. Summarise, translate, draft replies, classify, save emails to your knowledge base, and ask follow-up questions β without leaving your inbox. Works in Outlook on the Web (Windows, Mac, and Linux), new Outlook for Windows, classic Outlook 2024, and Outlook on Mac.
Synamail is the Outlook companion to Synaplan β the open-source AI knowledge platform. Every action you click runs in your Synaplan workspace, so you need an account first:
- Just want to use it? Create a free account at web.synaplan.com, then install the add-in (below).
- Run your own? Self-host the platform from github.com/metadist/synaplan and point Synamail at your instance under "Use a self-hosted instance" on the sign-in screen.
| π€ I just want to use it | π I want to build / host it |
|---|---|
| Install Synamail and start in 60 seconds β no technical setup. | Run from source, contribute, or self-host against your own Synaplan. |
| β User Guide (start here) | β Developer install & sideload |
| β Install from the Marketplace | β Architecture Β· Contributing |
| β Privacy in plain words | β Commit process Β· Security policy |
Not sure if you can use it at work? Many corporate mailboxes restrict add-ins β see the User Guide for what to ask your IT team.
The rest of this README is for builders. Everyday users should head to the User Guide.
Synamail/
βββ README.md β you are here
βββ INSTALL.md β end-user install (post-release) + developer sideload guide
βββ AGENTS.md β workspace rules (AI + human contributors)
βββ LICENSE
βββ Makefile β make help, make ci-local, make sideload, make sync-plugin, β¦
βββ manifest.xml β Outlook add-in manifest, DEV (validated by CI)
βββ manifest_1-0-2_prod.xml β PRODUCTION manifest for the AppSource submission (versioned filename)
βββ synamail-plugin/ β Synaplan-side plugin (Contact AI Profiling) β released
β to synaplan/plugins/synamail via `make sync-plugin`
βββ package.json / tsconfig*.json / vite.config.ts / vitest.config.ts / playwright.config.ts
βββ eslint.config.js / commitlint.config.cjs
βββ .editorconfig / .gitattributes / .gitignore / .markdownlint.jsonc / .nvmrc / .prettierrc.json / .prettierignore
βββ .githooks/
β βββ pre-commit β runs `make ci-local` (or fast docs lint)
β βββ commit-msg β Conventional Commits validator
β βββ pre-push β reminds to run E2E when auth/views change
βββ .github/
β βββ workflows/ci.yml β staged CI (docs / commitlint / manifest / build / e2e)
β βββ workflows/deploy.yml β build + publish the add-in host image to GHCR
β βββ dependabot.yml β weekly grouped updates
β βββ PULL_REQUEST_TEMPLATE.md
β βββ ISSUE_TEMPLATE/ β bug + feature templates
βββ Dockerfile / .dockerignore β tiny static host image (serves addin.synaplan.com)
βββ deploy/ β container deploy + Caddy ingress runbook (self-host the add-in host)
βββ docs/
β βββ USER_GUIDE.md β everyday-user guide (no command line)
β βββ PROJECT_PLAN.md β plan, status, and the AppSource checklist
β βββ RELEASE_SUMMARY.md β v1 scope summary
β βββ ARCHITECTURE.md β technical architecture, auth, API surface
β βββ AUTH_FLOW.md β authoritative sign-in / sign-out flow
β βββ FEATURES.md β feature contract
β βββ CONTACT_PROFILING.md β Contact AI Profiling design
β βββ CONTRIBUTING.md β contributor entry point
β βββ COMMIT_PROCESS.md β commits, branches, reviews, releases
β βββ GLOSSARY.md β canonical terminology
β βββ SYNAPLAN_INTEGRATION.md β what changes in synaplan / synaplan-platform
βββ src/ β Vue 3 + TypeScript add-in source
β βββ i18n.ts / locales/
β βββ shared/ β client, prompts, types
β βββ taskpane/ β entry, views, components, composables
β βββ commands/ β Office function-file shell
β βββ dialog/ β auth-relay (mock until cross-repo bridge ships)
βββ tests/
β βββ unit/ β Vitest unit tests
β βββ component/ β Vue component tests
β βββ e2e/ β Playwright suite
β βββ setup.ts β Office.js stub for Vitest
βββ scripts/ β one-off dev utilities
βββ assets/ β icons + AppSource store assets
AGENTS.mdβ the rules that apply to every commit (humans included).docs/CONTRIBUTING.mdβ the contributor flow in 90 seconds.docs/GLOSSARY.mdβ terminology mapping (read before the others).docs/FEATURES.mdβ what the add-in does.docs/ARCHITECTURE.mdβ how it does it (auth, API surface, security).docs/AUTH_FLOW.mdβ the authoritative sign-in / sign-out flow.docs/SYNAPLAN_INTEGRATION.mdβ what changes (and doesn't) insynaplan/synaplan-platform.docs/COMMIT_PROCESS.mdβ Conventional Commits, branches, PR, release.docs/PROJECT_PLAN.mdβ plan, status, and the AppSource checklist.INSTALL.mdβ end-user install (post-release) + developer sideload guide with the field-tested gotchas.
git clone https://github.com/metadist/Synamail.git
cd Synamail
make bootstrap # enables git hooks, installs dependencies
make doctor # verifies your local toolchain
make help # discover the restThe pre-commit gate that the hook enforces:
make ci-local # lint + check-types + test + validate + buildThis is exactly what CI runs on your PR. See docs/COMMIT_PROCESS.md and docs/CONTRIBUTING.md for the full process.
Synamail is one client of the open-source Synaplan platform:
- www.synaplan.com β product site and hosted workspaces; the place to create a free account.
- web.synaplan.com β the default workspace Synamail connects to out of the box (you can point it at any instance at sign-in).
- github.com/metadist/synaplan β the Synaplan platform (PHP/Symfony + Vue 3), which you can self-host.
Contact AI Profiling ships as a Synaplan plugin in
synamail-plugin/ and is released into
synaplan/plugins/synamail via make sync-plugin β details in
docs/SYNAPLAN_INTEGRATION.md.
| Sprint | Goal | Duration |
|---|---|---|
| 1 | Plan, design, test definitions, GUI spec, engineering scaffold | 3β5 days |
| 2 | GUI + sideload + live web.synaplan.com identification |
2β3 weeks |
| 3 | Live AI features, RAG, RULE, contact KB | 2β3 weeks |
| 4 | AppSource publishing | 1β2 weeks + Microsoft review (4β8 weeks calendar) |