Skip to content

Repository files navigation

Fused CLI

fused-cli is the config-as-code and operations CLI for the Fused integration gateway. Use it to connect to an Engine, import APIs, generate SDKs, and deploy MCP servers.

Installation

macOS and Linux

curl -sSL https://raw.githubusercontent.com/Usefused/cli/main/install.sh | bash

The script asks before installing to /usr/local/bin. To inspect it first:

curl -sSL -o install.sh https://raw.githubusercontent.com/Usefused/cli/main/install.sh
less install.sh
bash install.sh

For CI or a specific release:

curl -sSL https://raw.githubusercontent.com/Usefused/cli/main/install.sh | ASSUME_YES=1 bash
curl -sSL https://raw.githubusercontent.com/Usefused/cli/main/install.sh | VERSION=v1.0.0 ASSUME_YES=1 bash

Windows

irm https://raw.githubusercontent.com/Usefused/cli/main/install.ps1 | iex

Install a specific release:

$env:VERSION="v1.0.0"; irm https://raw.githubusercontent.com/Usefused/cli/main/install.ps1 | iex

The installer writes to %LOCALAPPDATA%\Programs\fused-cli and adds it to the user PATH.

Go or manual download

go install github.com/Usefused/cli@latest

Alternatively, download the archive for your platform from Releases and place fused-cli on your PATH.

Connect to an Engine

fused-cli --engine-url http://localhost:8081 login
fused-cli whoami
fused-cli workspace services list

Automation can use --key, FUSED_API_KEY, or FUSED_LICENSE_KEY instead of browser login. See CLI setup and operation for configuration precedence, headless login, credentials, teams, and automation-safe execution.

Install skills for your coding agent

The CLI ships task-specific skills that teach coding agents how to discover services, inspect authentication, prepare reviewable SDK/MCP config, and use plan/apply safely.

# See the bundled skills.
fused-cli skill list

# Install all skills for an agent.
fused-cli skill install --for codex

# Or install one skill only.
fused-cli skill install --for codex --skill fused-sdk

Supported targets are codex, claude, antigravity, cursor, and windsurf. Use --scope project for repository-local installation or --scope user where the target supports it:

fused-cli skill install --for codex --scope project

Installation writes the files into the selected agent's normal skill or rules directory. Release installs use the versioned skill snapshot shipped beside the binary, so this also works offline. The agent discovers and loads the relevant skill when a task matches; the command does not inject new instructions into an already-running context.

Import an API

Plan the import first, review it, then apply the exact plan:

fused-cli import plan ./openapi.json \
  --name "Internal Billing API" \
  --slug billing-api

fused-cli import apply

For a webhook-only contract that has its own source info.version, attach it to an exact existing service version without combining specifications or rewriting provenance:

fused-cli import plan ./webhooks.openapi.yaml \
  --name "Internal Billing API" \
  --slug billing-api \
  --target webhooks \
  --destination-version 2026-08-19

fused-cli import apply

For a remote specification:

fused-cli import plan \
  --url https://developer.example.com/openapi.json \
  --name "Example API" \
  --slug example-api

fused-cli import apply

When you have a provider URL rather than a known specification, start one reviewed discovery session. Fused tries a machine-readable contract first, then performs a bounded documentation crawl when necessary. In an interactive terminal, the command opens the Engine's browser review when the draft is ready and waits for you to finish that review:

fused-cli import discover \
  --url https://docs.example.com/api \
  --name "Example API" \
  --slug example-api

# Resume the same authoritative session after interruption.
fused-cli import discover --session <session-id>

fused-cli import apply

Pass --no-browser to print the review URL and wait without opening it. For flag-driven automation, use global --no-input with --all or repeat --select METHOD:/path, and either repeat --accept-proposal <id> or pass --reject-enrichment. Automation does not open or wait for browser review.

Discovery never creates or activates the service. When review produces a plan, the CLI atomically writes .fused/.state/import.plan.json, replacing the previous import-plan receipt at that path. Use --receipt-out <path> to choose a different receipt; an existing file at that path is replaced the same way. Run the separate fused-cli import apply command to commit exactly that reviewed plan; with no --receipt, it consumes the default receipt.

Fused detects the supported source format. See Importing services for reviewed discovery, GraphQL, AsyncAPI, Postman, WSDL, Google Discovery, overlays, strict mode, and diagnostics.

Create an SDK, API app, MCP server, or webhook registration

Start from the service you want to use. The CLI defaults its version, lets you accept all operations with Enter or search a narrower set, enables the service when needed, and drives the existing plan/apply boundaries:

fused-cli init support-sdk --sdk --service linear
fused-cli init support-api --api --service linear
fused-cli init support-agent --mcp \
  --description "Read and update support issues" \
  --service linear

SDK mode downloads a typed package, API mode prints a central Engine REST request template without generating a package, and MCP mode reports the hosted server connection details. Omit the mode in a terminal to choose it. For automation, pass --no-input and one explicit mode. SDK, API, and MCP modes also require --operation or --select-all for every service.

Pass --no-apply to plan without applying. Fused writes the app config and any required workspace service additions, saves every plan receipt whose dependencies are already active, applies no desired-state changes, and starts no generation or download job. When a service still needs activation, its workspace receipt is saved and app planning waits until that receipt is applied. The output prints the exact remaining commands; SDK completion includes sdk apply --download.

Create an inbound webhook registration with --webhook. It requires services, but no operation selection or app version:

fused-cli init alerts --webhook --service github \
  --secret 'github=${bucket.default.secret.github_signing}'

This writes .fused/webhooks/alerts.yaml, enables missing workspace services, then plans and applies the webhook registration and prints its ingress URL. Omit --secret only when the provider does not require a signing secret. --secret accepts bucket references, never literal credentials. Use --no-apply to retain validated desired state and available receipts for later apply. To receive events in an SDK, set webhook_attachment: alerts and explicitly select that SDK's webhook events. To update the registration later, edit its file and use webhook plan / webhook apply.

To extend an existing app without creating another file, use extend. It reads the existing YAML to infer SDK, API, or MCP mode. A real change advances a stable SemVer version to its next minor, while an idempotent extension keeps the current version. Terminal confirmation shows the inferred successor, and --no-input uses the same deterministic result:

fused-cli extend support-sdk \
  --service slack --select-all slack --no-input

The YAML path and stable app family stay the same; apply creates the new immutable version. Pass --version to override inference. Prerelease and non-SemVer versions require an explicit successor.

Control an existing app explicitly

Every initialized app remains ordinary config as code. Edit its YAML, then use the explicit lifecycle when you want separate reviews or structured output:

apiVersion: fused/v1
kind: sdk
name: support-sdk
version: "1.0.0"
bucket: default
services:
  linear:
    version: "v1"
    operations: [getIssue, updateIssue]
fused-cli sdk plan --json -f .fused/sdks/support-sdk.yaml
fused-cli sdk apply --json -f .fused/sdks/support-sdk.yaml

Standalone validation remains available for offline checks, but plan already validates before contacting the Engine.

More documentation

Run fused-cli --help for command discovery. fused-cli --readme prints this onboarding guide without appending the command reference.

About

Fused CLI - From discovery to generation of unified SDK of third-party services you integrate with. Visit https://usefused.com

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages