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

# Quickstart

> Create, test, and deploy your first Terse project

<Steps>
  <Step title="Install the CLI">
    ```bash theme={null}
    npm install -g terse-cli
    ```
  </Step>

  <Step title="Scaffold a project">
    ```bash theme={null}
    terse init my-project
    ```

    `terse init` handles the full setup in one command:

    1. Scaffolds your TypeScript project files (`src/index.ts`, config, etc.)
    2. Installs dependencies
    3. Opens the browser to authenticate via `terse login`
    4. Checks your connected integrations and prompts you to add more if needed
    5. Runs `terse generate` to produce a typed SDK from your workspace

    After init, your project looks like this:

    ```text theme={null}
    my-project/
      src/
        index.ts              # your job definitions
        terse.generated.ts    # generated SDK (do not edit)
      package.json
      tsconfig.json
      .env.example            # copy to .env when you need project-level env vars
      .gitignore
    ```

    `terse login` during init stores CLI credentials in your **user config**, not in the project folder. Copy **`.env.example`** to **`.env`** when you want `TERSE_API_KEY` (or other secrets) available to your app or tooling as environment variables.
  </Step>

  <Step title="Write your workflow">
    Open `src/index.ts` and define a job. The scaffolded file includes a starter example. Your generated SDK gives you typed helpers for every integration you connected: trigger builders, skill constructors, resource constants, and deterministic tool wrappers.
  </Step>

  <Step title="Test locally">
    ```bash theme={null}
    terse test
    ```

    Runs your workflow locally against the Terse backend so you can verify it works before deploying.
  </Step>

  <Step title="Deploy">
    ```bash theme={null}
    terse deploy
    ```

    Your code is packaged, uploaded, and hosted serverlessly. Navigate to the link provided to monitor your workflow. [Learn more about how deployment works.](/hosting)
  </Step>
</Steps>

## What to do next

<CardGroup cols={2}>
  <Card title="Context as Code" icon="lightbulb" href="/context-as-code">
    Understand what `terse generate` produces and why it matters.
  </Card>
</CardGroup>
