{"id":44969990,"url":"https://github.com/escapeboy/agent-fleet-o","last_synced_at":"2026-05-18T11:01:07.213Z","repository":{"id":337304767,"uuid":"1153020408","full_name":"escapeboy/agent-fleet-o","owner":"escapeboy","description":"Open-source AI agent orchestration platform — self-hosted mission control for autonomous multi-agent systems. Visual DAG workflows, 450+ MCP tools, human-in-the-loop approvals. Works with Claude, GPT-4o, Gemini, Ollama, Codex.","archived":false,"fork":false,"pushed_at":"2026-05-15T08:51:38.000Z","size":16469,"stargazers_count":28,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-15T10:51:05.582Z","etag":null,"topics":["agent-orchestration","agentic-ai","ai-agents","ai-automation","autonomous-agents","claude","crewai-alternative","langgraph-alternative","laravel","livewire","llm-workflow","mcp-server","model-context-protocol","multi-agent","n8n-alternative","ollama","openai","php","self-hosted","workflow-automation"],"latest_commit_sha":null,"homepage":"https://fleetq.net","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/escapeboy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security/a2ui-audit-2026-04-01.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-08T19:27:13.000Z","updated_at":"2026-05-15T08:51:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"1628d5c8-c70b-47f1-9505-0ba6c25abfd5","html_url":"https://github.com/escapeboy/agent-fleet-o","commit_stats":null,"previous_names":["escapeboy/agent-fleet-o"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/escapeboy/agent-fleet-o","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escapeboy%2Fagent-fleet-o","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escapeboy%2Fagent-fleet-o/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escapeboy%2Fagent-fleet-o/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escapeboy%2Fagent-fleet-o/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/escapeboy","download_url":"https://codeload.github.com/escapeboy/agent-fleet-o/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escapeboy%2Fagent-fleet-o/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33175835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"ssl_error","status_checked_at":"2026-05-18T09:27:28.300Z","response_time":71,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-orchestration","agentic-ai","ai-agents","ai-automation","autonomous-agents","claude","crewai-alternative","langgraph-alternative","laravel","livewire","llm-workflow","mcp-server","model-context-protocol","multi-agent","n8n-alternative","ollama","openai","php","self-hosted","workflow-automation"],"created_at":"2026-02-18T15:30:27.352Z","updated_at":"2026-05-18T11:01:07.179Z","avatar_url":"https://github.com/escapeboy.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FleetQ — Open-Source AI Agent Orchestration Platform\n\n\u003e **Self-hosted mission control for AI agents.** Build, run, and monitor autonomous multi-agent systems with a visual DAG builder, human-in-the-loop approvals, MCP server integration, and full audit trail. Works with Claude, GPT-4o, Gemini, Ollama, Codex, Claude Code, and any OpenAI-compatible LLM.\n\n[![CI](https://github.com/escapeboy/agent-fleet-o/actions/workflows/ci.yml/badge.svg)](https://github.com/escapeboy/agent-fleet-o/actions/workflows/ci.yml)\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](LICENSE)\n[![PHP](https://img.shields.io/badge/PHP-8.4-purple)](https://www.php.net/)\n[![Laravel](https://img.shields.io/badge/Laravel-12-red)](https://laravel.com/)\n[![MCP Server](https://glama.ai/mcp/servers/escapeboy/agent-fleet-o/badges/score.svg)](https://glama.ai/mcp/servers/escapeboy/agent-fleet-o)\n\n**Keywords:** AI agents · agent orchestration · MCP server · Model Context Protocol · LangGraph alternative · CrewAI alternative · n8n for AI · Claude agents · LLM workflow · autonomous agents · agent framework · AI automation · self-hosted\n\n☁️ **Prefer managed?** Try **[FleetQ Cloud](https://fleetq.net)** — zero setup, free tier.\n⭐ **Like the project?** Give it a star on GitHub — it helps others find FleetQ.\n\n---\n\n## Table of Contents\n\n- [Why FleetQ?](#why-fleetq)\n- [Key Concepts](#key-concepts)\n- [Screenshots](#screenshots)\n- [Features](#features)\n- [Use Cases](#use-cases)\n- [How FleetQ compares](#how-fleetq-compares)\n- [Quick Start](#quick-start-docker)\n- [Authentication](#authentication)\n- [Configuration](#configuration)\n- [SSH Host Access](#ssh-host-access)\n- [Architecture](#architecture)\n- [MCP Server (493+ tools)](#mcp-server)\n- [Tech Stack](#tech-stack)\n- [Contributing](#contributing)\n- [Changelog](CHANGELOG.md)\n\n---\n\n## Why FleetQ?\n\nMost agent frameworks give you a Python notebook. FleetQ gives you a **production platform**.\n\n- 🧩 **493+ MCP tools across 46 domains** — every feature is exposed via Model Context Protocol, so any LLM (Claude Desktop, Cursor, ChatGPT, local agents) can drive the platform programmatically. New in 1.26: **MCP tool auto-discovery** (drop a tool class into `app/Mcp/Tools/` — no registry edit); **unified human + agent activity timeline**; **git-backed context filesystem** (`/settings/git-sync` mirrors artifacts + memory to a repo as versioned markdown); **project snapshots** (capture/restore project config); **Sentry Watchdog** for autonomous error triage.\n- 🔁 **Visual DAG workflows** with 8 node types (agent, conditional, human-task, switch, dynamic-fork, do-while) — no Python glue code.\n- 👥 **Multi-agent crews** with coordinator/worker/reviewer roles, weighted QA scoring, and cross-validation.\n- 🛡️ **Real-World Action governance** — assistant tool calls, integration writes, and git pushes route through a per-tier risk policy (auto / ask / reject for low / medium / high). Approvals auto-execute. Audit trail attached.\n- 💰 **Budget controls** with a real credit ledger, pessimistic locking, and auto-pause on overspend — not just token counters.\n- 🧠 **Agent evolution** — LLM analyzes execution history and proposes config changes you approve with one click.\n- ⚙️ **BYOK + Local LLMs** — Anthropic, OpenAI, Google, plus Ollama, LM Studio, vLLM, Codex, Claude Code. Zero vendor lock-in.\n- 🔒 **Production-grade** — tenant isolation, encrypted credential vault, HMAC webhooks, SSRF guards, circuit breakers, audit trail.\n- 📊 **OpenTelemetry observability** — structured error codes (gRPC-canonical), deadline propagation, distributed tracing. Jaeger UI one-command away. Per-team OTLP collector endpoints for BYO observability.\n- 📈 **Live team graph** — Cytoscape.js force-directed visualization of agents, humans, and crews. Real-time updates via Laravel Reverb WebSockets.\n- 🏠 **Self-host or cloud** — MIT-friendly AGPLv3 license, runs on Docker Compose, or use [FleetQ Cloud](https://fleetq.net).\n\n## Key Concepts\n\n| Concept | What it is | When to use |\n|---|---|---|\n| **Agent** | A configured AI personality with role, goal, backstory, skills, and tool access | The basic unit — one agent per specialized task |\n| **Skill** | A reusable LLM prompt, rule, connector, or GPU compute call | When multiple agents need the same capability |\n| **Experiment** | A stateful run through a 20-stage pipeline (scoring → planning → building → executing → evaluating) | Any non-trivial agent task with lifecycle |\n| **Crew** | A team of agents working on one goal (sequential, parallel, hierarchical, adversarial, fanout, chat-room) | Multi-perspective tasks or when you need review/QA |\n| **Workflow** | A visual DAG template (reusable across experiments) with branching, loops, human-tasks | Recurring processes — CI/CD, content pipelines, QA flows |\n| **Project** | A continuous (cron-scheduled) or one-shot container for experiments, with budget + milestones | Long-running initiatives, scheduled agent work |\n| **Signal** | An inbound event (webhook, RSS, email, bug report, GitHub issue) that can trigger agents | Event-driven automation |\n| **MCP Tool** | A programmatic action any LLM can call to query or mutate the platform | Expose FleetQ to external agents (Claude, Cursor, etc.) |\n\n## Screenshots\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**Dashboard**\nKPI overview with active experiments, success rate, budget spend, and pending approvals.\n\n\u003cimg src=\"screenshots/qa-dashboard.png\" width=\"100%\" alt=\"Dashboard\"\u003e\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**Agent Template Gallery**\nBrowse 14 pre-built agent templates across 5 categories. Search, filter by category, and deploy with one click.\n\n\u003cimg src=\"screenshots/qa-agent-templates.png\" width=\"100%\" alt=\"Agent Templates\"\u003e\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n**Agent LLM Configuration**\nPer-agent provider and model selection with fallback chains. Supports Anthropic, OpenAI, Google, and local agents.\n\n\u003cimg src=\"screenshots/agent-llm-edit-panel.png\" width=\"100%\" alt=\"Agent LLM Config\"\u003e\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n**Agent Evolution**\nAI-driven agent self-improvement. Analyze execution history, propose personality and config changes, and apply with one click.\n\n\u003cimg src=\"screenshots/qa-evolution-tab.png\" width=\"100%\" alt=\"Agent Evolution\"\u003e\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n**Crew Execution**\nLive progress tracking during multi-agent crew execution. Each task shows its assigned skill, provider, and elapsed time.\n\n\u003cimg src=\"screenshots/tasks-panel-building.png\" width=\"100%\" alt=\"Crew Execution\"\u003e\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n**Task Output**\nExpand any completed task to inspect the AI-generated output, including structured JSON responses.\n\n\u003cimg src=\"screenshots/tasks-expanded-output.png\" width=\"100%\" alt=\"Task Output\"\u003e\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n**Visual Workflow Builder**\nDAG-based workflow editor with conditional branching, human tasks, switch nodes, and dynamic forks.\n\n\u003cimg src=\"screenshots/qa-workflows.png\" width=\"100%\" alt=\"Workflows\"\u003e\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n**Tool Management**\nManage MCP servers, built-in tools, and external integrations with risk classification and per-agent assignment.\n\n\u003cimg src=\"screenshots/qa-tools.png\" width=\"100%\" alt=\"Tools\"\u003e\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n**AI Assistant Sidebar**\nContext-aware AI chat embedded in every page with 28 built-in tools for querying and managing the platform.\n\n\u003cimg src=\"screenshots/assistant-sidebar.png\" width=\"100%\" alt=\"Assistant Sidebar\"\u003e\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n**Experiment Detail**\nFull experiment lifecycle view with timeline, tasks, transitions, artifacts, metrics, and outbound delivery.\n\n\u003cimg src=\"screenshots/qa-experiment-detail.png\" width=\"100%\" alt=\"Experiment Detail\"\u003e\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n**Settings \u0026 Webhooks**\nGlobal platform settings, AI provider keys (BYOK), outbound connectors, and webhook configuration.\n\n\u003cimg src=\"screenshots/settings-page-full.png\" width=\"100%\" alt=\"Settings\"\u003e\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n**Error Handling**\nFailed tasks display detailed error information including provider, error type, and request IDs for debugging.\n\n\u003cimg src=\"screenshots/tasks-panel-error-expanded.png\" width=\"100%\" alt=\"Error Handling\"\u003e\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Features\n\n### Agents, crews, and workflows\n- **AI Agents** — role, goal, backstory, personality traits, skill assignments, per-agent provider/model fallback chains\n- **Agent Templates** — 14 pre-built templates across 5 categories (engineering, content, business, design, research)\n- **Agent Evolution** — LLM analyzes execution history, proposes config changes, one-click approval\n- **Agent Crews** — Multi-agent teams with coordinator/QA/worker roles, 7 process types (sequential, parallel, hierarchical, self-claim, adversarial, fanout, chat-room), weighted QA scoring\n- **Pre-Execution Scout Phase** — cheap LLM pre-call identifies what knowledge the agent needs → targeted semantic search instead of generic recall\n- **Step Budget Awareness** — agent system prompt targets 80% of allowed steps for core work, reserves the rest for synthesis\n- **Experiment Pipeline** — 20-state machine with automatic stage progression (scoring → planning → building → approval → executing → metrics → evaluating)\n- **Visual Workflow DAG** — 8 node types (agent, conditional, human-task, switch, dynamic-fork, do-while, compensation, sub-workflow). Pre-built Web Dev Cycle template. NL → workflow generator.\n- **Projects** — one-shot and continuous projects with cron scheduling, budget caps, milestones, overlap policies\n\n### LLMs and compute\n- **BYOK** — bring your own keys for Anthropic (Claude), OpenAI (GPT-4o), Google (Gemini)\n- **Local LLMs** — Ollama, LM Studio, vLLM, llama.cpp via OpenAI-compatible endpoints; 17 preset Ollama models; SSRF protection\n- **Local Agents** — Codex and Claude Code as execution backends (auto-detected, zero cost)\n- **Portkey Gateway** — optional drop-in that unlocks 250+ LLM providers with semantic caching and fallbacks\n- **RunPod GPU Integration** — invoke RunPod serverless endpoints or manage full GPU pod lifecycles as skills; BYOK API key; spot pricing\n- **Pluggable Compute Providers** — `gpu_compute` skills backed by RunPod, Replicate, Fal.ai, Vast.ai\n- **AI Gateway** — provider-agnostic via PrismPHP with 6-layer middleware (rate-limit, budget, idempotency, semantic-cache, schema-validation, usage-tracking), circuit breakers, fallback chains\n- **Semantic Cache** — pgvector-backed cosine similarity (threshold 0.92) cross-team cache — cuts LLM spend on repeat prompts\n\n### Signals, triggers, outbound\n- **Signal connectors** — 20+ drivers: webhook, RSS, IMAP, Slack, Discord, WhatsApp, GitHub, Linear, Jira, PagerDuty, Sentry, Datadog, ClearCue, Telegram, Matrix, Notion, Confluence, Screenpipe, Searxng, more\n- **Bug Report signals** — lightweight QA pipeline with public JS widget, screenshot + console + network + action log capture, threaded comments (reporter + agent + support), agent delegation, SLA escalation\n- **Trigger rules** — event-driven automation with condition evaluator, dry-run testing\n- **Multi-Channel Outbound** — Email (SMTP), Telegram, Slack, Webhook, ntfy with rate limiting and blacklist\n- **Webhooks** — inbound (HMAC-SHA256) + outbound (retry, event filtering)\n\n### Human-in-the-loop, budgets, security\n- **Approvals** — inbox with SLA enforcement + escalation\n- **Human Tasks** — embedded form schemas on workflow nodes\n- **Credit Ledger** — per-experiment and per-project with pessimistic locking and auto-pause on overspend\n- **Credential Vault** — encrypted external service credentials with rotation, OAuth2, expiry tracking, per-project injection\n- **SSH tools** — TOFU (Trust On First Use) fingerprint verification, per-tool allowed-commands whitelist, multi-layer command security policy\n- **Audit Trail** — full activity log (spatie/activitylog), searchable + filterable\n- **Tenant Isolation** — multi-layer `TeamScope` + `BelongsToTeam` + `withoutGlobalScopes()` discipline\n\n### Integrations \u0026 web dev pipeline\n- **Integrations** — GitHub, Slack, Notion, Airtable, Linear, Stripe, Vercel, Netlify, generic webhook/polling with OAuth 2.0\n- **Autonomous Web Dev Pipeline** — agents can open PRs, merge, dispatch CI workflows, create releases, trigger Vercel/Netlify/SSH deploys through MCP tools\n- **Website Builder** — AI-generated static sites with 8 widget types, Vercel + ZIP deployment drivers, form submissions, blog/navigation/contact widgets\n- **Founder Mode pack** — marketplace bundle of 6 persona agents (Strategist, Product Lead, Growth Hacker, Finance Advisor, Ops Manager, Risk Officer), 20 framework skills (RICE, SPIN, BANT, MEDDIC, OKRs, Shape Up, Unit Economics, Kano, TAM-SAM-SOM, K-Factor, NPV-IRR, RACI, A/B Testing, OWASP), 5 pre-built workflows\n- **Marketplace** — browse, publish, install shared skills, agents, workflows, and bundles with AI risk scanning\n\n### API \u0026 MCP surface\n- **REST API** — 175+ endpoints under `/api/v1/` with Sanctum auth, cursor pagination, auto-generated OpenAPI 3.1 at `/docs/api`\n- **MCP Server** — **493+ Model Context Protocol tools across 46 domains** (stdio + HTTP/SSE + OAuth2/PKCE)\n- **Real-World Action governance** — `ActionProposal` flow gates assistant tool calls, integration writes, and git pushes through a per-tier risk policy with auto-execute on approval\n- **Public discovery endpoint** — `GET /.well-known/fleetq` returns a config-gated capability manifest so external AI tools can auto-configure\n- **Live team graph** — `/team-graph` page with real-time updates via Laravel Reverb WebSockets\n- **Structured MCP errors** — canonical gRPC-style error codes (`UNAVAILABLE`, `PERMISSION_DENIED`, `RESOURCE_EXHAUSTED`, `DEADLINE_EXCEEDED`, `INVALID_ARGUMENT`, `FAILED_PRECONDITION`, `NOT_FOUND`, `INTERNAL`) with retryable hints — agents know when to retry vs. fail fast\n- **Per-tool deadlines** — optional `deadline_ms` parameter on every MCP tool; agents can bound wall-clock time per call\n- **OpenTelemetry tracing** — OTLP HTTP exporter, Jaeger all-in-one via `docker compose --profile observability up`, spans for MCP tool → AI gateway → LLM provider\n- **Tool Management** — MCP servers (stdio/HTTP), built-in tools (bash/filesystem/browser), risk classification, per-agent assignment\n- **MCP client compatibility** — Claude Desktop, Claude.ai, ChatGPT Apps, Cursor, Codex, Claude Code, Gemini CLI, any OAuth2 client\n\n### Infrastructure\n- **Queue Management** — Laravel Horizon with 6 priority queues and auto-scaling\n- **Testing** — regression test suites for agent outputs with automated evaluation\n- **Per-Call Working Directory** — local/bridge agents can operate in a configured working directory per-agent, isolated project contexts\n\n## Use Cases\n\nFleetQ is built for teams running AI agents in production, not toy demos.\n\n- **Autonomous dev pipelines** — agent opens PR → CI runs → reviewer agent approves → merge → deploy. Human approves only on risk signals.\n- **Customer support triage** — bug report widget → agent extracts reproduction steps from console/network log → experiment runs → notifies reporter with fix or agent-generated workaround.\n- **Multi-agent research** — crew of Strategist + Researcher + Writer with QA reviewer. Each step weighted by domain rubric.\n- **Scheduled content ops** — continuous project runs daily, each run executes a DAG: draft → review → SEO-check → publish → schedule social.\n- **Incident response** — PagerDuty/Sentry signal → trigger rule → diagnosis agent → human approval on runbook action → Slack notify.\n- **GPU workloads** — agent calls `gpu_compute` skill on RunPod serverless (Whisper, FLUX, Bark) as part of a larger workflow, with cost accounting.\n- **Local-first agent dev** — Ollama + Codex + Claude Code auto-detected, zero API cost for prototyping; switch to cloud providers for production.\n- **Bring FleetQ into Claude** — expose your internal data + tools as MCP server, Claude Desktop/ChatGPT/Cursor can drive the platform programmatically.\n\n## How FleetQ compares\n\n| | FleetQ | n8n | CrewAI | LangGraph | Make.com |\n|---|---|---|---|---|---|\n| **Open source** | ✅ AGPLv3 | ✅ Sustainable Use | ✅ MIT | ✅ MIT | ❌ Proprietary |\n| **Visual DAG builder** | ✅ 8 node types | ✅ (not AI-first) | ❌ | ❌ | ✅ |\n| **Multi-agent crews** | ✅ 7 process types | ❌ | ✅ | ✅ (build-your-own) | ❌ |\n| **MCP server (native)** | ✅ 493+ tools | ❌ | ❌ | ❌ | ❌ |\n| **Human-in-the-loop** | ✅ native | ⚠️ workaround | ⚠️ code | ⚠️ code | ⚠️ approve-node |\n| **Budget ledger + locks** | ✅ pessimistic | ❌ | ❌ | ❌ | ❌ |\n| **Audit trail** | ✅ every action | ✅ | ❌ | ❌ | ✅ |\n| **BYOK + local LLMs** | ✅ both | ⚠️ BYOK only | ⚠️ depends | ⚠️ BYOK | ❌ |\n| **Self-hosted** | ✅ Docker Compose | ✅ | n/a (library) | n/a (library) | ❌ |\n| **Agent evolution (self-improve)** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **OpenTelemetry tracing** | ✅ native | ❌ | ❌ | ⚠️ partial | ❌ |\n| **Credit/usage metering** | ✅ per-team/project | ❌ | ❌ | ❌ | per-workspace |\n\n*TL;DR — if you're building production agent systems with LLMs and want visual workflows + MCP + human oversight, FleetQ is the only platform that bundles all of it.*\n\n## Quick Start (Docker)\n\n```bash\ngit clone https://github.com/escapeboy/agent-fleet-o.git\ncd agent-fleet\nmake install\n```\n\nThis will:\n1. Copy `.env.example` to `.env`\n2. Build and start all Docker services\n3. Run the interactive setup wizard (database, admin account, LLM provider)\n\nVisit **http://localhost:8080** when complete.\n\n## Quick Start (Manual — Web Setup)\n\nRequirements: PHP 8.4+, PostgreSQL 17+, Redis 7+, Node.js 20+, Composer\n\n```bash\ngit clone https://github.com/escapeboy/agent-fleet-o.git\ncd agent-fleet\ncomposer install\nnpm install \u0026\u0026 npm run build\ncp .env.example .env\n# Edit .env — set DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD, REDIS_HOST\nphp artisan key:generate\nphp artisan migrate\nphp artisan horizon \u0026\nphp artisan serve\n```\n\nThen open **http://localhost:8000** in your browser. The setup page will guide you through creating your admin account.\n\n\u003e **Alternative:** Run `php artisan app:install` for an interactive CLI setup wizard that also seeds default agents and skills.\n\n## Authentication\n\n- **No email verification** — the self-hosted edition skips email verification entirely. Accounts are active immediately on registration.\n- **Single user** — all registered users join the default workspace automatically.\n\n### No-Password Mode (local installs)\n\nIf you're running FleetQ locally on your own machine and don't want to enter a password on every visit, set `APP_AUTH_BYPASS=true` in `.env`:\n\n```bash\nAPP_AUTH_BYPASS=true   # Auto-login as first user\nAPP_ENV=local          # Required — bypass is disabled in production\n```\n\nWith bypass enabled, the app logs you in automatically on every request. A logout link is still shown but you'll be logged back in on the next page load — this is intentional.\n\n\u003e **Warning:** Never set `APP_AUTH_BYPASS=true` on a server accessible from the internet.\n\n## Configuration\n\nAll configuration is in `.env`. Key variables:\n\n```bash\n# Database (PostgreSQL required)\nDB_CONNECTION=pgsql\nDB_HOST=postgres\nDB_DATABASE=agent_fleet\n\n# Redis (queues, cache, sessions, locks)\nREDIS_HOST=redis\nREDIS_DB=0          # Queues\nREDIS_CACHE_DB=1    # Cache\nREDIS_LOCK_DB=2     # Locks\n\n# LLM Providers -- at least one required for AI features\nANTHROPIC_API_KEY=\nOPENAI_API_KEY=\nGOOGLE_AI_API_KEY=\n\n# Auth bypass -- local no-password mode (never use in production)\nAPP_AUTH_BYPASS=false\n```\n\nAdditional LLM keys can be configured in **Settings \u003e AI Provider Keys** after login.\n\nTo use local models (Ollama, LM Studio, vLLM):\n\n```bash\nLOCAL_LLM_ENABLED=true\nLOCAL_LLM_SSRF_PROTECTION=false  # set false if Ollama is on a LAN IP (192.168.x.x)\nLOCAL_LLM_TIMEOUT=180\n```\n\nThen configure endpoints in **Settings \u003e Local LLM Endpoints**.\n\n## SSH Host Access\n\nAgents can execute commands on the host machine (or any remote server) via SSH using the built-in SSH tool type. This is useful for running local scripts, interacting with the filesystem, or orchestrating host-level processes from an agent.\n\n### How it works\n\n1. The platform stores SSH private keys encrypted in the Credential vault.\n2. An SSH Tool is configured with `host`, `port`, `username`, `credential_id`, and an optional `allowed_commands` whitelist.\n3. On the first connection to a host, the server's public key fingerprint is stored via **TOFU** (Trust On First Use). Subsequent connections verify the fingerprint — a mismatch raises an error to prevent MITM attacks.\n4. Manage trusted fingerprints via **Settings \u003e SSH Fingerprints** or the `tool_ssh_fingerprints` MCP tool.\n\n### Setup (Docker — connecting container to host)\n\nThe containers reach the host machine via `host.docker.internal`, which is pre-configured in `docker-compose.yml` via `extra_hosts: host.docker.internal:host-gateway`.\n\n**Step 1 — Enable SSH on the host**\n\n| OS | Command |\n|----|---------|\n| macOS | System Settings → General → Sharing → **Remote Login** → On |\n| Ubuntu/Debian | `sudo apt install openssh-server \u0026\u0026 sudo systemctl enable --now ssh` |\n| Fedora/RHEL | `sudo dnf install openssh-server \u0026\u0026 sudo systemctl enable --now sshd` |\n| Windows | Settings → System → Optional Features → **OpenSSH Server**, then `Start-Service sshd` |\n\n**Step 2 — Generate an SSH key pair**\n\n```bash\nssh-keygen -t ed25519 -C \"fleetq-agent@local\" -f ~/.ssh/fleetq_agent_key -N \"\"\n```\n\n**Step 3 — Authorize the key on the host**\n\n```bash\ncat ~/.ssh/fleetq_agent_key.pub \u003e\u003e ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys\n```\n\n**Step 4 — Create a Credential in FleetQ**\n\nNavigate to **Credentials → New Credential**:\n- Type: `SSH Key`\n- Paste the contents of `~/.ssh/fleetq_agent_key` (private key)\n\nOr via API:\n\n```bash\ncurl -X POST http://localhost:8080/api/v1/credentials \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"Host SSH Key\",\n    \"credential_type\": \"ssh_key\",\n    \"secret_data\": {\"private_key\": \"\u003ccontents of fleetq_agent_key\u003e\"}\n  }'\n```\n\n**Step 5 — Create an SSH Tool**\n\nNavigate to **Tools → New Tool → Built-in → SSH Remote**, or via API:\n\n```bash\ncurl -X POST http://localhost:8080/api/v1/tools \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"Host SSH\",\n    \"type\": \"built_in\",\n    \"risk_level\": \"destructive\",\n    \"transport_config\": {\n      \"kind\": \"ssh\",\n      \"host\": \"host.docker.internal\",\n      \"port\": 22,\n      \"username\": \"your-username\",\n      \"credential_id\": \"\u003ccredential-id\u003e\",\n      \"allowed_commands\": [\"ls\", \"pwd\", \"whoami\", \"uname\", \"date\", \"df\"]\n    },\n    \"settings\": {\"timeout\": 30}\n  }'\n```\n\n**Step 6 — Assign the tool to an agent**\n\nIn the Agent detail page, go to **Tools** and assign the SSH tool. The agent will now have an `ssh_execute` function available during execution.\n\n### Command security policy\n\nThe platform enforces a multi-layer security hierarchy for bash and SSH commands:\n\n1. **Platform-level** — always blocked: `rm -rf /`, `mkfs`, `shutdown`, `reboot`, pipe-to-shell patterns\n2. **Organization-level** — configure in **Settings → Security Policy** or via the `tool_bash_policy` MCP tool\n3. **Tool-level** — `allowed_commands` whitelist in the tool's transport config\n4. **Project-level** — additional restrictions in project settings\n5. **Agent-level** — per-agent overrides on the tool pivot\n\nMore restrictive layers always win. A command blocked at the platform level cannot be unblocked by any other layer.\n\n### SSH fingerprint management\n\nTrusted host fingerprints are viewable and removable via:\n\n- **API:** `GET /api/v1/ssh-fingerprints` / `DELETE /api/v1/ssh-fingerprints/{id}`\n- **MCP:** `tool_ssh_fingerprints` with `list` or `delete` action\n\nRemove a fingerprint when a host's SSH key is legitimately rotated — the next connection will re-verify via TOFU.\n\n## Architecture\n\nBuilt with Laravel 12, Livewire 4, and Tailwind CSS. Domain-driven design with 33 bounded contexts — table below shows the 17 primary domains:\n\n| Domain | Purpose |\n|--------|---------|\n| Agent | AI agent configs, execution, personality, evolution |\n| Crew | Multi-agent teams with lead/member roles |\n| Experiment | Pipeline, state machine, playbooks |\n| Signal | Inbound data ingestion |\n| Outbound | Multi-channel delivery |\n| Approval | Human-in-the-loop reviews and human tasks |\n| Budget | Credit ledger, cost enforcement |\n| Metrics | Measurement, revenue attribution |\n| Audit | Activity logging |\n| Skill | Reusable AI skill definitions |\n| Tool | MCP servers, built-in tools, risk classification |\n| Credential | Encrypted external service credentials |\n| Workflow | Visual DAG builder, graph executor |\n| Project | Continuous/one-shot projects, scheduling |\n| Assistant | Context-aware AI chat with 28 tools |\n| Marketplace | Skill/agent/workflow sharing |\n| Integration | External service connectors (GitHub, Slack, Notion, Airtable, Linear, Stripe, Generic) |\n\n## Docker Services\n\n| Service | Purpose | Port |\n|---------|---------|------|\n| app | PHP 8.4-fpm | -- |\n| nginx | Web server | 8080 |\n| postgres | PostgreSQL 17 | 5432 |\n| redis | Cache/Queue/Sessions | 6379 |\n| horizon | Queue workers | -- |\n| scheduler | Cron jobs | -- |\n| vite | Frontend dev server | 5173 |\n\n## Common Commands\n\n```bash\nmake start          # Start services\nmake stop           # Stop services\nmake logs           # Tail logs\nmake update         # Pull latest + migrate\nmake test           # Run tests\nmake shell          # Open app container shell\n```\n\nOr with Docker Compose directly:\n\n```bash\ndocker compose exec app php artisan tinker       # REPL\ndocker compose exec app php artisan test          # Run tests\ndocker compose exec app php artisan migrate       # Run migrations\n```\n\n## Upgrading\n\n```bash\nmake update\n```\n\nThis pulls the latest code, rebuilds containers, runs migrations, and clears caches.\n\n## Tech Stack\n\n- **Framework:** Laravel 12 (PHP 8.4)\n- **Database:** PostgreSQL 17\n- **Cache/Queue:** Redis 7\n- **Frontend:** Livewire 4 + Tailwind CSS 4 + Alpine.js\n- **AI Gateway:** PrismPHP\n- **Queue:** Laravel Horizon\n- **Auth:** Laravel Fortify (2FA) + Sanctum (API tokens)\n- **Audit:** spatie/laravel-activitylog\n- **API Docs:** dedoc/scramble (OpenAPI 3.1)\n- **MCP:** laravel/mcp (Model Context Protocol)\n\n## Contributing\n\nContributions are welcome. Please open an issue first to discuss proposed changes.\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feat/my-feature`)\n3. Make your changes and add tests\n4. Run `php artisan test` to verify\n5. Submit a pull request\n\nSee [`CONTRIBUTING.md`](CONTRIBUTING.md) for coding conventions, commit style, and PR checklist.\n\n## Community \u0026 Support\n\n- **Issues** — [Bug reports + feature requests](https://github.com/escapeboy/agent-fleet-o/issues)\n- **Discussions** — [Ask a question or share what you built](https://github.com/escapeboy/agent-fleet-o/discussions)\n- **Changelog** — [What changed in each release](CHANGELOG.md)\n- **Cloud version** — [fleetq.net](https://fleetq.net) (free tier, no credit card)\n\n## Star History\n\nIf FleetQ saves you time, a ⭐ helps others find it. GitHub ranks repos by star velocity.\n\n## License\n\nFleetQ Community Edition is open-source software licensed under the [GNU Affero General Public License v3.0](LICENSE).\n\n**TL;DR of AGPLv3:** You can self-host, modify, and run FleetQ for free — including commercial use. If you offer FleetQ as a hosted service to others, you must open-source your modifications. Questions? See [our AGPLv3 FAQ](https://www.gnu.org/licenses/agpl-3.0-faq.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fescapeboy%2Fagent-fleet-o","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fescapeboy%2Fagent-fleet-o","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fescapeboy%2Fagent-fleet-o/lists"}