npm package: @speedkit/cli
Description: Speed Kit CLI
Author: Baqend.com
Latest version: 3.41.0

@speed-kit/cli
=============

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Node Version](https://img.shields.io/node/v/@speedkit/cli.svg)](https://npmjs.org/package/@speedkit/cli)
[![NPM Version](https://img.shields.io/npm/v/@speedkit/cli.svg)](https://npmjs.org/package/@speedkit/cli)
[![Downloads/week](https://img.shields.io/npm/dw/@speedkit/cli.svg)](https://npmjs.org/package/@speedkit/cli)

## Quicklinks

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->

# Usage

<!-- usage -->
```sh-session
$ npm install -g @speedkit/cli
$ sk COMMAND
running command...
$ sk (--version)
@speedkit/cli/3.41.0 linux-x64 node-v20.20.2
$ sk --help [COMMAND]
USAGE
  $ sk COMMAND
...
```
<!-- usagestop -->

> **💡 NOTE:**  
Set up auto-completion for the CLI by executing [`sk autocomplete [SHELL]`](#sk-autocomplete-shell) once.

## Configuration

There are two different ways of configuring the CLI:
- [Using Config File (recommended)](#using-config-file-recommended)
- [Using Environment Variables](#using-environment-variables)

### Using Config File (recommended)

On the first execution of any `sk` command a `config.json` will be created and stored to the current user's directory of your OS:
- Unix: `~/.config/speed-kit-cli/config.json`
- Windows: `%LOCALAPPDATA%\speed-kit-cli\config.json`

```json5
{
  "chromePath": "",             // local path to the Chrome binary
  "chromeUserProfilePath": "",  // local path to the Custom Chrome User Profile (use if you want to have Chrome's state saved)
  "chromeExtensionPaths": "",   // comma separated list of local paths to unpacked extensions for Chrome to load
  "slackToken": "",             // Slack token that will be injected to the deploymentDetection
  "testApp": "",                // name of your Test Speed Kit App
  "ideaDirectory": "",          // local directory path to the IntelliJ's shell binary
  "diffExec": "",               // path or executable of your favorite diff tool e.g. "vscode --diff", "codium --diff", "diff", "idea diff"
  "diffExecTemplate": ""        // defaults to "$exec $file1 $file2" resolves in "diff pathToFile1 pathToFile2"
}
```

### Using Environment Variables

By either...
- copying [.env.sample](.env.sample) as `.env` to the directory of the cloned [sk-onboarding](https://gitlab.orestes.info/baqend/sk-onboarding)
- or by exporting [the listed variables](.env.sample) to your shell as needed before using a specific CLI command.

# Commands
<!-- commands -->
* [`sk autocomplete [SHELL]`](#sk-autocomplete-shell)
* [`sk build-parameter-query CUSTOMERPATH`](#sk-build-parameter-query-customerpath)
* [`sk build-prewarm-query CUSTOMERPATH`](#sk-build-prewarm-query-customerpath)
* [`sk config edit`](#sk-config-edit)
* [`sk deploy CUSTOMERPATH`](#sk-deploy-customerpath)
* [`sk diff-url-parameters PAGEURL`](#sk-diff-url-parameters-pageurl)
* [`sk document-handler CUSTOMERPATH`](#sk-document-handler-customerpath)
* [`sk find-pops APP`](#sk-find-pops-app)
* [`sk generate-customer-config`](#sk-generate-customer-config)
* [`sk generate-pop-config APP`](#sk-generate-pop-config-app)
* [`sk help [COMMAND]`](#sk-help-command)
* [`sk login [APP]`](#sk-login-app)
* [`sk onboarding CUSTOMERPATH`](#sk-onboarding-customerpath)
* [`sk param-diff PAGEURL`](#sk-param-diff-pageurl)
* [`sk prewarm APP PATH`](#sk-prewarm-app-path)
* [`sk pull CUSTOMERPATH`](#sk-pull-customerpath)
* [`sk wpt-launcher URLS TESTID`](#sk-wpt-launcher-urls-testid)

## `sk autocomplete [SHELL]`

Display autocomplete installation instructions.

```
USAGE
  $ sk autocomplete [SHELL] [-r]

ARGUMENTS
  SHELL  (zsh|bash|powershell) Shell type

FLAGS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

DESCRIPTION
  Display autocomplete installation instructions.

EXAMPLES
  $ sk autocomplete

  $ sk autocomplete bash

  $ sk autocomplete zsh

  $ sk autocomplete powershell

  $ sk autocomplete --refresh-cache
```

_See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v3.0.1/src/commands/autocomplete/index.ts)_

## `sk build-parameter-query CUSTOMERPATH`

Build a parameter query that can be executed in Athena

```
USAGE
  $ sk build-parameter-query CUSTOMERPATH [-c <value>]

ARGUMENTS
  CUSTOMERPATH  The customer config path

FLAGS
  -c, --configName=<value>  [default: production] The costumer config name

DESCRIPTION
  Build a parameter query that can be executed in Athena

EXAMPLES
  $ sk build-parameter-query <customerPath> -c <configName>

  $ sk build-parameter-query customers/decathlon.de -c production
```

## `sk build-prewarm-query CUSTOMERPATH`

Build a prewarm query that can be executed in Athena

```
USAGE
  $ sk build-prewarm-query CUSTOMERPATH [-c <value>] [-q]

ARGUMENTS
  CUSTOMERPATH  The customer config path

FLAGS
  -c, --configName=<value>  [default: production] The costumer config name
  -q, --quiet               Output only the raw query without clipboard copy or styling

DESCRIPTION
  Build a prewarm query that can be executed in Athena

EXAMPLES
  $ sk build-prewarm-query <customerPath> -c <configName>

  $ sk build-prewarm-query customers/decathlon.de -c production
```

## `sk config edit`

Edit cli config

```
USAGE
  $ sk config edit

DESCRIPTION
  Edit cli config

EXAMPLES
  $ sk config edit
```

## `sk deploy CUSTOMERPATH`

Deploys the specified customer config while comparing to the live version before

```
USAGE
  $ sk deploy CUSTOMERPATH [-c <value>] [-t] [-d] [-v] [-a <value>]

ARGUMENTS
  CUSTOMERPATH  The customer config path

FLAGS
  -a, --artifacts=<value>   which files to upload
  -c, --configName=<value>  [default: production] The costumer config name
  -d, --dryRun              dry run
  -t, --useTestConfig       Override app with configured testApp
  -v, --verboseLevel        Show all messages

DESCRIPTION
  Deploys the specified customer config while comparing to the live version before

EXAMPLES
  $ sk deploy <customerPath> -c <configName> -t <slackToken> -a <artifacts> -d <dryRun>

  $ sk deploy customers/decathlon.de -c production -t someSlackToken -a dynamic,SpeedKit -d
```

## `sk diff-url-parameters PAGEURL`

Shows difference in documents with query parameters on/off

```
USAGE
  $ sk diff-url-parameters PAGEURL [-h]

ARGUMENTS
  PAGEURL  Link of the page

FLAGS
  -h, --hideDiff  Hide the code diff in IDE code diff window

DESCRIPTION
  Shows difference in documents with query parameters on/off

ALIASES
  $ sk param-diff

EXAMPLES
  $ sk prewarm <pageUrl> -h

  $ sk prewarm https://www.decathlon.de/ -h
```

## `sk document-handler CUSTOMERPATH`

Creates testable documentHandler in folder {CUSTOMER_PATH}/test/src/

```
USAGE
  $ sk document-handler CUSTOMERPATH [-c <value>] [-t <value>...]

ARGUMENTS
  CUSTOMERPATH  The customer config path

FLAGS
  -c, --configName=<value>      [default: production] The costumer config name
  -t, --CreateTests=<value>...  name of the test to create

DESCRIPTION
  Creates testable documentHandler in folder {CUSTOMER_PATH}/test/src/

EXAMPLES
  $ sk documentHandler <customerPath> -c <configName>

  $ sk deploy customers/decathlon.de -c production
```

## `sk find-pops APP`

Get IPs for all fastly PoPs

```
USAGE
  $ sk find-pops APP [-i <value>]

ARGUMENTS
  APP  The customers appName

FLAGS
  -i, --ips=<value>  [default: 151.101.x.194]

DESCRIPTION
  Get IPs for all fastly PoPs

EXAMPLES
  $ sk find-pops <app> -i <ips>

  $ sk find-pops appName -i ips
```

## `sk generate-customer-config`

Generates a customer config guided by a wizard 🧙‍

```
USAGE
  $ sk generate-customer-config [-a <value>] [-d <value>]

FLAGS
  -a, --app=<value>                 The SK app name which is also being used the config output directory name
                                    (kebab-case)
  -d, --customersDirectory=<value>  Name of the sk-onboarding directory where all customer configs are being stored
                                    (default: "customers")

DESCRIPTION
  Generates a customer config guided by a wizard 🧙‍

EXAMPLES
  $ sk generate-customer-config -a <app> -d <customersDirectory>

  $ sk generate-customer-config -a decathlon -d customers
```

## `sk generate-pop-config APP`

Generate a pop config for the given app

```
USAGE
  $ sk generate-pop-config APP [-c <value>] [-d] [-p <value>] [-t <value>] [-r] [-s]

ARGUMENTS
  APP  The customers appName

FLAGS
  -c, --coverage=<value>       [default: 95] The percentage of traffic which should be covered through prewarming.
  -d, --[no-]deploy            Default it diffs with the deployed config and ask for deployment. If the flag is passed
                               deployment will be skipped or forced.
  -p, --pop-limit=<value>      [default: 5] The maximal pop count which should prewarmed.
  -r, --use-rum                Compute the pop statistics based on RUM. Otherwise the real Speed Kit traffic is used.
  -s, --force-shield           Force a shield based prewarming config.
  -t, --traffic-share=<value>  [default: 5] The minimum traffic share in percent a pop must have to be actually
                               prewarmed.

DESCRIPTION
  Generate a pop config for the given app

EXAMPLES
  $ sk generate-pop-config <app>

  $ sk generate-pop-config --use-rum <app>

  $ sk generate-pop-config --coverage 95 appName

  $ sk generate-pop-config --no-deploy appName

  $ sk generate-pop-config --deploy appName

  $ sk generate-pop-config --coverage 95 --pop-limit 6 --traffic-share 2 --deploy appName
```

## `sk help [COMMAND]`

Display help for sk.

```
USAGE
  $ sk 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 sk.
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.2.37/src/commands/help.ts)_

## `sk login [APP]`

Login to your app

```
USAGE
  $ sk login [APP]

ARGUMENTS
  APP  [default: bbq] The customers appName

DESCRIPTION
  Login to your app

EXAMPLES
  $ sk login <app>

  $ sk login appName
```

## `sk onboarding CUSTOMERPATH`

Start a local dev environment for building and testing the Speed Kit configuration

```
USAGE
  $ sk onboarding CUSTOMERPATH [-c <value>] [-t] [-d <value>] [-l] [-p] [-v] [-s] [--headless]

ARGUMENTS
  CUSTOMERPATH  The customer config path

FLAGS
  -c, --configName=<value>           [default: production] The costumer config name
  -d, --domain=<value>               Startup domain (optional)
  -l, --local                        Run with local documentHandler
  -p, --debuggingPort                Enable remote debugging port (disables speculation rules/prerendering)
  -s, --ignoreContentSecurityPolicy  Removes header/meta "content-security-policy" for origin-responses
  -t, --useTestConfig                Override app with configured testApp
  -v, --verboseLevel                 Show all messages
      --headless                     Run Chrome in headless mode (for CI environments). Implicitly enables remote
                                     debugging port.

DESCRIPTION
  Start a local dev environment for building and testing the Speed Kit configuration

EXAMPLES
  $ sk onboarding <customerPath> -c <configName> -d <domain>

  $ sk onboarding customers/decathlon.de -c production -d www.decathlon.de
```

## `sk param-diff PAGEURL`

Shows difference in documents with query parameters on/off

```
USAGE
  $ sk param-diff PAGEURL [-h]

ARGUMENTS
  PAGEURL  Link of the page

FLAGS
  -h, --hideDiff  Hide the code diff in IDE code diff window

DESCRIPTION
  Shows difference in documents with query parameters on/off

ALIASES
  $ sk param-diff

EXAMPLES
  $ sk prewarm <pageUrl> -h

  $ sk prewarm https://www.decathlon.de/ -h
```

## `sk prewarm APP PATH`

Pre-warm Fastly

```
USAGE
  $ sk prewarm APP PATH [-p <value> | -v <value>] [-k] [-q] [--verbose] [-d <value>]

ARGUMENTS
  APP   The customer app name
  PATH  path to prewarmFile.csv

FLAGS
  -d, --delay=<value>          Request delay in ms (deprecated)
  -k, --keepParameterSorting   Prevents alphabetical sorting of the URL parameters
  -p, --variationPath=<value>  path to variations.csv
  -q, --quiet                  less output non interactive
  -v, --variation=<value>      [default: default]
      --verbose                Log information about failed requests

DESCRIPTION
  Pre-warm Fastly

EXAMPLES
  for a single variation:

  $ sk prewarm <app> <path> -v <variation> -k

  $ sk prewarm decathlon C:\Users\testUser\file.csv -v MOBILE -k



  for a list of variations:

  $ sk prewarm <app> <path> -p <variationPath> -k

  $ sk prewarm decathlon C:\Users\testUser\file.csv -v MOBILE,DESKTOP -k

  $ sk prewarm decathlon C:\Users\testUser\file.csv -p C:\Users\testUser\variations.csv -k
```

## `sk pull CUSTOMERPATH`

Pull the specified customer config from orestes

```
USAGE
  $ sk pull CUSTOMERPATH [-c <value>]

ARGUMENTS
  CUSTOMERPATH  The customer config path

FLAGS
  -c, --configName=<value>  [default: production] The costumer config name

DESCRIPTION
  Pull the specified customer config from orestes

EXAMPLES
  $ sk pull <customerPath>

  $ sk pull customers/decathlon.de -c production
```

## `sk wpt-launcher URLS TESTID`

Analyze the performance impact that Speed Kit has compared to the original version.

```
USAGE
  $ sk wpt-launcher URLS TESTID [-c <value>] [-m <value>] [-g <value>]

FLAGS
  -c, --cookies=<value>
  -g, --group=<value>    [default: A]
  -m, --mobile=<value>   [default: no]

DESCRIPTION
  Analyze the performance impact that Speed Kit has compared to the original version.

EXAMPLES
  $ sk wpt-launcher <urls> <testId> -g <group> -m <mobile> -c <cookies>

  $ sk wpt-launcher url1,url2,url3 listing-50vs50 -g B -m Y -c consentCookies
```
<!-- commandsstop -->