# The scava command - setup and what your agent runs

The `scava` command is small. It adds Scava to your agents, and it carries out what an agent with a terminal asks for. It holds no key and has no sign-in of its own: every AI connects through [one address and one sign-in](/docs/agents). You and your agent do everything else with the tools of your agent and at scava.ai.

It needs Node.js 22 or newer. Run it without installing: `npx -y scava <command>`.

## For you

| Command | What it does |
|---|---|
| `scava setup` | Adds Scava to your agents and says what is left for Claude. See [Connect your agent](/docs/agents). |
| `scava secret set NAME [--host HOST] [--app APP]` | Says where to set a key for the server code of an app and opens that page. |
| `scava docs` | Prints the short reference that agents receive: what an app needs to know about Scava. |

`scava setup` opens the page for Claude's connectors in your browser and starts the sign-in of agents that have a command for it (leave this out with `--no-browser`). `--server URL` uses a different Scava server; the default is scava.ai.

Keys are set in the browser, on the app page under "Server code", so a value never passes through a terminal an AI can read. `--app` names the app; inside a published folder the command knows it.

## What your agent runs

Your agent gets these commands from Scava, each with a one-time link. The link is for this one action and works for 15 minutes. Files only ever go to Scava: the command refuses a link to anywhere else, before it reads a file.

| Command | What it does |
|---|---|
| `scava upload <folder> <link>` | Publishes a folder as a new version, then opens the app once in a browser here and lists what went wrong. `--no-check` leaves out the test run. |
| `scava test <link>` | Opens the live app once in a browser here and lists what goes wrong, plus the problems visitors reported. |
| `scava pull <link> [folder]` | Writes the live files of an app you own or co-edit into a folder. |

`scava upload` refuses folders that are far too large before it uploads anything. The limit that counts is 10 MB per version and 2,000 files. Hidden files and folders, `node_modules` and tool folders are skipped. If Scava refuses the upload, the command prints each problem with the file, the line and the reason and exits with an error; the link stays usable, so the agent can fix the files and run the command again.

`scava pull` writes into a new, empty folder, or into the folder that already belongs to that app. It writes only inside that folder.

## Files on your computer

| Path | Purpose |
|---|---|
| `<folder>/.scava-app` | The app a folder belongs to, so the next upload from it goes to the same app |

There is no key and no settings file.

## Errors

A command that fails prints the reason and ends with a non-zero exit status. If a link has expired or was used already, the agent asks Scava for a new one.
