JSPM

@scalar/cli

1.3.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4574
  • Score
    100M100P100Q118304F
  • License MIT

A command-line interface to work with OpenAPI files

Package Exports

  • @scalar/cli
  • @scalar/cli/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@scalar/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Scalar CLI

Version Downloads License Discord

Command-line interface to work with OpenAPI files

Features

  • Format & validate OpenAPI files
  • Upload your OpenAPI files to Scalar
  • Get a fully mocked API for testing purposes
  • Preview your API reference
  • Bundle multiple OpenAPI files

Documentation

This is an overview + API Reference of the CLI, if you want guides on how to use the CLI in more detail go to our Docs

Quickstart

npx @scalar/cli help

Installation

If you really want to become friends you should install the CLI:

npm -g install @scalar/cli

Otherwise just prefix all commands with npx @scalar/cli instead of scalar. That’s fine, too.

Conflict: EXIST: file already exists

There’s another scalar CLI, which is bundled with git. If you run into naming conflicts, but never use the other CLI anyway, you can replace it like this:

npm -g --force install @scalar/cli

Or, if you want to keep using the other scalar CLI, you can just stick to npx (or pnpm dlx):

# Execute without installation (npm)
npx @scalar/cli help

# Execute without installation (pnpm)
pnpm dlx @scalar/cli help

Commands

Usage: scalar [options] [command]

CLI to work with your OpenAPI files

Options:
  -V, --version   output the version number
  -h, --help      display help for command

Commands:
  readme          Open documentation for the CLI
  upgrade         Upgrade current version of your cli
  auth            Manage authorization on scalar platform
  document        Manage local openapi file
  project         Manage scalar project
  registry        Manage your scalar registry
  team            Manage user teams
  sdk             Manage your Scalar SDKs (Enterprise Only)
  schema          Manage your Scalar schemas
  help [command]  display help for command

readme

Usage: scalar readme [options] [command]

Open documentation for the CLI

Options:
  -h, --help          display help for command

Commands:
  generate [options]  Self generate documentation for the cli

generate

Usage: scalar readme generate [options]

Self generate documentation for the cli

Options:
  -o, --output [file]  Path where the documentation file will be written
  -h, --help           display help for command

upgrade

Usage: scalar upgrade [options]

Upgrade current version of your cli

Options:
  -h, --help  display help for command

auth

Usage: scalar auth [options] [command]

Manage authorization on scalar platform

Options:
  -h, --help       display help for command

Commands:
  login [options]  Login to scalar
  whoami           Display the current user
  logout           Logout from scalar
  help [command]   display help for command

login

Usage: scalar auth login [options]

Login to scalar

Options:
  --email <email>        Email
  --password <password>  Password
  --token <token>        Personal token
  -h, --help             display help for command

whoami

Usage: scalar auth whoami [options]

Display the current user

Options:
  -h, --help  display help for command

logout

Usage: scalar auth logout [options]

Logout from scalar

Options:
  -h, --help  display help for command

document

Usage: scalar document [options] [command]

Manage local openapi file

Options:
  -h, --help                    display help for command

Commands:
  bundle [options] [file|url]   Bundle an OpenAPI specification by resolving all references and external dependencies
  split [options] [file|url]    Split your OpenAPI documents on small chunks
  join [options] <files...>     Merge multiple OpenAPI documents into a single unified document
  format [options] [file|url]   Format an OpenAPI file
  mock [options] [file|url]     Mock an API from an OpenAPI file
  serve [options] [file|url]    Serve an API Reference from an OpenAPI file
  share [options] [file]        Share an OpenAPI file
  validate [file|url]           Validate an OpenAPI file
  void [options]                Boot a server to mirror HTTP requests
  lint [options] [file|url]     Lint your OpenAPI file using spectral rules
  upgrade [options] [file|url]  Upgrade OpenAPI document to version 3.1
  help [command]                display help for command

bundle

Usage: scalar document bundle [options] [file|url]

Bundle an OpenAPI specification by resolving all references and external dependencies

Arguments:
  file|url              Path to OpenAPI file or URL to bundle

Options:
  -o, --output <file>   Path to save the bundled output file
  --treeShake           Remove unused components from the bundled output
  --urlMap              Generate a map of resolved URLs in the bundled output
  --fetchLimit <limit>  Maximum number of URLs to fetch during bundling at the same time
  -h, --help            display help for command

split

Usage: scalar document split [options] [file|url]

Split your OpenAPI documents on small chunks

Arguments:
  file|url             Path to OpenAPI file or URL to split

Options:
  -o, --output <path>  Path to save the chunks
  -h, --help           display help for command

join

Usage: scalar document join [options] <files...>

Merge multiple OpenAPI documents into a single unified document

Arguments:
  files                                          Paths to the OpenAPI files to merge

Options:
  --output -o <file>                             Path to save the merged output file
  --prefix-components-with-path-value -p <path>  Dot-separated path to extract a prefix value from each input file for component names
  -h, --help                                     display help for command

