AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Breeze는 작업자를 위한 IT 플랫폼으로, 알림을 분류·플릿을 패치·티켓을 해결하는 감독 AI 팀을 제공하고 오픈소스 코어를 갖춥니다
Breeze is the IT platform that comes with the workers: a supervised AI team that triages alerts, patches fleets, and resolves tickets. Open-source core.
개발 도구TypeScript · GoGitHub @LanternOps온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
The open-source IT platform that comes with the workers. RMM + PSA in one system, with a governed AI operator built in.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The open-source IT platform that comes with the workers.
A full RMM + PSA with an AI team built in. It triages alerts, patches fleets, and resolves tickets. You hold the approvals.
Want to click around? Interactive feature demos at breezermm.com/features (e.g. Remote Access ).
Breeze is a full IT platform for MSPs and internal IT: monitoring, patching, remote access, scripting, and network discovery, plus ticketing, quotes, billing, invoicing, and a service catalog in the same system. The AI is built into its core, not bolted on as an afterthought.README 전문 보기 ↗Breeze is a full IT platform for MSPs and internal IT: monitoring, patching, remote access, scripting, and network discovery, plus ticketing, quotes, billing, invoicing, and a service catalog in the same system. The AI is built into its core, not bolted on as an afterthought.
Every RMM on the market hands you a dashboard and leaves the labor to you. Breeze hands you a team: an AI operator that uses the platform for you. It investigates alerts, remediates issues, resolves tickets, documents what it did, and only interrupts you when it needs a human decision.
Breeze has a free, open-source core (AGPL-3.0), designed to be self-hosted or cloud-hosted at breezermm.com (US and EU regions). Extensions under ee/, including Workspace, use a separate commercial license.
ee/ extensions have separate terms.ee/.Breeze has privileged access to every device it manages. We take that seriously.
| Layer | What We Do |
|---|---|
| Authentication | Argon2id passwords, JWT with 15-min expiry, TOTP MFA, SHA-256 hashed tokens, email verification on signup |
| Authorization | RBAC with scope-based multi-tenancy, forced PostgreSQL row-level security on every tenant table; no app-layer-only fallback, even table owners can't bypass |
| Encryption | AES-256-GCM at rest, TLS 1.2+ in transit, HSTS preload, no plaintext secrets stored anywhere |
| Agent hardening | Bearer token auth (SHA-256 hashed), 0600 config file permissions, optional Cloudflare mTLS |
| Rate limiting | Redis sliding window on all auth endpoints and agent APIs; fail-closed if Redis is unavailable |
| Input validation | Zod schemas on every external input: API requests, WebSocket messages, query parameters |
| AI safety | Risk-classified action engine. Dangerous operations require human approval; critical operations are blocked entirely |
| Supply chain | 5 automated scanners in CI: CodeQL SAST, Gitleaks, npm audit, govulncheck, Trivy CVE scanning |
| Audit trail | Structured audit logging with actor tracking, org-scoped retention policies, S3 archival |
| Operational | Secret rotation runbooks, disaster recovery procedures (RTO < 1 hour, RPO < 15 minutes) |
| Abuse controls | Cross-tenant platform-admin suspend endpoint, email-verification gate on signup, fail-closed token revocation |
For the full security whitepaper, including SOC 2 alignment mapping, see Security Practices.
To report a vulnerability: [email protected]. See SECURITY.md for our disclosure policy.
🤖 Managed AI Ops: Want the workers included? A team of AI agents works your queue (triage, patching, tickets) inside your own Breeze instance, while we read the AI's conversations, verify its resolutions, and tune the agents with you. Your risk engine holds the approvals throughout. Available on self-hosted or cloud Breeze. Book a call →
Skip infrastructure entirely. Sign up at breezermm.com and have a fully managed Breeze instance in minutes. US and EU regions are live; the cloud is in public beta.
Requires Docker and Docker Compose.
Run the guided setup from an empty directory where you want Breeze's generated .env and docker-compose.yml files to live:
mkdir breeze && cd breeze
curl -fsSLO https://raw.githubusercontent.com/lanternops/breeze/main/scripts/guided-setup.sh
chmod +x guided-setup.sh
./guided-setup.sh
The guided setup checks required commands, Docker Compose, CPU, RAM, and free disk space before generating configuration. It asks which Breeze release to install (0.112.0 or later; older releases, whose images release signatures do not cover, need --allow-unverified-release), downloads that release's docker-compose.yml and .env.example, preserves the comments from .env.example in your generated .env, prompts for the required settings, and can generate secure passwords and application secrets with openssl rand.
During setup you can choose the packaged Caddy reverse proxy, Nginx Proxy Manager, or another external reverse proxy path. You can also choose Docker named volumes or local ./data subdirectories for persistent container data.
After the files are generated, the script lets you either stop with ready-to-use config files or continue into the guided start flow. The start flow prompts before pulling images and before running docker compose up -d, waits for the API to become healthy, then walks you through signing in with the one-time bootstrap credentials. Once you confirm first login is complete, it removes the bootstrap values from .env.
On Linux hosts with systemd, the guided setup can also install a reboot startup service for cleaner shutdowns and startups. On shutdown, it asks Docker Compose to stop the Breeze stack before Docker itself stops. On startup, it reruns Compose after Docker and networking are online, helping Breeze bring up Postgres/Redis, API/Web, and optional services in the intended order. The service stores its helper in a root-owned system path and points it at the setup directory you selected. For an existing guided install, run ./guided-setup.sh --install-systemd from the Breeze setup directory.
Requires Docker and Docker Compose.
mkdir breeze && cd breeze
curl -fsSLO https://raw.githubusercontent.com/lanternops/breeze/main/scripts/guided-setup.sh
chmod +x guided-setup.sh
./guided-setup.sh --download --no-up
# Edit .env — at minimum set these:
# BREEZE_DOMAIN your domain (or "localhost" for local testing)
# ACME_EMAIL email for Let's Encrypt certs
# JWT_SECRET openssl rand -base64 64
# AGENT_ENROLLMENT_SECRET openssl rand -hex 32
# APP_ENCRYPTION_KEY openssl rand -hex 32
# MFA_ENCRYPTION_KEY openssl rand -hex 32
# ENROLLMENT_KEY_PEPPER openssl rand -base64 32
# MFA_RECOVERY_CODE_PEPPER openssl rand -base64 32
# BREEZE_BOOTSTRAP_ADMIN_EMAIL your admin email, first boot only
# BREEZE_BOOTSTRAP_ADMIN_PASSWORD one-time value from `openssl rand -base64 32`
#
# The setup verifies the selected release's Ed25519-signed image inventory and
# writes exact repository@sha256 refs. Do not replace those refs with tags or
# copy digests from the package page. Releases before 0.112.0 have no signed
# inventory and are refused unless you pass --allow-unverified-release. To
# upgrade, download the current guided-setup.sh and run
# `./guided-setup.sh --upgrade [VERSION]`: `docker compose pull` alone re-fetches
# the same pinned digests.
# Optional — for remote desktop (WebRTC TURN relay):
# TURN_HOST public IP of your TURN server
# TURN_SECRET openssl rand -hex 32
docker compose up -d
# To enable TURN for remote desktop across NATs/firewalls:
# docker compose --profile turn up -d
Breeze will be running at https://your-domain (or https://localhost with a self-signed cert for local testing).
The generated digest refs are the authorization boundary. A bare Compose file plus mutable tags is not a supported release installation or upgrade path.
On first production boot against an empty database, Breeze creates the initial Partner Admin only from operator-provided BREEZE_BOOTSTRAP_ADMIN_EMAIL and BREEZE_BOOTSTRAP_ADMIN_PASSWORD values. If those values are missing, startup refuses to seed the empty production database. The password is never printed to logs. After you sign in and finish setup, remove those bootstrap values from .env.
For hardened production deploys (Cloudflare Tunnel, mandatory digest-pinned images, monitoring + logging), see docs/operations/DEPLOY_PRODUCTION.md which uses deploy/docker-compose.prod.yml.
From your Breeze dashboard, navigate to Settings → Agents → Download to get the agent installer for your platform.
Or install directly:
# Build from source
cd agent
make build
# Binaries land in agent/bin/ — including breeze-agent, breeze-desktop-helper,
# breeze-watchdog, and breeze-backup.
# See docs/guides/AGENT_INSTALLATION.md for enrollment instructions.
ANTHROPIC_API_KEY in your .env (get one from the Anthropic Console)docker compose up -dSelf-hosted deployments can also point the operator at any Anthropic-compatible endpoint (a proxy, a gateway like LiteLLM, or a third-party backend) via ANTHROPIC_BASE_URL; see the comments in .env.example.
Breeze ships with the Claude Agent SDK integrated and an MCP server you can point any AI agent at. The AI isn't a separate product or plugin. It's woven into the platform, and the same risk engine governs every action whether it comes from the in-product chat or from an external agent over MCP.
The AI operator has access to tools: the same capabilities you have in the dashboard. When you ask it to investigate an alert, it can query device details, check event logs, run diagnostic scripts, and propose remediations. When it decides to take an action, that action passes through the risk engine before execution.
You: "Why is ACME-WS05 running slow?"
Operator: I'll investigate. Let me check the device health.
→ [calls get_device_details]
→ [calls get_event_stream]
→ [calls run_script: Get-Process | Sort-Object CPU -Descending | Select -First 10]
ACME-WS05 has high CPU from Windows Update stuck in a retry loop.
KB5034441 failed with error 0x80070643: the recovery partition
is too small. I can fix this by extending the partition and
retrying the update.
⚠️ This requires running a disk partition script (Risk: High).
Approve? [Yes] [Modify] [Deny]
Every action the AI can take is classified by risk level. This is enforced by the RMM, not the AI. The operator cannot bypass it.
| Risk Level | Behavior | Examples |
|---|---|---|
| Low | Auto-execute, logged | Query devices, read logs, generate reports |
| Medium | Execute + notify tech | Run read-only scripts, deploy pre-approved patches |
| High | Requires human approval | State-changing scripts, patches outside maintenance window |
| Critical | Blocked entirely | Wipe device, bulk destructive operations |
Risk policies are fully configurable per partner, organization, site, or device group.
Run the built-in AI yourself, free. Or add the managed team: AI agents that work your queue while we read their conversations, verify their fixes, and tune them with you.
| Capability | Run it yourself (free) | Managed AI Ops |
|---|---|---|
| AI chat on every page | ✅ | ✅ |
| Tool-equipped agent | ✅ | ✅ |
| Risk-classified actions | ✅ | ✅ |
| A team of agents working your queue | ❌ | ✅ |
| Persistent memory | ❌ | ✅ |
| Automated playbooks | ❌ | ✅ |
| Compliance evidence | ❌ | ✅ |
| Resolutions verified and agents tuned | You | The Breeze team, with you |
| Support | Community | Included |
Same Breeze. Same tools. Same risk engine. The difference is who does the work. Managed AI Ops is a curated engagement: we take on teams we can supervise properly. Book a call →
Partner (MSP) → Organization (Customer) → Site (Location) → Device Group → Device
Every entity in Breeze is scoped to this hierarchy. Permissions, policies, alerts, and AI risk classifications cascade down and can be overridden at any level.
| Layer | Technology |
|---|---|
| Frontend | Astro + React Islands |
| API | Hono (TypeScript) |
| Database | PostgreSQL with forced row-level security + Drizzle ORM |
| Queue | BullMQ + Redis |
| Agent | Go (cross-platform); native helper/viewer in Tauri (Rust) |
| Real-time | WebSocket + HTTP polling |
| Remote Access | WebRTC + coturn TURN relay |
| Reverse Proxy | Caddy with automatic Let's Encrypt |
| AI | Claude Agent SDK (Anthropic), MCP server with OAuth 2.1 |
The Brain Connector is the interface between the RMM and the AI, whether that's the built-in operator or the Managed AI Ops team. It exposes RMM capabilities as Agent SDK tools and enforces risk classification on every action.
┌─────────────────────────────┐
│ AI Operator │
│ (built-in or Managed) │
│ │ │
│ Agent SDK │
│ "I need to check this │
│ device's patch status" │
│ │ │
│ calls get_patch_status() │
└─────────┬───────────────────┘
│
▼
┌─────────────────────────────┐
│ Brain Connector │
│ ┌───────────────────────┐ │
│ │ Risk Validator │ │
│ │ (always enforced) │ │
│ └───────────────────────┘ │
│ │ │
│ RMM Core │
│ (devices, agents, data) │
└─────────────────────────────┘
For detailed architecture documentation, see docs/guides/architecture.md.
| Platform | Agent Status | Notes |
|---|---|---|
| macOS | ✅ Working | Primary development platform; native helper + viewer |
| Windows | ✅ Working | Full feature parity with macOS; signed MSI installer + Watchdog service |
| Linux | ✅ Working | Daemon + service install via systemd; remote desktop and discovery require root |
Breeze is free and open source. If it helps your team, you can support ongoing development by sponsoring LanternOps on GitHub.
No public sponsors yet. Become the first sponsor →
Breeze is built by MSPs, for MSPs. Contributions are welcome.
# Clone the repo
git clone https://github.com/lanternops/breeze.git
cd breeze
# Install dependencies
pnpm install
# Apply database migrations
pnpm db:migrate
# Start the dev server (API + web + helper)
pnpm dev
# Build the Go agent
cd agent
make build # outputs to agent/bin/
Thank you to everyone who has contributed to Breeze.
Is this really free?
Yes. Breeze Community is the AGPL-3.0 core, free to self-host in production with unlimited devices and technicians. You run and fund the infrastructure and any AI usage. Extensions under ee/, including Workspace, have separate commercial terms and require a commercial agreement for production use.
What's the catch?
You operate the free Community core yourself, with community support. Paid options include Breeze Cloud and supported self-hosting, separately licensed commercial extensions under ee/, and Managed AI Ops, where a supervised team of AI agents works your queue and we tune it with you. Confirm the deployment, extension and service scope before purchasing.
What is Managed AI Ops? AI agents working your alerts, patches, and tickets inside your own Breeze instance, with persistent memory, playbooks, and compliance evidence building up over time. The part no one else offers: we read the AI's conversations, verify its resolutions, and tune the agents as your fleet changes. Your risk engine holds the approvals throughout. Available on self-hosted or cloud Breeze. Book a call.
How is this different from Tactical RMM? Tactical RMM is a solid project. Breeze is AI-native: the agent SDK and tool system are core to the architecture, not an integration. Breeze also has PSA built in (ticketing, quotes, billing, service catalog), built-in remote access (WebRTC), a modern frontend (Astro + React), and a multi-tenant hierarchy designed for MSPs from day one.
Do I still need a separate PSA? No. Tickets, time tracking, quotes, invoicing, a priced service catalog, and a customer portal are built into Breeze. The ticket, the time behind it, and the invoice live in one system, so nothing gets re-keyed and nothing leaks between tools.
Can I use this for my internal IT team (not an MSP)? Absolutely. The multi-tenant hierarchy works for internal IT too. Use Organizations as departments or offices.
What AI models are supported? For the in-product AI operator, Breeze uses the Claude Agent SDK (Anthropic). You can bring your own Anthropic API key, and self-hosted deployments can point at any Anthropic-compatible endpoint (such as a LiteLLM gateway). We chose Claude for its tool-use capabilities and reasoning quality. Separately, Breeze runs a built-in MCP server with OAuth 2.1 + PKCE, so you can connect Claude.ai, ChatGPT, Cursor, or any other MCP-compatible AI agent, using whichever model that platform runs. We're open to community contributions for additional in-product model providers.
Is there an agent auto-update?
Yes. The Breeze agent has a built-in updater that pulls signed release artifacts and self-installs across macOS, Windows, and Linux. The Watchdog service supervises the agent process and restarts it on failure. Production deployments verify Ed25519-signed release manifests via RELEASE_ARTIFACT_MANIFEST_PUBLIC_KEYS.
Is my data safe? Self-hosted: your data never leaves your infrastructure. Cloud-hosted: data is isolated per partner with strict tenant separation, in your choice of US or EU region. See our Security Practices for the full security whitepaper, including SOC 2 alignment mapping, encryption standards, and audit controls.
Breeze is AGPL-3.0 licensed, with one exception: everything under
the ee/ directory is covered by the
Breeze Commercial License (source-visible, requires a
commercial agreement for production use). This is the same open-core layout
used by projects like Cal.com.