> For the complete documentation index, see [llms.txt](https://docs.baas.sh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.baas.sh/baas-cli/cli.md).

# Introduction

Deploy smart contracts and register them with BaaS from your terminal.

The BaaS CLI (`@baas.sh/cli`) deploys your Foundry contracts and registers them with your BaaS project, so they show up in the Console ready to use: ABI, mappings, units, monitors, automations.

Here's the whole flow once you're set up:

```bash
baas login
baas use my-project-id
baas deploy
```

`baas deploy` compiles your project, lets you pick a contract, a key and a network, deploys with that key, waits for the transaction to confirm, and registers the result. No private key ever touches your machine, and on the BaaS network there's no gas to manage.

## Before you begin

* **Node.js 20.19 or later**, with npm, on macOS, Linux, or Windows with [WSL](https://learn.microsoft.com/windows/wsl/install).
* A **BaaS project**, created in the BaaS Dashboard.
* A **key** in that project, set up on the network you're deploying to. [Add your first key](/baas-cli/deploy.md#add-your-first-key)

## Start here

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Quickstart</strong></td><td>Install the CLI and deploy your first contract in minutes.</td><td><a href="/baas-cli/quickstart.md">Quickstart</a></td></tr><tr><td><strong>Deploy a contract</strong></td><td>Keys, the wizard, the one-liner for CI, mappings and units.</td><td><a href="/baas-cli/deploy.md">Deploy a contract</a></td></tr><tr><td><strong>Command reference</strong></td><td>Every command and option in one place.</td><td><a href="/baas-cli/reference.md">Command reference</a></td></tr></tbody></table>

## Already a Forge user?

`baas` is also your `forge`: `baas build`, `baas test`, `baas fmt`, anything the CLI doesn't know is run by Forge, unchanged. And when a deployment needs the full power of Forge, `baas deploy create` and `baas deploy script` run Forge with all your usual options and register the result. See [Advanced](/baas-cli/advanced.md).