format

Usage: scalar document format [options] [file|url]

Format an OpenAPI file

Arguments:
  file|url             File or URL to format

Options:
  -o, --output <file>  Output file
  -h, --help           display help for command

mock

Usage: scalar document mock [options] [file|url]

Mock an API from an OpenAPI file

Arguments:
  file|url           OpenAPI file or URL to mock the server for

Options:
  -w, --watch        watch the file for changes
  -o, --once         run the server only once and exit after that
  -p, --port <port>  set the HTTP port for the mock server
  -h, --help         display help for command

serve

Usage: scalar document serve [options] [file|url]

Serve an API Reference from an OpenAPI file

Arguments:
  file|url           OpenAPI file or URL to show the reference for

Options:
  -w, --watch        watch the file for changes
  -o, --once         run the server only once and exit after that
  -p, --port <port>  set the HTTP port for the API reference server
  -h, --help         display help for command

share

Usage: scalar document share [options] [file]

Share an OpenAPI file

Arguments:
  file                 file to share

Options:
  -t, --token <token>  pass a token to update an existing sandbox
  -h, --help           display help for command

validate

Usage: scalar document validate [options] [file|url]

Validate an OpenAPI file

Arguments:
  file|url    File or URL to validate

Options:
  -h, --help  display help for command

void

Usage: scalar document void [options]

Boot a server to mirror HTTP requests

Options:
  -o, --once         run the server only once and exit after that
  -p, --port <port>  set the HTTP port for the mock server
  -h, --help         display help for command

lint

Usage: scalar document lint [options] [file|url]

Lint your OpenAPI file using spectral rules

Arguments:
  file|url               OpenAPI file path or url

Options:
  -r, --rule <file|url>  Rule path or url
  -h, --help             display help for command

upgrade

Usage: scalar document upgrade [options] [file|url]

Upgrade OpenAPI document to version 3.1

Arguments:
  file|url             File or URL to validate

Options:
  -o, --output <file>  Path to save the upgraded output file
  -h, --help           display help for command

project

Usage: scalar project [options] [command]

Manage scalar project

Options:
  -h, --help                  display help for command

Commands:
  init [options]              Create a new `scalar.config.json` file to configure where your OpenAPI file is placed.
  check-config [file]         Check a Scalar Configuration file
  create [options]            Create a new project that is not linked to a github project.
  preview [options] [config]  Preview scalar guides
  publish [options]           Publish new build for a github sync project that is not linked.
  help [command]              display help for command

init

Usage: scalar project init [options]

Create a new `scalar.config.json` file to configure where your OpenAPI file is placed.

Options:
  -s, --subdomain [url]  subdomain to publish on
  --force                override existing configuration
  -h, --help             display help for command

check-config

Usage: scalar project check-config [options] [file]

Check a Scalar Configuration file

Arguments:
  file        File to check

Options:
  -h, --help  display help for command

create

Usage: scalar project create [options]

Create a new project that is not linked to a github project.

Options:
  -n, --name [name]  name of your project
  -s, --slug [slug]  project slug
  -h, --help         display help for command

preview

Usage: scalar project preview [options] [config]

Preview scalar guides

Arguments:
  config                             Path to the Scalar configuration file (usually `scalar.config.json5` or `scalar.config.json`)

Options:
  -p, --port [port]                  port to run the server on. If the port is not available, it will select another one. (default: "7970")
  -L, --log-level <level>            Set the log level (debug, info, warn, error, trace) (default: "info")
  -F, --log-formatting <formatting>  Set the log formatting (pretty|none). Defaults to pretty formatting outside of CI. (default: "pretty")
  -N, --no-open                      Do not open the browser automatically
  -h, --help                         display help for command

publish

Usage: scalar project publish [options]

Publish new build for a github sync project that is not linked.

Options:
  -s, --slug [slug]      project slug
  -c, --config [config]  your config file of the project
  -h, --help             display help for command

registry

Usage: scalar registry [options] [command]

Manage your scalar registry

Options:
  -h, --help                           display help for command

Commands:
  publish [options] [file]             Publish an OpenAPI document to the Scalar registry
  update [options] [namespace] [slug]  Update document metadata on scalar registry
  delete [namespace] [slug]            Delete a document from scalar registry
  list [options]                       List all registry APIs for a team namespace
  help [command]                       display help for command

publish

Usage: scalar registry publish [options] [file]

Publish an OpenAPI document to the Scalar registry

Arguments:
  file                     OpenAPI file to upload

Options:
  --slug <slug>            Slug identifier for the registry entry. Defaults to title.
  --namespace <namespace>  Scalar team namespace
  --version <version>      API version (e.g. 0.1.0)
  --private                Make API private (default: false)
  --current                Set as the current active API version (default: true)
  --force                  Force override an existing version (default: false)
  -h, --help               display help for command

update

