Flyto Core

AI 与智能体

by flytohub

面向 AI agents 的执行引擎,内置 412 个模块,覆盖 browser、file、Docker、data 与 crypto。

帮 AI agents 省掉繁琐的工具接入与执行编排,凭 412 个内置模块一次打通浏览器、文件、Docker 到加密能力,做复杂自动化更顺手。

什么是 Flyto Core

面向 AI agents 的执行引擎,内置 412 个模块,覆盖 browser、file、Docker、data 与 crypto。

README

MseeP.ai Security Assessment Badge Verified on MseeP

Flyto2 Core — Verified, Replayable Execution

PyPI version License Python 3.10+

<!-- mcp-name: io.github.flytohub/flyto-core -->

Turn AI work into verified, replayable procedures.

AI said it finished. Flyto2 shows the proof.

The open-source execution engine for AI agents. 468 modules, MCP-native, triggers, queue, versioning, metering.

flyto2.com · Cloud Automation · Documentation · MCP Docs · YouTube

Flyto2 is one product delivered as three independently usable packages:

ChooseWhen you need
flyto-aiUnderstand, route, and govern new work and provider use.
flyto-blueprintStore, learn from, and score reusable procedures; it never executes them.
flyto-coreValidate schemas, execute and replay deterministically, and emit evidence.

flyto-core is a standalone execution package: it does not require the other two packages to validate and run a procedure or produce evidence. It does not own intent/provider governance, procedure learning/scoring, or hosted product and account logic.

This repository records that boundary as flyto.product-contract.v1 in flyto-product.toml.

Flyto2 Core is the open-source runtime behind Flyto2. It is built for people who want an AI agent framework that actually runs work: browser automation, API integration, web scraping, MCP server automation, replayable YAML recipes, evidence capture, and deterministic tools that agents can call without inventing unreviewed code.

Use it when the question is simple but the job is annoying: "open this page, capture the proof, extract the data, check performance, and let me retry only the failed step." Flyto2 Core gives you a local execution engine for browser automation, workflow replay, AI-agent tool calls, Web Vitals checks, screenshot capture, structured extraction, and audit-ready evidence.

The current public inventory is 468 registry-backed modules across 85 catalog categories, including triggers, queue modules, workflow versioning, metering hooks, browser automation, API calls, data transforms, verification, files, and crypto.

Good fit if you searched for:

  • open source AI agent framework for production workflows
  • Python AI workflow automation with Playwright
  • MCP server automation with trace and replay
  • browser automation that can resume from a failed step

Try in 30 seconds

bash
pip install flyto-core[browser] && playwright install chromium
flyto recipe competitor-intel --url https://github.com/pricing
code
  Step  1/12  browser.launch         ✓      420ms
  Step  2/12  browser.goto           ✓    1,203ms
  Step  3/12  browser.evaluate       ✓       89ms
  Step  4/12  browser.screenshot     ✓    1,847ms  → saved intel-desktop.png
  Step  5/12  browser.viewport       ✓       12ms  → 390×844
  Step  6/12  browser.screenshot     ✓    1,621ms  → saved intel-mobile.png
  Step  7/12  browser.viewport       ✓        8ms  → 1280×720
  Step  8/12  browser.performance    ✓    5,012ms  → Web Vitals captured
  Step  9/12  browser.evaluate       ✓       45ms
  Step 10/12  browser.evaluate       ✓       11ms
  Step 11/12  file.write             ✓        3ms  → saved intel-report.json
  Step 12/12  browser.close          ✓       67ms

  ✓ Done in 10.3s — 12/12 steps passed

Screenshots captured. Performance metrics extracted. JSON report saved. Every step traced.

<p align="center"> <img src="demo/flyto-core-demo.gif" alt="flyto-core demo: API pipeline → replay → browser automation" width="720"> </p>

What happens when step 8 fails?

With a shell script you re-run the whole thing. With flyto-core:

bash
flyto replay --from-step 8

Steps 1–7 are instant. Only step 8 re-executes. Full context preserved.


3 recipes to try now

bash
# Competitive pricing: screenshots + Web Vitals + JSON report
flyto recipe competitor-intel --url https://competitor.com/pricing

