Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

fused

CI

Fused agent toolkit — the data SDK is fused; the agent commands are top-level, the legacy proprietary SDK CLI is under fused workbench.

A CLI for end-to-end data work with cloud-native datasets.

Find → Load → Explore → Analyze → Decide → Act

It gives AI agents and developers a single command set to explore, run code against, and act on cloud data — with the compute environment managed for you.

Data lives in S3 as Parquet/Arrow files. Code runs in AWS Lambda — or fully locally when you don't have (or don't want) a cloud account, or before one is provisioned. Agents drive it by running the same fused commands a person would.

The surface

fused is the core layer that executes data work — the platform that data agents and apps build on. Its surface is the fused CLI (fused … / uv run fused …); running fused with no subcommand prints the help. (The former root MCP server and the bare widget UI — fused widget … / fused dev serve — have been removed.)

One command still speaks MCP: fused app serve exposes a single app folder's mcp.toml tools as a stdio MCP server, which fused-render registers with Claude. See spec/serve/app-mcp.md.

The full UI-first app experience — the local web control plane for the complete agent-orchestration workflow — is a separate product, Flow (fusedio/flow), that consumes fused's CLI.

Capabilities

fused gives an agent (or a person at the CLI) the tools for an end-to-end data workflow:

  • Find & inspect data — list buckets and objects, count and filter files, read a Parquet/Arrow/CSV schema and row count, and mint presigned download URLs.
  • Run code against that data — execute Python in an isolated, per-call sandbox with the environment's packages and input files, returning a result; run pytest suites with line and branch coverage.
  • Scale out — fan out across partitions from inside an execution using the same coordinator/worker pattern on every backend.
  • Verify & audit — scan code, dependencies, and input files before running them (fused code verify: static and dependency scans, an optional LLM spec check), and read the audit log (fused audit log).
  • Cache — content-address results so a repeat call returns a stored value instead of re-executing.
  • Serve & share — expose a route's code as an HTTP endpoint, locally or as a managed cloud deployment; publish apps and fused-render page bundles as opaque public share links (fused share create) on the managed backend or a provisioned AWS serving plane. A published page can optionally be made cloneable (--allow-clone), so a viewer who can reach it may download its source bundle from the page's own URL and take it back to a local folder.
  • Manage secrets & infrastructure — read/write provider secrets and plan/apply/teardown the cloud resources each environment needs.

The same commands work across pluggable backends, so code written against fused doesn't change when the execution target does. See Commands for the full list, or spec/overview.md for a deeper tour.

Quickstart

uv sync
uv run fused --help

Verify it works

Create an environment and run a one-line smoke test. You don't need a cloud account to get started: the local backend runs code on your machine in a cached virtualenv.

# Option A — AWS: runs code in Lambda, auto-provisioning a managed IAM role +
# S3 cache bucket; the compute function runs the env's container image
# (build it with `infra build-image`)
uv run fused env create prod --backend aws

# Option B — local, no AWS account required: runs code on this machine in a
# cached virtualenv (created with uv when available, else pip)
uv run fused env create dev --backend local

# Run code — with a single env, it is selected automatically
uv run fused code run -c "result = 1 + 1"   # -> result: 2

The paths are independent: the local backend makes no AWS calls, and AWS needs only credentials. For a guided first-time setup (backend choice, AWS credential checks, provisioning, and teardown), see the bundled agent-core:fused-setup skill.

On first use against AWS, fused automatically creates and manages the IAM role needed to run Lambda functions. You can override this with OPENFUSED_ROLE_ARN if you prefer to supply your own role.

Commands that permanently delete resources (secrets delete, env delete, infra teardown, udf retire) ask for confirmation unless you pass --yes.

Backends

Fused runs the same tools against a pluggable backend. Two run on infrastructure you control, plus one Fused-hosted backend:

  • AWS (aws, default) — storage in S3, compute in AWS Lambda, secrets in AWS Secrets Manager. The path for production and scale: it fans out horizontally and needs only AWS credentials (fused creates and manages the IAM role and supporting resources for you). The compute function runs the environment's container image, built and pushed with infra build-image.
  • Local (local) — storage on the local filesystem, compute on the host in a cached virtualenv built with uv or pip, secrets in an encrypted local file. No cloud account required. Use it for development, offline/air-gapped work, CI, or before a cloud environment is provisioned; code runs directly on the host, so there is no container isolation.
  • Fused (fused) — Fused's hosted, managed environment, reached over its data-plane endpoint (fused acts as an MCP client of the hosted tool surface). Code runs in a per-tenant sandbox Fused operates; the local side provisions nothing. See spec/onboarding/fused-onboarding.md for login → key → env setup.

