Inbox Zero: an open source AI email assistant you can run on your own Docker host
The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.
At a glance
- What is it?
- Inbox Zero is an open source AI email assistant that pre-drafts replies, applies rules you write in plain English, and bulk-unsubscribes and archives. It comes as a hosted service or a Docker-based self-hosted install, and the self-hosted route is where its privacy argument holds up.
- Who is it for?
- Self-host Inbox Zero if you want an AI email assistant whose data sits in your own Postgres and you are prepared to set up Google or Microsoft OAuth yourself. Run npx @inbox-zero/cli setup, change the default Postgres password, and pin a version tag such as v2.26.0 instead of following the latest image.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Inbox Zero automates in an inbox
Inbox Zero describes itself as an AI email assistant that works around the clock. The feature list in the README covers two kinds of work. The first is judgement: an assistant that organizes the inbox and pre-drafts replies in your tone, rules for email that you write in plain English, Reply Zero for tracking what you owe a reply and what is waiting on others, and meeting briefs that pull context from email and calendar before each meeting. The second is cleanup: a bulk unsubscriber, a bulk archiver for old mail, a cold email blocker and analytics on your activity over time.
It also reaches outside the inbox. Smart Filing saves attachments to Google Drive or OneDrive, and a Slack and Telegram integration lets you ask the assistant about your inbox from those apps. The README positions the project as an open source alternative to Fyxer that is more customizable and more secure. The people it suits are those who get enough mail that sorting it is a daily chore, and who would rather write rules than click through the same newsletters every morning.
The monorepo and services behind the app
The project is a TypeScript monorepo. The README lists Next.js, Tailwind CSS, shadcn/ui, Prisma, Upstash and Turborepo, and the root package.json builds and runs only the web app through turbo filters, with separate scripts for a desktop app and a worker. The top level holds apps/ and packages/ directories, a Helm-style charts/ folder, and a docker-compose.yml that describes the services a self-hosted instance needs.
That compose file is the clearest picture of the runtime. It defines Postgres 16 and Redis 7, a serverless-redis-http container that exposes Redis over HTTP in the shape Upstash clients expect, and the web image from ghcr.io. Postgres and Redis ports bind to 127.0.0.1 by default, so they are not published to the network unless you change the bind host. The desktop app ships on its own release track: desktop-v0.1.6, 0.1.7 and 0.1.8 were published between 2026-09-04 and 2026-09-07, and the repository's last push was on 2026-09-14.
Self-hosting Inbox Zero with the CLI
The README's fastest self-hosted route needs Docker and Node.js 24 or newer, and uses the project's CLI in two steps:
npx @inbox-zero/cli setup
npx @inbox-zero/cli startThe first command is a one-time setup wizard and the second starts the containers; the app is then at http://localhost:3000. The README sends everything beyond that, including production deployment, OAuth setup and configuration options, to the self-hosting documentation. OAuth is the step that takes time. To read and draft mail the app needs access to the mailbox, and on a self-hosted instance that means registering your own application with Google or Microsoft and pasting its credentials into the environment. The hosted version at getinboxzero.com skips that work, at the cost of your mail being processed on someone else's servers.
Local development and the mail emulators
Contributors get a longer path that needs pnpm 10 or newer on top of Docker and Node.js 24:
git clone https://github.com/elie222/inbox-zero.git
cd inbox-zero
docker compose -f docker-compose.dev.yml up -d
pnpm install
npm run setup
cd apps/web && pnpm prisma migrate dev && cd ../..
pnpm devThe compose file starts Postgres and Redis, setup walks through the environment interactively, and the Prisma migration creates the schema before the dev server starts on port 3000. The useful detail is the emulators. Instead of connecting a real Gmail account while developing, you can start a local Google emulator and point the web app at it:
docker compose -f docker-compose.dev.yml --profile google-emulator up -dGOOGLE_BASE_URL=http://localhost:4002
GOOGLE_CLIENT_ID=emulate-google-client.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=emulate-google-secretA matching Microsoft emulator runs on port 4003 with its own profile and variables. That lets you test rules and bulk actions without touching a real inbox, which is the safest way to find out what a new rule actually does.
What self-hosting asks of you
A few defaults need changing before an instance faces the internet. The compose file falls back to password as the Postgres password when POSTGRES_PASSWORD is unset, which is fine on a laptop and not on a server. The web service pulls ghcr.io/elie222/inbox-zero:latest with pull_policy set to always, and the README explains that the latest tag always points to the most recent build of the main branch, since images are built on every push. Formal releases carry version tags such as v2.26.0, and pinning one is the difference between upgrading when you choose and upgrading whenever the container restarts.
The development setup has its own quirk: the root package.json runs a postinstall script, clone-marketing.sh, after every pnpm install, which is worth reading before installing in a restricted environment. None of this is unusual for a self-hosted web app, but together it means Inbox Zero behaves like a small production system you maintain, not a desktop tool you install once.
Licence, contributor agreement and the hosted option
GitHub reports the licence as NOASSERTION, which means it could not match the LICENSE file to a standard licence. The file is in the repository, and anyone planning to run a modified copy for other people should read it directly rather than assume a familiar licence. The repository also contains a CLA.md, so contributions go through a contributor licence agreement.
The practical choice is between that self-hosted route and the hosted service the same team runs. The hosted version needs no OAuth registration, containers or database upkeep. Self-hosting keeps the mailbox content, the rules and the drafts on infrastructure you control, which is the substance behind the README's claim of being more secure than closed alternatives. For a single person with a busy personal inbox, the hosted service is the lighter option; for a company that cannot send mail content to another processor, the self-hosted stack is the reason this project exists.
Editorial conclusion
Self-host Inbox Zero if you want an AI email assistant whose data sits in your own Postgres and you are prepared to set up Google or Microsoft OAuth yourself. Run npx @inbox-zero/cli setup, change the default Postgres password, and pin a version tag such as v2.26.0 instead of following the latest image.
Frequently asked questions
What is Inbox Zero?
Inbox Zero is an open source AI email assistant. It organizes your inbox, pre-drafts replies in your tone, manages your calendar and files attachments, and you can use it hosted at getinboxzero.com or run it yourself with Docker.
How do I set up Inbox Zero?
Either sign up for the hosted version, or self-host it with Docker and Node.js 24 or newer by running npx @inbox-zero/cli setup and then npx @inbox-zero/cli start, and open http://localhost:3000. OAuth and production setup are covered in the self-hosting documentation.
How do I get to inbox zero with Gmail using this app?
Connect your Gmail account, then use the Bulk Unsubscriber and Bulk Archiver to clear old mail, the Cold Email Blocker for unsolicited messages, and plain-English AI rules to handle new mail as it arrives.
Is Inbox Zero about deleting everything?
Not in this app. Its cleanup tools archive and unsubscribe: the Bulk Archiver archives old emails and the Bulk Unsubscriber unsubscribes and archives mail you never read. The README does not describe deleting mail.
Community notes