---
title: Installation
description: Install the scripto CLI from npm, authenticate over OTP or a pasted key, and verify with whoami.
---

## Install

```bash
npm install -g @codika-io/scripto
scripto --version
```

This puts a global `scripto` command on your PATH. Update later with:

```bash
npm install -g @codika-io/scripto@latest
```

<Note>

If `npm install -g` is blocked in your environment, `npx @codika-io/scripto <cmd>` runs any command without a global install.

</Note>

## Requirements

- **Node.js 20+** (`node --version` to check).

## Authenticate

<Tabs>

<Tab label="OTP (no browser)">

```bash
scripto auth login-request --email you@example.com
# read the 6-digit code from your inbox
scripto auth login-complete --email you@example.com --code 123456
```

An unknown email is registered on completion, so this is both signup and login. A `scripto_` key is minted, stored as the active profile, and you're ready. See [Auth](/cli/auth).

</Tab>

<Tab label="Paste a key">

Already minted a key in web **Settings → API keys**?

```bash
scripto config set --api-key scripto_your_key_here
```

This saves a profile and makes it active.

</Tab>

</Tabs>

## Verify

```bash
scripto whoami
```

```text
Logged in to scripto

  User ID:  user_…
  Email:    you@example.com
  Key:      scripto_••••••••
  Profile:  you
  Backend:  https://scripto.codika.io
```

## From source (development)

```bash
git clone https://github.com/codika-io/scripto-cli
cd scripto-cli
npm install && npm run build
npm link                      # global `scripto` → ./dist (rebuild to update)
# or run directly:
node dist/index.js --help
```

## Next

- **[Configuration](/cli/configuration)** — profiles, env vars, base-URL overrides.
- **[Command reference](/cli/commands)** — the full surface.