All implement the same contract, so code written against one runs unchanged on the others — switching is just a config change. Select the backend with OPENFUSED_BACKEND=aws|local (see docs/configuration.md) or per named environment with fused env create --backend ….

Commands

Run fused <group> --help for the options of each command; the design reference is spec/cli/cli.md.

Command group What it does
fused files list|count|get|schema|upload List buckets and objects, count files (optionally by extension), mint a presigned download URL, read a Parquet/Arrow IPC/CSV schema and row count, upload content
fused code run Run Python on the resolved environment; assign result to return a value, register a @fused.udf, or pass --entrypoint NAME to call that function directly. Ship files with --input-file (repeatable; each lands under its basename). On the local backend, --project / --project-dir selects the project's .venv
fused code test Run a pytest file against user code; reports per-test outcomes plus line and branch coverage. On the local backend --project or --project-dir is required (pytest/coverage must be dev deps)
fused code verify Scan code, dependencies, and input files for security issues without executing; exits 1 on any BLOCK finding
fused audit log Recent security audit events from the local SQLite store (~/.openfused/audit.db, optionally merged with S3); filter by event type, status, or project
fused secrets get|put|list|delete Read, write, list, and delete provider secrets (AWS Secrets Manager, or the encrypted local store). delete prompts unless --yes
fused project new|list|show|status|… Scaffold and list workspace projects; show prints the project's context packet (identity, SKILL.md contract, dataset notes, UDF scripts, resolved environment); status shows live deploy status from the resolved env's cloud snapshot
fused env create|update|delete|list|show|default Manage named environments. delete removes the config only (cloud resources untouched) and prompts unless --yes
fused infra plan|apply|build-image|lambda-reset|teardown|serve Plan and reconcile an environment's cloud resources, build its container image, reset its Lambda functions, or tear everything down (teardown prompts unless --yes)
fused udf deploy|promote|rollback|retire Deploy a UDF to its preview or release channel, promote preview to release, roll release back, or retire it (retire prompts unless --yes)
fused share … Publish apps and mint/manage served URLs; share cache-clear TOKEN busts a deployed route's cached results
fused app serve Serve one app folder's mcp.toml tools as a stdio MCP server (spec/serve/app-mcp.md)
fused doctor Survey every project in every workspace for health issues; --fix remediates

Consuming-app teamwork tool (Tier B, not part of fused). A consuming app such as Flow injects its own loopback teamwork MCP into the agent runs it spawns — e.g. an approval gate requested through ask_user(… effect: "approval_gate", effectArgs: { verb, detail }) (verb: storage_write | secret_write | external_side_effect) that an agent calls before a gated Act to request human approval (the approval-gate contract lives in spec/security/autonomy.md §3; cooperative/advisory). That surface is the consuming app's, not fused's.

Configuration

Configure fused with named environments (fused env) or environment variables. The full list of variables and their defaults lives in docs/configuration.md.

Named environments

fused env manages named configurations stored in ~/.openfused/envs.json, so you can switch between backends without managing environment variables manually:

# Create and provision a named AWS environment
fused env create prod --backend aws --prefix myapp-

# Run a command against a specific environment
fused --env prod secrets list
fused --env staging secrets list

# Pin a project's default environment (validated against stored envs)
fused project set my-project --env prod

Environment resolution order for every command:

  1. --env flag or OPENFUSED_ENV env var → explicit override
  2. Inside a project with [project].default_env set in openfused.toml → manifest pin
  3. Exactly one environment exists → selected automatically (sole-env auto)
  4. Multiple environments, no pin → error: set default_env or pass --env

See fused env --help for the full subcommand list.

Observability

Logs, CloudWatch metrics (Lambda + cache), the audit log, and the system signals an operator should watch (concurrency, cache hit rate, bucket/DB growth) are documented in docs/observability.md.

Examples

Runnable examples live in examples/ — from hello_world_python.py and single-file DuckDB queries to multi-step pipelines (examples/github_archive/, examples/ais_sf_ferries/) and Lambda fan-out across partitions. Run any of them with:

uv run fused code run examples/hello_world_python.py --file

For the conventions these examples follow when you build your own project, see docs/project-structure.md.

