A headless TypeScript-based agent runtime framework with built-in multi-tier sandboxes, Markdown-driven logic, and MCP tool integration.
Flue is an agent runtime framework developed by the Astro team (withastro org), positioned as "The Agent Harness Framework." It provides Claude Code-like agent orchestration capabilities but entirely without TUI/GUI, exposed as a pure TypeScript SDK that gives developers fine-grained programmatic control over agent lifecycle, tool injection, sandbox environments, and output structures.
Core features include: a default virtual sandbox based on just-bash (no containers required), a multi-tier sandbox system supporting local filesystem and remote containers (e.g., Daytona), Markdown-driven Skills/Context definitions with auto-discovery, Valibot-based Typed Result Schema validation, Session persistence with sub-agent (Tasks) mechanism, three-level Role override (agent/session/call), Remote MCP Tools support (streamable HTTP and SSE), and a Connector design delivered as Markdown installation instructions.
Flue is runtime-agnostic, deployable to Node.js, Cloudflare (with Durable Objects persistence), GitHub Actions, GitLab CI/CD, and more. Agents can be exposed as HTTP endpoints by declaring triggers = { webhook: true }. Typical scenarios span the full spectrum from simple tool-free agents (e.g., translation) to full coding agents (remote containers + MCP + privileged CLIs).
The project is currently in Experimental status with APIs subject to change. It uses pnpm workspace + Turborepo for monorepo management, with core packages @flue/sdk and @flue/cli, requiring Node.js ≥ 22.
Agent Programming Model#
- Each agent file exports
triggers(trigger declarations) and adefaultasync function (handler) receivingFlueContext(withinit,payload,env) - Initialization chain:
init({ model, sandbox, providers })→agent.session()→session.prompt()/session.skill()/session.task() - Model format:
provider/model-name, e.g.,anthropic/claude-sonnet-4-6,openai/gpt-5.5
Sandbox System#
- Virtual sandbox (default): based on
just-bash, no containers, suitable for high-traffic scenarios - Local filesystem sandbox:
sandbox: 'local'mounts the host filesystem - Remote container sandbox: via Connector adapters (e.g., Daytona), providing full Linux environments
- Custom sandbox: supports passing custom Bash factory functions
Tools & Integrations#
- Privileged CLI injection:
defineCommand()injects CLI tools with environment variables on demand (e.g.,gh,npm) - Remote MCP Tools: supports streamable HTTP (default) and SSE transports for connecting to remote MCP servers
- Connectors: third-party service adapters delivered as Markdown installation instructions, executed by AI coding agents via
flue add <connector>
CLI Commands#
| Command | Description |
|---|---|
flue dev | Start local dev server (default port 3583) |
flue run <agent-name> | Run a specific agent |
flue add <connector> | Install a connector |
Unconfirmed Information#
- Whether
@flue/sdkand@flue/cliare published to npm public registry - Current main branch version number not explicitly labeled
- Full LLM Provider support list
- Detailed Cloudflare deployment documentation