> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging.skybridge.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI

> Test, build, and run your app from the terminal

Skybridge ships one CLI, available as both `skybridge` and `sb` once it's installed in your project.

It's a project dependency, not a global install, so run it through your package manager, or the [package scripts](#package-scripts) a scaffold sets up.

## `create`

Scaffold a new project. Run it before the package is installed with `npx`:

```bash theme={null}
npx skybridge create
```

See [Quickstart](/get-started/quickstart) to scaffold and run a project.

## `dev`

Start the development server with hot module reloading and DevTools.

<CodeGroup>
  ```bash npm theme={null}
  npx skybridge dev
  ```

  ```bash pnpm theme={null}
  pnpm skybridge dev
  ```

  ```bash yarn theme={null}
  yarn skybridge dev
  ```

  ```bash bun theme={null}
  bun skybridge dev
  ```

  ```bash deno theme={null}
  deno run -A npm:skybridge/skybridge dev
  ```
</CodeGroup>

* Serves the MCP endpoint at `http://localhost:3000/mcp`
* Opens DevTools for local testing at `http://localhost:3000/`
* Watches files and restarts the server, with HMR for views

| Flag                  | Description                                                              |
| --------------------- | ------------------------------------------------------------------------ |
| `-p, --port <number>` | Port to run on. Defaults to `3000`, or the next free port if it's taken. |
| `--tunnel`            | Open an Alpic tunnel for remote testing and Playground access.           |
| `--no-open`           | Don't open DevTools when the server is ready.                            |
| `-v, --verbose`       | Show tunnel logs.                                                        |

The [scaffolded](/get-started/quickstart#scaffold-your-project) `package.json` adds a `dev:tunnel` script, shorthand for `skybridge dev --tunnel`.

The port also reads from the `PORT` environment variable. Set `SKYBRIDGE_OPEN=false` in your shell profile to skip opening DevTools on every run, the equivalent of always passing `--no-open`.

## `build`

Compile your views and MCP server for production.

<CodeGroup>
  ```bash npm theme={null}
  npx skybridge build
  ```

  ```bash pnpm theme={null}
  pnpm skybridge build
  ```

  ```bash yarn theme={null}
  yarn skybridge build
  ```

  ```bash bun theme={null}
  bun skybridge build
  ```

  ```bash deno theme={null}
  deno run -A npm:skybridge/skybridge build
  ```
</CodeGroup>

The output lands in `dist/`, ready for the `deploy` script or `skybridge start`.

## `start`

Run the production server from the build output. Run `skybridge build` first.

<CodeGroup>
  ```bash npm theme={null}
  npx skybridge start
  ```

  ```bash pnpm theme={null}
  pnpm skybridge start
  ```

  ```bash yarn theme={null}
  yarn skybridge start
  ```

  ```bash bun theme={null}
  bun skybridge start
  ```

  ```bash deno theme={null}
  deno run -A npm:skybridge/skybridge start
  ```
</CodeGroup>

* Serves the MCP endpoint at `http://localhost:3000/mcp`
* Runs the compiled server and pre-built view assets from `dist/`

| Flag                  | Description                                                                                 |
| --------------------- | ------------------------------------------------------------------------------------------- |
| `-p, --port <number>` | Port to run on. Defaults to `3000`, or the next free port if it's taken. Also reads `PORT`. |

## `telemetry`

The CLI reports anonymous usage, on by default. Toggle it with `skybridge telemetry disable`, `enable`, or `status`. See [Telemetry](/resources/telemetry) for what's collected and every way to opt out.

## Package scripts

A scaffolded project wires the commands into `package.json`:

| Script       | Command                  | Description                                                                      |
| ------------ | ------------------------ | -------------------------------------------------------------------------------- |
| `dev`        | `skybridge dev`          | Start the development server.                                                    |
| `dev:tunnel` | `skybridge dev --tunnel` | Start the dev server behind an Alpic tunnel.                                     |
| `build`      | `skybridge build`        | Build for production.                                                            |
| `start`      | `skybridge start`        | Serve the production build.                                                      |
| `deploy`     | `alpic deploy`           | Deploy through the Alpic CLI. See [Deploy](/ship/deploy) for per-platform setup. |

Run them with your package manager:

<CodeGroup>
  ```bash npm theme={null}
  npm run dev
  npm run build
  npm start
  ```

  ```bash pnpm theme={null}
  pnpm dev
  pnpm build
  pnpm start
  ```

  ```bash yarn theme={null}
  yarn dev
  yarn build
  yarn start
  ```

  ```bash bun theme={null}
  bun dev
  bun build
  bun start
  ```

  ```bash deno theme={null}
  deno task dev
  deno task build
  deno task start
  ```
</CodeGroup>

<CardGroup cols={3}>
  <Card title="Quickstart" icon="zap" href="/get-started/quickstart">
    Scaffold and run your first app
  </Card>

  <Card title="Ship" icon="cloud-upload" href="/ship">
    Deploy to your platform of choice
  </Card>

  <Card title="McpServer" icon="server" href="/api-reference/mcp-server">
    The server the CLI builds and runs
  </Card>
</CardGroup>
