Framework CLI
3/19/26Less than 1 minute

@equinor/fusion-framework-cli
Command-line toolkit for developing, building, and publishing Fusion Framework applications and portal templates. Provides a unified developer experience from local development to production deployment.
Features
- Application scaffolding β generate new Fusion apps from predefined templates
- Development server β hot-reload dev server with service discovery and authentication
- Build & bundle β Vite-based production builds with manifest generation
- Publish & tag β upload bundles and configs to the Fusion app/portal service
- Snapshot versions β timestamped preview builds for PRs and CI (
--snapshot) - Portal templates β build, bundle, and deploy portal configurations
- Service discovery β resolve Fusion service endpoints from any environment
- Authentication β Azure AD login, token management, CI/CD token support
- Plugin system β extend the CLI with optional plugin packages
Installation
pnpm add -D @equinor/fusion-framework-cliThe package exposes two binary aliases: fusion-framework-cli and ffc.
Usage
Create a new application
# Interactive template selection
pnpm fusion-framework-cli app create my-app
# Use a specific template
pnpm fusion-framework-cli app create my-app --template react-appLocal development
# Start the dev server (app)
pnpm fusion-framework-cli dev
# Start the dev server (portal)
pnpm fusion-framework-cli portal devBuild and publish
# Build an application
pnpm fusion-framework-cli app build
# Bundle into a zip archive
pnpm fusion-framework-cli app pack
# Publish bundle + config to an environment
pnpm fusion-framework-cli app publish --env ci --config
# Snapshot build for a PR
pnpm fusion-framework-cli app pack --snapshot pr-123Authentication
# Interactive login
pnpm fusion-framework-cli auth login
# Retrieve a token
pnpm fusion-framework-cli auth token
# CI/CD: set FUSION_TOKEN environment variable insteadCommand overview
| Command | Description |
|---|---|
app create | Scaffold a new Fusion application from a template |
app build | Build the application with Vite |
app pack | Bundle the build into a zip archive |
app publish | Build, pack, and upload in one step |
app upload | Upload a pre-built bundle |
app config | Generate or publish app configuration |
app tag | Tag a published version (e.g. latest) |
app check | Verify app registration in the app store |
app dev | Start the application dev server |
app serve | Preview a production build locally |
portal build | Build a portal template |
portal pack | Bundle the portal into a zip archive |
portal publish | Build, pack, and upload a portal |
portal upload | Upload a pre-built portal bundle |
portal config | Generate or publish portal configuration |
portal tag | Tag a published portal version |
portal dev | Start the portal dev server |
auth login | Authenticate with Azure AD |
auth logout | Clear stored credentials |
auth token | Print or acquire an access token |
disco resolve | Resolve a Fusion service endpoint |
Run pnpm fusion-framework-cli <command> --help for detailed options.
API Reference
The package exposes several sub-path exports for programmatic use:
@equinor/fusion-framework-cli (root)
defineDevServerConfig/defineFusionCliβ type-safe config definition helpersloadDevServerConfigβ load and merge dev-server configuration filesresolvePackage/resolveEntryPointβ package and entry-point resolutionRuntimeEnvβ runtime environment type used across the CLI
@equinor/fusion-framework-cli/app
defineAppManifest/defineAppConfigβ type-safe manifest and config helpersloadAppManifest/loadAppConfigβ load and validate app manifest/config filescreateAppManifestFromPackageβ generate a manifest frompackage.jsonmergeAppManifests/mergeAppConfigβ deep-merge manifest/config objectsApiAppConfigSchemaβ Zod schema for app config validation
@equinor/fusion-framework-cli/portal
definePortalManifest/definePortalConfig/definePortalSchemaβ type-safe helpersloadPortalManifest/loadPortalConfig/loadPortalSchemaβ load and validate filescreatePortalManifestFromPackageβ generate a portal manifest frompackage.jsonvalidatePortalManifestβ validate a manifest against the Zod schema
@equinor/fusion-framework-cli/bin
buildApplication/buildPortalβ programmatic Vite buildsbundleApp/bundlePortalβ build + pack into zipuploadApplication/uploadPortalBundleβ upload bundles to the servicetagApplication/tagPortalβ tag published versionsinitializeFramework/configureFrameworkβ set up the Fusion Framework for CLI operationsFusionEnvβ enum of supported Fusion environments
@equinor/fusion-framework-cli/utils
assert/assertFileExists/assertObjectβ assertion helpersfileExists/fileExistsSyncβ file-existence checkswriteFileβ write files with automatic directory creationresolveAnnotationsβ resolve CI/CD build annotationsgenerateSnapshotVersionβ create timestamped snapshot versions
Configuration
Application manifest (app.manifest.ts)
import { defineAppManifest } from '@equinor/fusion-framework-cli/app';
export default defineAppManifest((env, { base }) => ({
...base,
// override manifest fields here
}));Application config (app.config.ts)
import { defineAppConfig } from '@equinor/fusion-framework-cli/app';
export default defineAppConfig((env, { base }) => ({
environment: { MY_VAR: 'value' },
endpoints: {
api: { url: 'https://api.example.com', scopes: ['api://scope/.default'] },
},
}));Dev-server config (dev-server.config.ts)
import { defineDevServerConfig } from '@equinor/fusion-framework-cli';
export default defineDevServerConfig((env, { base }) => ({
...base,
// override dev-server options here
}));CLI plugins (fusion-cli.config.ts)
import { defineFusionCli } from '@equinor/fusion-framework-cli';
export default defineFusionCli(() => ({
plugins: ['@equinor/fusion-framework-cli-plugin-ai'],
}));Documentation
- Developing Apps β build, configure, and deploy applications
- Developing Portals β build and publish portal templates
- Dev Server β architecture and configuration
- Authentication β local and CI/CD authentication setup
- Migration v10 β v11 β breaking changes and upgrade steps