JSON API
FVM provides JSON API endpoints for integrating with other tools. All commands support the --compress
option for compact output.
Commands
list
Lists installed Flutter SDK versions.
fvm api list [--compress] [--skip-size-calculation]
Options:
--compress
- Compact JSON output--skip-size-calculation
- Skip cache size calculation
releases
Shows available Flutter releases.
fvm api releases [--compress] [--limit <n>] [--filter-channel <channel>]
Options:
--compress
- Compact JSON output--limit
- Number of releases to return--filter-channel
- Filter by channel (stable, beta, dev)
context
Returns FVM environment information.
fvm api context [--compress]
project
Returns project configuration.
fvm api project [--compress] [--path <path>]
Options:
--compress
- Compact JSON output--path
- Project directory path
Integration Example
# Get current project version
fvm api project --compress | jq -r '.project.pinnedVersion'
# List installed versions
fvm api list --compress | jq -r '.versions[].name'
list
Lists the installed Flutter SDK versions available locally.
Usage:
fvm api list [options]
Options:
--compress
(-c
): Outputs JSON with no whitespace.--skip-size-calculation
(-s
): Skips calculating the size of cached versions.
Response Payload:
{
"size": "922.50 MB",
"versions": [
{
"name": "3.19.2",
"directory": "/path/to/fvm/versions/3.19.2",
"releaseFromChannel": null,
"type": "release",
"binPath": "/path/to/fvm/versions/3.19.2/bin",
"hasOldBinPath": false,
"dartBinPath": "/path/to/fvm/versions/3.19.2/bin",
"dartExec": "/path/to/fvm/versions/3.19.2/bin/dart",
"flutterExec": "/path/to/fvm/versions/3.19.2/bin/flutter",
"flutterSdkVersion": "3.19.2",
"dartSdkVersion": "3.3.0",
"isSetup": true
},
...
]
}
releases
Provides a list of available Flutter SDK releases.
Usage:
fvm api releases [options]
Options:
--compress
: Outputs JSON with no whitespace.--limit [number]
: Limits the number of releases listed.--filter-channel [channel]
: Filters the releases by channel. Available channels arestable
,beta
, anddev
.
Response Payload:
{
"versions": [
...
{
"hash": "0b591f2c82e9f59276ed68c7d4cbd63196f7c865",
"channel": "beta",
"version": "3.17.0-0.0.pre",
"release_date": "2023-11-15T22:44:50.703003Z",
"archive": "beta/macos/flutter_macos_3.17.0-0.0.pre-beta.zip",
"sha256": "2937447f814eff2ebf5aba098dfdb059654a0113456f1b22e855403c2ec413df",
"dart_sdk_arch": "x64",
"dart_sdk_version": "3.3.0 (build 3.3.0-91.0.dev)",
"active_channel": false,
"channelName": "beta",
"archiveUrl": "https://storage.googleapis.com/flutter_infra_release/releases/beta/macos/flutter_macos_3.17.0-0.0.pre-beta.zip"
}
],
"channels": {
"beta": {...},
"stable": {...}
}
}
context
Returns information about the FVM's current context.
Usage:
fvm api context [options]
Options:
--compress
: Outputs JSON with no whitespace.
Response Payload:
{
"context": {
"fvmVersion": "3.0.14",
"workingDirectory": "/path/to/project",
"isTest": false,
"fvmDir": "/path/to/.fvm",
"gitCache": true,
"runPubGetOnSdkChanges": true,
"gitCachePath": "/path/to/.fvm/cache.git",
"flutterUrl": "https://github.com/flutter/flutter.git",
"lastUpdateCheck": "2024-03-13T14:46:08.735250Z",
"updateCheckDisabled": false,
"privilegedAccess": false,
"globalCacheLink": "/path/to/.fvm/default",
"globalCacheBinPath": "/path/to/.fvm/default/bin",
"versionsCachePath": "/path/to/.fvm/versions",
"configPath": "/Users/username/Library/Application Support/fvm/.fvmrc",
"isCI": false,
"id": "MAIN",
"args": [
"api",
"info"
]
}
}
project
Fetches details about the current Flutter project configuration.
Usage:
fvm api project [options]
Options:
--compress
: Outputs JSON with no whitespace.--path [path]
: The path to the project. Defaults to the current working directory.
Response Payload:
{
"project": {
"name": "my_project",
"config": {
"flutter": "3.19.2",
"flavors": {
"production": "3.19.2",
"development": "stable"
}
},
"path": "/path/to/project",
"pinnedVersion": {
"name": "3.19.2",
"releaseFromChannel": null,
"type": "release"
},
"activeFlavor": "production",
"flavors": {
"production": "3.19.2",
"development": "stable"
},
"dartToolGeneratorVersion": "3.3.0",
"dartToolVersion": "3.19.2",
"isFlutter": true,
"localFvmPath": "/path/to/project/.fvm",
"localVersionsCachePath": "/path/to/project/.fvm/versions",
"localVersionSymlinkPath": "/path/to/project/.fvm/versions/3.19.2",
"gitIgnorePath": "/path/to/project/.gitignore",
"pubspecPath": "/path/to/project/pubspec.yaml",
"configPath": "/path/to/project/.fvmrc",
"legacyConfigPath": "/path/to/project/.fvm/fvm_config.json",
"hasConfig": true,
"hasPubspec": true,
"pubspec": {
"name": "my_project",
"version": "0.1.0",
"publish_to": "none",
"environment": {
"sdk": ">=2.17.0 <4.0.0"
},
"description": "A new Flutter project.",
"dependencies": {
...
},
"dev_dependencies": {
...
},
"flutter": {
"uses-material-design": true
}
}
}
}