# Full site audit: SEO + accessibility + performance
flyto recipe full-audit --url https://your-site.com

# Web scraping → CSV export
flyto recipe scrape-to-csv --url https://news.ycombinator.com --selector ".titleline a"

Every recipe is traced. Every run is replayable. See all 41 recipes ->


Install

bash
pip install flyto-core            # Core engine + CLI + MCP server
pip install flyto-core[browser]   # + browser automation (Playwright)
playwright install chromium        # one-time browser setup

The 85-line problem

Here's what competitive pricing analysis looks like in Python:

<table> <tr> <td width="50%">

Python — 85 lines

python
import asyncio, json, time
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page()
        await page.goto("https://competitor.com/pricing")

        # Extract pricing
        prices = await page.evaluate("""() => {
            const cards = document.querySelectorAll(
              '[class*="price"]'
            );
            return Array.from(cards).map(
              c => c.textContent.trim()
            );
        }""")

        # Desktop screenshot
        await page.screenshot(
            path="desktop.png", full_page=True
        )

        # Mobile
        await page.set_viewport_size(
            {"width": 390, "height": 844}
        )
        await page.screenshot(
            path="mobile.png", full_page=True
        )

        # Performance
        perf = await page.evaluate("""() => {
            const nav = performance
              .getEntriesByType('navigation')[0];
            return {
              ttfb: nav.responseStart,
              loaded: nav.loadEventEnd
            };
        }""")

        # Save report
        report = {
            "prices": prices,
            "performance": perf,
        }
        with open("report.json", "w") as f:
            json.dump(report, f, indent=2)

        await browser.close()

asyncio.run(main())
</td> <td width="50%">

flyto-core — 12 steps

yaml
name: Competitor Intel
steps:
  - id: launch
    module: browser.launch
  - id: navigate
    module: browser.goto
    params: { url: "{{url}}" }
  - id: prices
    module: browser.evaluate
    params:
      script: |
        JSON.stringify([
          ...document.querySelectorAll(
            '[class*="price"]'
          )
        ].map(e => e.textContent.trim()))
  - id: desktop_shot
    module: browser.screenshot
    params: { path: desktop.png, full_page: true }
  - id: mobile
    module: browser.viewport
    params: { width: 390, height: 844 }
  - id: mobile_shot
    module: browser.screenshot
    params: { path: mobile.png, full_page: true }
  - id: perf
    module: browser.performance
  - id: save
    module: file.write
    params:
      path: report.json
      content: "${prices.result}"
  - id: close
    module: browser.close
</td> </tr> <tr> <td>

No trace. No replay. No timing. If step 5 fails, re-run everything.

</td> <td>

Full trace. Replay from any step. Per-step timing. Every run is debuggable.

</td> </tr> </table>

Current Platform Snapshot

  • Open-source AI agent framework boundary: MCP-compatible clients call reviewed flyto-core modules through schemas, not arbitrary generated production code.
  • AI workflow automation substrate for browser automation, API workflows, data/file operations, AI calls, notifications, verification, trace, evidence, and replay.
  • 468 registry-backed modules across 85 catalog categories. docs/TOOL_CATALOG.md is generated from ModuleRegistry, not hand-counted.
  • 41 built-in recipes for audit, browser automation, data/image work, DevOps, integrations, and deterministic verification.
  • Deterministic verification modules (verification.* with warroom.* compatibility aliases) support site graph discovery, replay scenario generation, run evidence, and report packs.
  • Hardened outbound and file access in the 2.26.x line: guarded HTTP clients prevent SSRF bypasses, and file/data writes are confined through the sandbox path guard.
  • Replayable browser and workflow execution remains the core contract: every step can produce trace data, evidence snapshots, and targeted replay from the failing point.

