🚀 PlumoAI - We are in Public Beta from 7-Sep-2026 (Hire our first Pre-Trained AI Outreach Manager for your own business to book more than 60 meetings with new interested customers OR setup for your clients and earn thousands of doller). If you find any issues during setup then Join our Discord Live Support call on https://discord.gg/WarY2yWZkg
🌍 World's First 100% FREE Autonomous pre-trained AI Employees Platform OR you can say AI Employees OS (Operating System)
PlumoAI is the world's first platform designed to run Autonomous AI Employees. [if this saved you time and loved this github repo, a star helps others find it.]
Companies do not hire people for their biology. They hire employees to own work and deliver outcomes.
PlumoAI introduces a new system where AI Employees operate as real organizational units of execution.
With PlumoAI you can:
✨ Create unlimited AI Employees ✨ Run them on your own infrastructure ✨ Assign real responsibilities ✨ Connect tools using AI Agents ✨ Manage work using a built in project management system
PlumoAI can be deployed on your own infrastructure and used completely free.
✔ Individuals ✔ Startups ✔ Growing teams ✔ Enterprise companies
Everyone can run unlimited AI Employees.
No feature restrictions.
and many more
PlumoAI supports an extensible ecosystem of AI Agents.
AI Agents connect external systems to the platform using MCP servers or any specific agent.
Examples:
📧 Email platforms 📊 Analytics tools 💬 Messaging systems 🗄 Databases 📈 CRM platforms or some of like Scheduler Workflow Builder Memory ChartMaker etc.
A single AI Employee (Just like human) can use multiple AI Agents simultaneously.
AI Agent tools live in ai-agents/ in this repo and are mounted into the ai-service container at runtime. Reusable auth providers (Google, Microsoft, etc.) live alongside them in service-providers/.
- Guide: AI Agent Tool Creation Guide
Deterministic, no-LLM workflow-builder building blocks (transform, filter, batch/loop, schedule-trigger, etc.) live in nodes/ in this repo and are mounted into the ai-service container the same way. Use a Node for deterministic data/flow-control steps and an AI Agent for anything that reasons over natural language or calls a vendor API on behalf of a connected account.
- Guide: Workflow Node Creation Guide
This repo runs PlumoAI as a multi-container stack (UI + APIs + AI service + MySQL + MongoDB + Milvus) behind Traefik. For production, use domain mode (HTTPS with Let's Encrypt). For local evaluation/dev, use localhost mode.
- Minimum
- CPU: 2 vCPU
- RAM: 16 GB (required; the full stack needs enough headroom for MySQL, MongoDB, and services)
- Disk: 30 GB free (SSD recommended)
- Recommended (production)
- CPU: 4+ vCPU
- RAM: 32+ GB
- Disk: 100+ GB SSD (depends on file uploads + database size)
- Network (production / domain mode)
- Public IP + domain DNS
A/AAAA→ server IP - Inbound ports 80 and 443 open (Let’s Encrypt + routing)
- Public IP + domain DNS
This is a single-node reference deployment. docker-compose.yml runs one MySQL container and one MongoDB container with restart: unless-stopped — that recovers a crashed container on the same host, but it is not high availability: a host failure takes the whole stack down, and there's no replication.
If you need HA past a single host, point the stack at externally managed databases instead of running mysql/mongodb yourself — the services already read their DB host from env vars, so this needs no compose changes:
DB_HOST=your-managed-mysql-host # e.g. an RDS/Cloud SQL endpoint
MONGODB_HOST=your-managed-mongo-host # e.g. an Atlas clusterThen remove the mysql/mongodb services (and their depends_on entries) from your own docker-compose.override.yml if you don't want the local instances running alongside the managed ones.
- Windows 10/11
- Docker Desktop with Docker Compose v2
- Git
- Production (domain mode): domain
A/AAAArecord → your server IP, and open inbound 80/443
git clone https://github.com/PlumoAI/plumoai.git
cd plumoaiYou can skip this step completely. Step 3 will auto-create .env from .env.example and (when run interactively) prompt you for required values.
For production or non-interactive installs, it’s recommended to create/edit .env yourself in advance.
Domain mode (recommended for production):
RUN_MODE=domain
DOMAIN_NAME=self.example.com
SSL_EMAIL=admin@example.comLocalhost mode (HTTP):
RUN_MODE=localhost
LOCALHOST_PORT=7861powershell -ExecutionPolicy Bypass -File .\install.ps1- Domain mode:
https://<your-domain> - Localhost mode:
http://localhost:7861
.\install.ps1 -Freshdocker compose ps
docker compose logs --tail 200 -f traefik- Docker Engine + Docker Compose v2
- Git
- Production (domain mode): domain
A/AAAArecord → your server IP, and open inbound 80/443
git clone https://github.com/PlumoAI/plumoai.git
cd plumoaiYou can skip this step completely. Step 3 will auto-create .env from .env.example and (when run interactively) prompt you for required values.
For production or non-interactive installs, it’s recommended to create/edit .env yourself in advance.
Domain mode (recommended for production):
RUN_MODE=domain
DOMAIN_NAME=self.example.com
SSL_EMAIL=admin@example.comLocalhost mode (HTTP):
RUN_MODE=localhost
LOCALHOST_PORT=7861chmod +x install.sh
./install.sh- Domain mode:
https://<your-domain> - Localhost mode:
http://localhost:7861
./install.sh --freshdocker compose ps
docker compose logs --tail 200 -f traefik- Docker Desktop with Docker Compose v2
- Git
- Production (domain mode): domain
A/AAAArecord → your server IP, and open inbound 80/443
git clone https://github.com/PlumoAI/plumoai.git
cd plumoaiYou can skip this step completely. Step 3 will auto-create .env from .env.example and (when run interactively) prompt you for required values.
For production or non-interactive installs, it’s recommended to create/edit .env yourself in advance.
Domain mode (recommended for production):
RUN_MODE=domain
DOMAIN_NAME=self.example.com
SSL_EMAIL=admin@example.comLocalhost mode (HTTP):
RUN_MODE=localhost
LOCALHOST_PORT=7861chmod +x install.sh
./install.sh- Domain mode:
https://<your-domain> - Localhost mode:
http://localhost:7861
./install.sh --freshdocker compose ps
docker compose logs --tail 200 -f traefik- DNS not pointing to the server (domain mode):
DOMAIN_NAMEmust resolve to your server’s public IP. - Ports blocked (domain mode): open inbound 80/443 (cloud security group + OS firewall). Let’s Encrypt will fail if port 80 is blocked.
- Non-interactive installs: ensure
.envis fully set (especiallyDOMAIN_NAMEandSSL_EMAILfor domain mode).
- Back up first —
./scripts/backup.sh(or.\scripts\backup.ps1). An upgrade that goes wrong is only recoverable if you took a backup beforehand. - Set
PLUMOAI_VERSIONin.env(or keep the default). - Re-run the installer for your OS — it pulls the new images and restarts the containers.
Database migrations are not a separate step: auth and plumoai-api run their own pending migrations as part of their container's startup, before the healthcheck reports healthy. When you update the version and restart, the new container image starts, applies whatever migrations ship with that version against the existing mysql/mongodb data, and only then starts serving traffic. If a migration fails, the container will not become healthy — check docker compose logs auth / docker compose logs plumoai-api, and restore the pre-upgrade backup if you need to roll back:
./scripts/restore.sh backups/<pre-upgrade-timestamp>Pinning an exact image instead of trusting a tag at pull time: create a docker-compose.override.yml (compose merges it automatically) with the digest from the images: output the installer prints after every run:
services:
auth:
image: plumoai/authservice@sha256:<digest-from-installer-output>MySQL, MongoDB, and the Traefik TLS certificate store are not backed up automatically outside of --fresh/-Fresh (which backs up before it wipes the MySQL volume). Take a backup yourself before upgrades or any manual maintenance:
# Linux / macOS
./scripts/backup.sh # writes to backups/<timestamp>/
./scripts/restore.sh backups/<timestamp># Windows
.\scripts\backup.ps1 # writes to backups/<timestamp>/
.\scripts\restore.ps1 -InDir backups/<timestamp>Copy the backups/ folder off the host regularly — a local backup on the same disk doesn't protect against disk failure.
An opt-in overlay (docker-compose.monitoring.yml) adds Prometheus, Grafana, cAdvisor, and node-exporter — container and host metrics, not started by default:
# Set a Grafana admin password first
echo "GRAFANA_ADMIN_PASSWORD=$(openssl rand -base64 24)" >> .env
docker compose --env-file .env -f docker-compose.yml -f docker-compose.monitoring.yml up -dGrafana is bound to 127.0.0.1:3001 by default — use an SSH tunnel, or put it behind Traefik with an auth middleware if you need remote access.
PlumoAI can run in two ways.
Run on your own infrastructure using Docker.
✔ Completely free ✔ Unlimited AI Employees ✔ Unlimited Project Management including web documentation ✔ Full data control
If you dont want to FREE setup on your cloud or local machine then you can use our managed infrastructure with usage based credits.
Starting from $20 credits.
More info:
https://plumoai.com/get-started
Organizations can support the development of PlumoAI.
Priority issue response Email support Roadmap updates Sponsor recognition
Priority feature requests Private support channel Direct support calls AI Employee deployment consultation
More info:
https://plumoai.com/get-started
Phase 1 — Core Platform, AI Agents Ecosystem, Pre-Trained AI Employees, n8n style workflow under each AI Employee. (Launched - Done)
AI Employee architecture Self hosted Docker deployment Developer framework for AI Agents MCP based integrations Integration submission system
Pre built employees for: Outreach - AI Outreach Manager Sales - like AI Sales Managers, AI Sales Executive etc Research - AI Research Manager Operations - AI Operationo Manager Marketing - AI Marketing Manager Product management - AI Product Manager
Use Open-source models only by converting existing your own laptops, mobiles, desktops or servers as AI worker.. save 90% token costs
Join the growing ecosystem around Autonomous AI Employees.
Developers Founders Automation engineers SaaS companies
Together we are building the future of work.
PlumoAI is distributed under the PlumoAI Community License.
Users may run PlumoAI using official Docker images inside their organizations.
Users may not:
❌ Resell the platform ❌ Redistribute Docker images ❌ Operate PlumoAI as a competing SaaS service
The future of organizations will include teams of Autonomous AI Employees working alongside humans.
PlumoAI provides the infrastructure where these AI Employees operate.