A CLI allowing you to fetch Flagsmith flags and output them to a file
npm install flagsmith-cli
flagsmith-cli
=================
Retrieve Flagsmith state from an API and store it in a file.
This CLI can be used to bake default flags into your application as part of CI/CD, this provides support for offline applications and is also advised as part of our Defensive Coding and Default Flags Documentation. An example of this can be seen here.
The steps to using this to provide default flags are as follows. An example of this can be found here. The main steps to achieving this are as follows:
1. Install the cli `npm i flagsmith-cli --save-dev
2. Call the cli as part of postinstall to create a flagsmith.json file:
`export FLAGSMITH_ENVIRONMENT=API_KEY`
``
"postinstall": "flagsmith get"
An example of this can be seen here.
3. In your application, import the outputted JSON and initialise the client with the json flagsmith.init({state:json, environmentID: json.environmentID})
Example:
`typescript
import flagsmith from 'flagsmith'
import state from './flagsmith.json'
flagsmith.init({state, environmentID: state.environmentID})
`
Example with React:
`jsx`
import state from './flagsmith.json'
ReactDOM.render(
document.getElementById('root')
);
sh-session
$ npm install -g flagsmith-cli
$ flagsmith COMMAND
running command...
$ flagsmith (--version)
flagsmith-cli/0.2.3 linux-x64 node-v24.11.1
$ flagsmith --help [COMMAND]
USAGE
$ flagsmith COMMAND
...
`
Commands
* [flagsmith get [ENVIRONMENT]](#flagsmith-get-environment)
* [flagsmith help [COMMAND]](#flagsmith-help-command)
* flagsmith plugins
* flagsmith plugins add PLUGIN
* flagsmith plugins:inspect PLUGIN...
* flagsmith plugins install PLUGIN
* flagsmith plugins link PATH
* [flagsmith plugins remove [PLUGIN]](#flagsmith-plugins-remove-plugin)
* flagsmith plugins reset
* [flagsmith plugins uninstall [PLUGIN]](#flagsmith-plugins-uninstall-plugin)
* [flagsmith plugins unlink [PLUGIN]](#flagsmith-plugins-unlink-plugin)
* flagsmith plugins updateflagsmith get [ENVIRONMENT]Retrieve flagsmith features from the Flagsmith API and output them to a file.
`
USAGE
$ flagsmith get [ENVIRONMENT] [-o ] [-a ] [-t =... -i ]
[-p] [-e flags|environment]ARGUMENTS
[ENVIRONMENT] The flagsmith environment key to use, defaults to the environment variable FLAGSMITH_ENVIRONMENT
FLAGS
-a, --api= [default: https://edge.api.flagsmith.com/api/v1/] The API URL to fetch the feature flags from
-e, --entity=
IDENTITY FLAGS
-i, --identity= The identity for which to fetch feature flags
-t, --trait==... Trait key-value pair, separated by an equals sign (=)
DESCRIPTION
Retrieve flagsmith features from the Flagsmith API and output them to a file.
EXAMPLES
$ flagsmith get
$ FLAGSMITH_ENVIRONMENT=abc123... flagsmith get
$ FLAGSMITH_ENVIRONMENT=ser.abc123... flagsmith get -e environment
$ flagsmith get -o ./my-file.json
$ flagsmith get -a https://flagsmith.example.com/api/v1/
$ flagsmith get -i flagsmith_identity
$ flagsmith get -i flagsmith_identity -t my_trait_key=some_trait_value -t other_trait=other_value
$ flagsmith get -p
`_See code: src/commands/get/index.ts_
flagsmith help [COMMAND]Display help for flagsmith.
`
USAGE
$ flagsmith help [COMMAND...] [-n]ARGUMENTS
[COMMAND...] Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for flagsmith.
`_See code: @oclif/plugin-help_
flagsmith pluginsList installed plugins.
`
USAGE
$ flagsmith plugins [--json] [--core]FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ flagsmith plugins
`_See code: @oclif/plugin-plugins_
flagsmith plugins add PLUGINInstalls a plugin into flagsmith.
`
USAGE
$ flagsmith plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into flagsmith.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the FLAGSMITH_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the FLAGSMITH_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ flagsmith plugins add
EXAMPLES
Install a plugin from npm registry.
$ flagsmith plugins add myplugin
Install a plugin from a github url.
$ flagsmith plugins add https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ flagsmith plugins add someuser/someplugin
`flagsmith plugins:inspect PLUGIN...Displays installation properties of a plugin.
`
USAGE
$ flagsmith plugins inspect PLUGIN...ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ flagsmith plugins inspect myplugin
`_See code: @oclif/plugin-plugins_
flagsmith plugins install PLUGINInstalls a plugin into flagsmith.
`
USAGE
$ flagsmith plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into flagsmith.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the FLAGSMITH_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the FLAGSMITH_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ flagsmith plugins add
EXAMPLES
Install a plugin from npm registry.
$ flagsmith plugins install myplugin
Install a plugin from a github url.
$ flagsmith plugins install https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ flagsmith plugins install someuser/someplugin
`_See code: @oclif/plugin-plugins_
flagsmith plugins link PATHLinks a plugin into the CLI for development.
`
USAGE
$ flagsmith plugins link PATH [-h] [--install] [-v]ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ flagsmith plugins link myplugin
`_See code: @oclif/plugin-plugins_
flagsmith plugins remove [PLUGIN]Removes a plugin from the CLI.
`
USAGE
$ flagsmith plugins remove [PLUGIN...] [-h] [-v]ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ flagsmith plugins unlink
$ flagsmith plugins remove
EXAMPLES
$ flagsmith plugins remove myplugin
`flagsmith plugins resetRemove all user-installed and linked plugins.
`
USAGE
$ flagsmith plugins reset [--hard] [--reinstall]FLAGS
--hard Delete node_modules and package manager related files in addition to uninstalling plugins.
--reinstall Reinstall all plugins after uninstalling.
`_See code: @oclif/plugin-plugins_
flagsmith plugins uninstall [PLUGIN]Removes a plugin from the CLI.
`
USAGE
$ flagsmith plugins uninstall [PLUGIN...] [-h] [-v]ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ flagsmith plugins unlink
$ flagsmith plugins remove
EXAMPLES
$ flagsmith plugins uninstall myplugin
`_See code: @oclif/plugin-plugins_
flagsmith plugins unlink [PLUGIN]Removes a plugin from the CLI.
`
USAGE
$ flagsmith plugins unlink [PLUGIN...] [-h] [-v]ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ flagsmith plugins unlink
$ flagsmith plugins remove
EXAMPLES
$ flagsmith plugins unlink myplugin
`flagsmith plugins updateUpdate installed plugins.
`
USAGE
$ flagsmith plugins update [-h] [-v]FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
`_See code: @oclif/plugin-plugins_
* [
flagsmith get [ENVIRONMENT]](#flagsmith-get-environment)
* [flagsmith help [COMMANDS]](#flagsmith-help-commands)flagsmith get [ENVIRONMENT]Retrieve flagsmith features from the Flagsmith API and output them to a file.
`
USAGE
$ flagsmith get [ENVIRONMENT] [-o ] [-a ] [-t
-i ] [-p] [-e flags|environment]ARGUMENTS
ENVIRONMENT The flagsmith environment key to use, defaults to the environment
variable FLAGSMITH_ENVIRONMENT
FLAGS
-a, --api= [default: https://edge.api.flagsmith.com/api/v1/] The
API URL to fetch the feature flags from
-e, --entity=
IDENTITY FLAGS
-i, --identity= The identity for which to fetch
feature flags
-t, --trait==... Trait key-value pair, separated by
an equals sign (=)
DESCRIPTION
Retrieve flagsmith features from the Flagsmith API and output them to a file.
EXAMPLES
$ flagsmith get
$ FLAGSMITH_ENVIRONMENT=abc123... flagsmith get
$ FLAGSMITH_ENVIRONMENT=ser.abc123... flagsmith get -e environment
$ flagsmith get -o ./my-file.json
$ flagsmith get -a https://flagsmith.example.com/api/v1/
$ flagsmith get -i flagsmith_identity
$ flagsmith get -i flagsmith_identity -t my_trait_key=some_trait_value -t other_trait=other_value
$ flagsmith get -p
`_See code: dist/commands/get/index.ts_
flagsmith help [COMMANDS]Display help for flagsmith.
`
USAGE
$ flagsmith help [COMMANDS] [-n]ARGUMENTS
COMMANDS Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for flagsmith.
``