Public Naming Contract

  • Use Flyto2 for the product and company-facing brand. Do not use a shortened legacy spelling in public docs, examples, or SEO copy.
  • Use flyto2.com, docs.flyto2.com, and blog.flyto2.com as the public citation surfaces.
  • Public example contact addresses should use registered @flyto2.com mailboxes such as support@flyto2.com, security@flyto2.com, privacy@flyto2.com, sales@flyto2.com, team@flyto2.com, dev@flyto2.com, alerts@flyto2.com, oncall@flyto2.com, reports@flyto2.com, noreply@flyto2.com, dmarc@flyto2.com, conduct@flyto2.com, admin@flyto2.com, pentest@flyto2.com, hello@flyto2.com, and info@flyto2.com.
  • Public docs, blog, and landing pages should cite the current core facts above instead of stale module counts.

Engine Features

  • Execution Trace — structured record of every step: input, output, timing, status
  • Replay — re-execute from any step with the original (or modified) context
  • Breakpoints — pause execution at any step, inspect state, resume
  • Evidence Snapshots — full state before and after each step boundary
  • Data Lineage — track data flow across steps, build dependency graphs
  • Timeout Guard — configurable workflow-level and per-step timeout protection

Architecture

CLI, MCP, HTTP, Python, and packaged recipes converge on the same workflow engine, module registry, policy, trace, evidence, and replay boundaries. Start with the Technical Whitepaper, then use the Architecture Map and exhaustive source reference for implementation detail.

Configuration

Core is configured through package extras, CLI arguments, workflow parameters, module policy, environment variables, and local run state. Security-sensitive network, filesystem, auth, callback, and permission switches are documented in Configuration; all 107 detected environment readers are linked to source in the generated configuration reference.


Extensions

Core manages two — and only two — kinds of installable extension:

KindName prefixEntry-point group
Module packsflyto-modules-flyto.modules
Pluginsflyto-plugin-flyto.plugins

Admission is by prefix and entry-point group alone, so a new pack such as flyto-modules-robotics works the day it is published — no Core source names any extension, and none has to change for one.

bash
export FLYTO_EXTENSIONS_INSTALL_ENABLED=1   # operator opt-in, off by default

curl -H "Authorization: Bearer $TOKEN" localhost:8333/v1/extensions
curl -X POST -H "Authorization: Bearer $TOKEN" \
     -H 'Content-Type: application/json' \
     -d '{"name": "flyto-modules-robotics"}' \
     localhost:8333/v1/extensions/install

An install is only reported successful once the installed distribution is proved to declare an entry point in its kind's group; a first install that fails that proof is rolled back, an upgrade that fails it is left in place so the operator is not left with nothing. Upgrades and uninstalls report restart_required, because Python cannot un-import code already loaded. Failures return a stable error code and never package-manager output. See API.


API / Module Reference

468 Modules, 85 Catalog Categories

CategoryCountExamples
browser.*54launch, goto, click, evaluate, screenshot, performance, challenge
flow.*24switch, loop, branch, parallel, retry, circuit breaker, rate limit
array.*15filter, sort, map, reduce, unique, chunk, flatten
api.*13OpenAI, Anthropic, Gemini, Notion, Slack, Telegram
data.*13JSON, YAML, CSV, XML parse/generate/convert
string.*11reverse, uppercase, split, replace, trim, slugify, template
ai.*10chat, model calls, vision, embeddings, moderation
object.*10keys, values, merge, pick, omit, get, set, flatten
testing.*10assertions, scenarios, E2E steps, reports
image.*9resize, convert, crop, rotate, watermark, OCR, compress
verify.*9evidence, visual diff, rulesets, annotations
file.*8read, write, copy, move, delete, exists, edit, diff
stats.*8mean, median, percentile, correlation, standard deviation
test.*8API, browser, and visual checks
check.*7validation and guard checks
crypto.*7AES encrypt/decrypt, JWT create/verify, hashes
http.*7get, request, batch, paginate, session
validate.*7email, url, json, phone, credit card
66 more prefixes221Docker, archive, math, k8s, network, PDF, AWS, cache, git

See the Full Module Catalog for every module, parameter, and description.


How is this different?

Playwright / SeleniumShell scriptsflyto-core
Step 8 failsRe-run everythingRe-run everythingflyto replay --from-step 8
What happened at step 3?Add print(), re-runAdd echo, re-runFull trace: input, output, timing
Browser + API + file I/OWrite glue code3 languagesAll built-in
Share with team"Clone my repo""Clone my repo"pip install flyto-core
Run in CIWrap in pytest/bashFragileflyto run workflow.yaml

