Deployment Modes
Pick from three deployment modes, Standalone, Daemon, or Cloud, sharing the same guard() / createRun() API. Switching modes is config, not code.
Choosing a mode
| Standalone | Daemon | Cloud | |
|---|---|---|---|
| Setup | Nothing | npx fuze-ai daemon | FUZE_API_KEY |
| Protection (guard, budget, loop detection) | Yes | Yes | Yes |
| Audit trail | JSONL file | SQLite (hash-chained) | Supabase (cloud) |
| Dashboard | No | No | app.fuze-ai.tech |
| Remote tool config | No | Via API key (hybrid) | Yes |
| Cross-run analytics | No | SQLite | Yes |
| Kill switch | No | Via daemon REST API | Yes (dashboard) |
| Cost | Free | Free | Paid |
Use Standalone when you're developing locally, running in CI, or don't need persistent storage. Traces write to fuze-traces.jsonl.
Use Daemon when you need persistent cross-run storage, on-prem data (nothing leaves the machine), or air-gapped deployments. Add FUZE_API_KEY to get the daemon syncing to cloud as well.
Use Cloud when you want the full dashboard, live run monitoring, tool analytics, workflow patterns, compliance reports, and remote tool configuration from the UI.
How mode selection works
The SDK selects a mode automatically based on config, no API to call:
import { configure } from 'fuze-ai'
// Cloud mode, set FUZE_API_KEY env var, or:
configure({ cloud: { apiKey: 'fz_...' } })
// Daemon mode
configure({ daemon: { enabled: true } })
// Standalone, default, no configure() neededPriority when multiple are configured: Cloud > Daemon > Standalone.
Cloud mode
The SDK batches telemetry and ships it to api.fuze-ai.tech. Tool configs flow the other direction, the SDK pulls them every 30s so dashboard edits (change a budget, disable a tool) take effect without redeployment.
Setup:
- Sign up at app.fuze-ai.tech and create a project
- Copy your API key
export FUZE_API_KEY=fz_...(or set infuze.toml)- Call
registerTools()at startup so your tools appear in the dashboard
See Tools & Remote Config and Dashboard.
Daemon mode
The daemon stores everything locally. There is no web UI, the REST API at :7821 is for direct queries or custom dashboards. If you add FUZE_API_KEY to the daemon process environment, it also syncs configs and telemetry to the cloud API (hybrid mode).
Setup:
npx fuze-ai daemon & # or run as a serviceSee Daemon.
Standalone mode
No daemon, no API key. The SDK runs entirely in-process. Protection (guard, budget, loop detection) works the same. Audit output goes to fuze-traces.jsonl in the current directory.
No configuration needed:
import { createRun } from 'fuze-ai'
const run = createRun('my-agent', { maxCostPerRun: 2.00 })
// Everything works, guard, budget, loop detection
// Traces written to fuze-traces.jsonlThis is the right default for development and CI.