Requirements

  • Python 3.11+ and uv
  • For the AWS backend: AWS credentials with permissions to create Lambda functions, manage IAM roles, and read/write S3. The environment's container image is built in AWS CodeBuild by default (no local Docker); pass --builder local to build with a host Docker daemon instead
  • For the local backend: nothing beyond Python — uv is used for fast venv creation when present, else pip

Optional extras

pip install fused alone gives you the CLI, the local backend and import fused. It does not install mcp, boto3, cryptography, ty, anthropic, pyarrow, pandas or numpy. Everything heavier is an opt-in extra:

Extra Installs Needed for
data pyarrow, pandas, numpy fused.run() / fused.submit() on DataFrame results, get_file_schema, the SDK's schema conversions and table/H3 readers
mcp mcp (>=1.8.0,<2) fused app serve (the per-app stdio MCP server fused-render registers with Claude) and the fused backend, whose data plane is an MCP endpoint
aws boto3, pyjwt[crypto] (i.e. cryptography) + data the aws backend and everything built on it: fused infra plan/apply/serve/lambda-reset, the serve plane and its JWS verification, fused share's AWS paths, the audit log's S3 sink
verify ty, anthropic the verify pipeline's type-checker scanner and AI-judged spec scanner
geo shapely, geopandas, pyproj, mercantile, pillow, xarray, rioxarray, rasterio + data the vendored SDK's raster/vector/tile helpers
batch, raster, vector same as geo legacy SDK names, kept as aliases
workbench selenium, fastmcp the fused workbench CLI's json-ui run and MCP/canvas commands
local keyrings.alt a file-based local secrets store on hosts with no OS keychain (plaintext on disk)
hubspot, snowflake, dropbox the matching client library the SDK's connectors for those services
all every extra above except local the full surface, without silently enabling plaintext secrets

A missing extra fails with an actionable message such as pip install 'fused[data]' at the point of use, not a bare ModuleNotFoundError or an import error at startup. The verify scanners degrade to a WARN finding instead. The widget resolver's compute sandbox installs its own requirements and does not depend on these extras.

Install what you need, e.g. pip install 'fused[mcp]' for fused app serve, pip install 'fused[aws,verify]', or pip install 'fused[all]' for everything.

Documentation

Release files for fused 2.9.3b10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fused 2.9.3b10
File Size Uploaded
fused-2.9.3b10.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for fused 2.9.3b10
File Interpreter ABI Platform
fused-2.9.3b10-py3-none-any.whl Python 3 none any Details

Total release size: 3.7 MB

Release files / fused-2.9.3b10.tar.gz

Download URL fused-2.9.3b10.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
c9176c8100d2f1628fdea01f219371ffd0e8fff58259b582841410dccc543511
BLAKE2b-256 checksum
How to use checksums
7402bfad39b84af6cb6210f4b5fdb512c431b56301f79a845d7359a5a7f5afa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / fused-2.9.3b10-py3-none-any.whl

Download URL fused-2.9.3b10-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
9321fb862e7085cef4fa835361154d7184ca8f7866ddece319b62f54795bdc52
BLAKE2b-256 checksum
How to use checksums
1f2f49103d7844700057b1955e249c485a0cd33979f7c1b24f04e227feea0294
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.9.3b10 This release

2 release files

2.8.4

2 release files

2.8.3

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.30.1

2 release files

1.30.0

2 release files

1.29.0

2 release files

1.27.0

2 release files

1.26.3

2 release files

1.26.2

2 release files

1.26.1

2 release files

1.26.0

2 release files

1.25.1

2 release files

1.25.0

2 release files

1.24.5

2 release files

1.24.0

2 release files

1.23.0

2 release files

1.22.8

2 release files

1.22.5

2 release files

1.22.1

2 release files

1.22.0

2 release files

1.21.5

2 release files

1.21.4

2 release files

1.21.3

2 release files

1.21.2

2 release files

1.21.1

2 release files

1.21.0

2 release files

1.20.1

2 release files

1.19.1

2 release files

1.19.0

2 release files

1.18.0

2 release files

1.17.0

2 release files

1.16.1

2 release files

1.16.0

2 release files

1.15.2

2 release files

1.15.1

2 release files

1.15.0

2 release files

1.14.2

2 release files

1.14.1

2 release files

1.14.0

2 release files

1.12.1

2 release files

1.12.0

2 release files

1.11.4

2 release files

1.11.1

2 release files

1.11.0

2 release files

1.10.5

2 release files

1.10.4

2 release files

1.10.3

2 release files

1.10.2

2 release files

1.10.1

2 release files

1.10.0

2 release files

1.9.8

2 release files

1.9.7

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.1

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.6

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page