Usage

<details> <summary><b>CLI</b> — run workflows from the terminal</summary>
bash
# Run a built-in recipe
flyto recipe site-audit --url https://example.com

# Run your own YAML workflow
flyto run my-workflow.yaml

# List all recipes
flyto recipes
</details> <details> <summary><b>MCP Server</b> — for Claude Code, Cursor, Windsurf</summary>
bash
pip install flyto-core
claude mcp add flyto-core -- python -m core.mcp_server

Or add to your MCP config:

json
{
  "mcpServers": {
    "flyto-core": {
      "command": "python",
      "args": ["-m", "core.mcp_server"]
    }
  }
}

Your AI gets all 468 modules as tools.

</details> <details> <summary><b>HTTP API</b> — for integrations and remote execution</summary>
bash
pip install flyto-core[api]
flyto serve
# ✓ flyto-core running on 127.0.0.1:8333
EndpointPurpose
POST /v1/workflow/runExecute workflow with evidence + trace
POST /v1/workflow/{id}/replay/{step}Replay from any step
POST /v1/executeExecute a single module
GET /v1/modulesDiscover all modules
POST /mcpMCP Streamable HTTP transport
</details> <details> <summary><b>Python API</b> — for programmatic use</summary>
python
import asyncio
from core.modules.registry import ModuleRegistry

async def main():
    result = await ModuleRegistry.execute(
        "string.reverse",
        params={"text": "Hello"},
        context={}
    )
    print(result)  # {"ok": True, "data": {"result": "olleH"}}

asyncio.run(main())
</details>

41 Built-in Recipes

No code required — every recipe is a YAML workflow template:

bash
flyto recipes                  # List all recipes

# Audit & Testing
flyto recipe full-audit       --url https://example.com
flyto recipe competitor-intel --url https://github.com/pricing
flyto recipe site-audit       --url https://example.com
flyto recipe web-perf         --url https://example.com
flyto recipe flyto2-ui-login-smoke --login_url https://myapp.com/login --page_url https://myapp.com/projects --username team@flyto2.com --password "$FLYTO_TEST_PASSWORD"
flyto recipe form-fill        --url https://myapp.com/form --data '{"email":"dev@flyto2.com"}'

# Browser Automation
flyto recipe screenshot        --url https://example.com
flyto recipe responsive-report --url https://example.com
flyto recipe page-to-pdf       --url https://example.com
flyto recipe visual-snapshot   --url https://example.com
flyto recipe webpage-archive   --url https://example.com
flyto recipe scrape-page       --url https://example.com --selector h1
flyto recipe scrape-links      --url https://example.com
flyto recipe scrape-table      --url https://en.wikipedia.org/wiki/YAML --selector .wikitable
flyto recipe stock-price       --symbol AAPL

# Data & Image
flyto recipe ocr               --input scan.png
flyto recipe csv-to-json       --input data.csv
flyto recipe image-resize      --input photo.jpg --width 800
flyto recipe image-convert     --input photo.png --format webp

# Network & DevOps
flyto recipe port-scan         --host example.com
flyto recipe whois             --domain example.com
flyto recipe monitor-site      --url https://myapp.com
flyto recipe docker-ps
flyto recipe git-changelog

# Integrations
flyto recipe scrape-to-slack   --url https://example.com --selector h1 --webhook $SLACK_URL
flyto recipe github-issue      --url https://example.com --owner me --repo my-app --title "Bug" --token $GITHUB_TOKEN

Each recipe is a YAML workflow template. Run flyto recipe <name> --help for full options. See docs/RECIPES.md for full documentation.


Write Your Own Workflows

Recipes are just YAML files. Write your own:

yaml
name: price-monitor
steps:
  - id: open
    module: browser.launch
    params: { headless: true }

  - id: page
    module: browser.goto
    params: { url: "https://competitor.com/pricing" }

  - id: prices
    module: browser.evaluate
    params:
      script: |
        JSON.stringify([...document.querySelectorAll('.price')].map(e => e.textContent))

  - id: save
    module: file.write
    params: { path: "prices.json", content: "${prices.result}" }

  - id: close
    module: browser.close
