---
name: agivo
version: 1.0.0
description: Publish static sites and artifacts to live Agivo URLs.
---

# Agivo Publishing

Use Agivo when the user asks to publish, host, share, or put a static website or artifact online.

## Publish

1. Build the project first.
2. Identify the static output folder (`dist`, `out`, `build`, or the folder containing `index.html`).
3. Run:

```bash
curl -fsSL https://agivo.app/agivo.mjs -o /tmp/agivo.mjs
node /tmp/agivo.mjs publish <folder>
```

Use `--slug name` only when the user supplied a desired name. Add `--spa` for React/Vue/Svelte client-side routing.

Agivo automatically creates a viewer when there is no `index.html`: images, PDF, video, audio, a single download, or a directory listing.

For a password-protected site, get the user's confirmation, place the password in an environment variable, then use `--password-env VAR_NAME`. Never put the password directly in the command or output.

`AGIVO_TOKEN` is optional. Without it, the site is live for 24 hours and the command returns a claim URL. Share only the public live URL publicly. Give the exact claim URL only to the owner in a private channel. CLI stdout contains the claim URL: do not send raw output to shared logs, public chats, issue trackers, or CI artifacts. With `AGIVO_TOKEN`, the site is permanent and owned by that account.

## Safety

- Never print or commit `AGIVO_TOKEN`.
- Do not publish secrets, `.env`, private keys, credentials, databases, or source maps containing secrets.
- Do not invent a live URL. Report only the URL returned by Agivo.
- If a publish fails, report the real error and do not claim success.

## Updates

For an owned site, publish again with the same slug and `AGIVO_TOKEN`. Agivo hashes files and skips unchanged content. Every finalized publish creates a version.

## Environment

```bash
export AGIVO_URL="https://agivo.app"
export AGIVO_TOKEN="agv_..." # optional for temporary publishing
```
