Getting started
This tutorial takes you from a new machine to a working Microsoft Fabric workspace. Fabio is non-interactive after authentication and emits structured JSON by default, so the same commands work for people, scripts, and coding agents.
1. Install Fabio
Section titled “1. Install Fabio”Linux or macOS
Section titled “Linux or macOS”curl -fsSL https://raw.githubusercontent.com/iemejia/fabio/main/install.sh | bashThe installer places the binary in ~/.local/bin. Open a new shell if that directory was added to your PATH.
Windows
Section titled “Windows”irm https://raw.githubusercontent.com/iemejia/fabio/main/install.ps1 | iexThe installer places Fabio in %LOCALAPPDATA%\fabio and updates your user PATH.
It installs the latest release by default. To install a specific release, set FABIO_VERSION first (the v prefix is optional):
$env:FABIO_VERSION = "0.78.0"irm https://raw.githubusercontent.com/iemejia/fabio/main/install.ps1 | iexRemove-Item Env:FABIO_VERSIONFor a downloaded copy of the script, use .\install.ps1 -Version 0.78.0.
Docker
Section titled “Docker”docker pull ghcr.io/iemejia/fabio:latestdocker run --rm ghcr.io/iemejia/fabio --helpPre-built binaries for Linux, macOS, and Windows on x64 and arm64 are also available from GitHub Releases.
Verify the installation:
fabio --version2. Sign in
Section titled “2. Sign in”Use Azure CLI for local user authentication, then ask Fabio to validate that session:
az login --allow-no-subscriptionsfabio auth loginFabio intentionally has no compiled Entra client ID because the project does not yet have a stable publisher-owned Entra registration. If your organization owns a public-client registration, you can use Fabio’s native interactive flows explicitly:
fabio auth login --device-code --client-id <public-client-id>fabio auth login --browser --client-id <public-client-id>For CI, use a service principal or workload identity rather than an interactive login. See Authentication.
3. Inspect your tenant
Section titled “3. Inspect your tenant”fabio workspace list --limit 10Fabio returns a stable list envelope:
{"data":[{"id":"…","displayName":"Analytics"}],"count":1}Use -o table when reading the result yourself, or keep the default JSON when composing commands.
4. Create a workspace
Section titled “4. Create a workspace”fabio workspace create --name "analytics"Preview a mutation without sending it:
fabio workspace create --name "analytics" --dry-runIf the workspace needs capacity, assign it after creation:
fabio workspace assign-capacity --id <workspace-id> --capacity <capacity-id>5. Let an agent use Fabio
Section titled “5. Let an agent use Fabio”Install Fabio’s root skill and its focused workload skills:
npx skills add https://github.com/iemejia/fabioThe skill teaches compatible agents how to discover commands, preserve structured output, and handle destructive operations safely. Continue with Use Fabio with coding agents.
Next steps
Section titled “Next steps”- Create and load data in a lakehouse.
- Learn the output and piping model.
- Search the complete CLI reference.