bash
flyto run price-monitor.yaml

Every run produces an execution trace and state snapshots. If step 3 fails, replay from step 3 — no re-running the whole thing.


For Module Authors

python
from core.modules.registry import register_module
from core.modules.schema import compose, presets

@register_module(
    module_id='string.reverse',
    version='1.0.0',
    category='string',
    label='Reverse String',
    description='Reverse the characters in a string',
    params_schema=compose(presets.INPUT_TEXT(required=True)),
    output_schema={'result': {'type': 'string', 'description': 'Reversed string'}},
)
async def string_reverse(context):
    text = str(context['params']['text'])
    return {'ok': True, 'data': {'result': text[::-1]}}

See Module Specification for the complete guide.


Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Testing

bash
python -m pytest
python -m ruff check .
flyto recipe full-audit --url https://example.com

Security

Report security vulnerabilities via security@flyto2.com. See SECURITY.md for the security policy and the environment variables that define the filesystem and outbound-network boundaries.

SECURITY_STATUS.md lists every published advisory with its severity, affected range, fixed-in version, and the regression test that covers it. Two boundaries are enforced registry-wide by tests that fail the build — every module taking a caller-supplied path must reach the filesystem sandbox helper, and every module taking a caller-supplied URL or host must reach an SSRF guard — so coverage is a CI property rather than a convention.

License

Apache License 2.0 — free for personal and commercial use.


Cloud Automation · Pricing · flyto2.com

Hosted deployment

A hosted deployment is available on Frontier AI.

常见问题

Flyto Core 是什么?

面向 AI agents 的执行引擎,内置 412 个模块,覆盖 browser、file、Docker、data 与 crypto。

相关 Skills

Claude接口

by anthropics

Universal
热门

面向接入 Claude API、Anthropic SDK 或 Agent SDK 的开发场景,自动识别项目语言并给出对应示例与默认配置,快速搭建 LLM 应用。

想把Claude能力接进应用或智能体,用claude-api上手快、兼容Anthropic与Agent SDK,集成路径清晰又省心

AI 与智能体
未扫描170.7k

RAG架构师

by alirezarezvani

Universal
热门

聚焦生产级RAG系统设计与优化,覆盖文档切块、检索链路、索引构建、召回评估等关键环节,适合搭建可扩展、高准确率的知识库问答与检索增强应用。

面向RAG落地,把知识库、向量检索和生成链路系统串联起来,做架构设计时更清晰,也更少踩坑。

AI 与智能体
未扫描24.7k

多智能体架构

by alirezarezvani

Universal
热门

聚焦多智能体系统架构设计,梳理 Supervisor、Swarm、分层和 Pipeline 等模式,覆盖角色定义、通信协作与性能评估,适合规划稳健可扩展的 AI agent 编排方案。

帮你系统解决多智能体应用的架构设计与协同编排难题,适合构建复杂 AI 工作流,成熟度高、社区认可也很亮眼。

AI 与智能体
未扫描24.7k

相关 MCP Server

知识图谱记忆

编辑精选

by Anthropic

热门

Memory 是一个基于本地知识图谱的持久化记忆系统,让 AI 记住长期上下文。

帮 AI 和智能体补上“记不住”的短板,用本地知识图谱沉淀长期上下文,连续对话更聪明,数据也更可控。

AI 与智能体
89.7k

顺序思维

编辑精选

by Anthropic

热门

Sequential Thinking 是让 AI 通过动态思维链解决复杂问题的参考服务器。

这个服务器展示了如何让 Claude 像人类一样逐步推理,适合开发者学习 MCP 的思维链实现。但注意它只是个参考示例,别指望直接用在生产环境里。

AI 与智能体
89.2k

by deusdata

热门

持久化的代码库知识图谱,可跨会话保留上下文,在 session 重启或上下文压缩后仍能继续使用。

专治 AI 编程助手“会话失忆”,把代码库沉淀为持久知识图谱,重启或压缩上下文后也能无缝续上开发状态。

AI 与智能体
37.3k

评论