Usage: scalar registry update [options] [namespace] [slug]

Update document metadata on scalar registry

Arguments:
  namespace                    namespace of document you want to update
  slug                         slug of document you want to update

Options:
  --title <title>              Document title
  --description <description>  Document description
  -h, --help                   display help for command

delete

Usage: scalar registry delete [options] [namespace] [slug]

Delete a document from scalar registry

Arguments:
  namespace   Team namespace
  slug        Managed doc slug

Options:
  -h, --help  display help for command

list

Usage: scalar registry list [options]

List all registry APIs for a team namespace

Options:
  --namespace <namespace>  Team namespace
  -h, --help               display help for command

team

Usage: scalar team [options] [command]

Manage user teams

Options:
  -h, --help      display help for command

Commands:
  list            List all teams current user is part of
  set [options]   Set current active team for the user
  help [command]  display help for command

list

Usage: scalar team list [options]

List all teams current user is part of

Options:
  -h, --help  display help for command

set

Usage: scalar team set [options]

Set current active team for the user

Options:
  --team <team>  Team uid
  -h, --help     display help for command

sdk

Usage: scalar sdk [options] [command]

Manage your Scalar SDKs (Enterprise Only)

Options:
  -h, --help        display help for command

Commands:
  list [options]    List all SDKs for a team namespace
  create [options]  Create a new SDK.
  update [options]  Update SDK metadata.
  delete [options]  Delete an SDK.
  build [options]   Create an SDK build.
  help [command]    display help for command

list

Usage: scalar sdk list [options]

List all SDKs for a team namespace

Options:
  --namespace <namespace>  Team namespace
  -h, --help               display help for command

create

Usage: scalar sdk create [options]

Create a new SDK.

Options:
  -a, --api <api>              Registry API slug
  -n, --namespace <namespace>  Team namespace
  -l, --language <language>    Language of your SDK (choices: "typescript", "python", "csharp", "java", "ruby", "php", "go")
  -h, --help                   display help for command

update

Usage: scalar sdk update [options]

Update SDK metadata.

Options:
  -s, --slug <slug>            SDK slug
  -n, --namespace <namespace>  Team namespace
  --title <title>              Title
  --isPrivate <isPrivate>      Privacy (public/private)
  -h, --help                   display help for command

delete

Usage: scalar sdk delete [options]

Delete an SDK.

Options:
  -s, --slug <slug>            SDK slug
  -n, --namespace <namespace>  Team namespace
  -h, --help                   display help for command

build

Usage: scalar sdk build [options]

Create an SDK build.

Options:
  -s, --slug <slug>            SDK slug
  -n, --namespace <namespace>  Team namespace
  -v, --version <version>      SDK Version
  -h, --help                   display help for command

schema

Usage: scalar schema [options] [command]

Manage your Scalar schemas

Options:
  -h, --help                display help for command

Commands:
  delete [options]          Delete a schema.
  update [options]          Update schema metadata.
  list [options]            List all schemas for a team namespace
  publish [options] [file]  Publish a shared schema to the Scalar registry
  help [command]            display help for command

delete

Usage: scalar schema delete [options]

Delete a schema.

Options:
  -s, --slug <slug>            Schema slug
  -n, --namespace <namespace>  Team namespace
  -h, --help                   display help for command

update

Usage: scalar schema update [options]

Update schema metadata.

Options:
  -s, --slug <slug>            Schema slug
  -n, --namespace <namespace>  Team namespace
  --title <title>              Title
  --description <description>  Description
  --isPrivate <isPrivate>      Privacy (public/private)
  -h, --help                   display help for command

list

Usage: scalar schema list [options]

List all schemas for a team namespace

Options:
  --namespace <namespace>  Team namespace
  -h, --help               display help for command

publish

Usage: scalar schema publish [options] [file]

Publish a shared schema to the Scalar registry

Arguments:
  file                     OpenAPI file to upload

Options:
  --slug <slug>            Slug identifier for the registry entry. Defaults to title.
  --title <title>          Schema title
  --namespace <namespace>  Scalar team namespace
  --version <version>      API version (e.g. 0.1.0)
  --private                Make API private (default: false)
  -h, --help               display help for command

GitHub Actions

To validate your OpenAPI file in GitHub Actions, add this workflow:

# .github/workflows/validate-openapi-file.yml
name: Validate OpenAPI File

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  validate:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - name: Use Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 24
      - name: Validate OpenAPI File
        # Replace `./my-openapi-file.yaml` with the correct path and filename for your project.
        # Or: run `npx @scalar/cli init` and add the config file to your repository.
        run: npx @scalar/cli validate ./my-openapi-file.yaml

Development

Set up the development environment:

pnpm install
pnpm @scalar/cli --version

To symlink the package and use it globally on your machine:

pnpm cli:link
scalar --version

Community

We are API nerds. You too? Let’s chat on Discord: https://discord.gg/scalar

License

The source code in this repository is licensed under MIT.