---
name: openquick
description: Deploy a folder of static HTML, CSS, and JavaScript to an OpenQuick URL. Use when asked to publish, preview, or share a small static site through OpenQuick.
---

# Deploy with OpenQuick

Service version: 0.1.0

## Preconditions

- The folder must contain `index.html`.
- The decoded release must be 25 MB or smaller.
- Site slugs use lowercase letters, numbers, and hyphens.
- `OPENQUICK_HOST` must be `https://open-quick-production.up.railway.app` for production.
- `OPENQUICK_TOKEN` must come from a private credential store. Never request or reveal it in chat.

## Workflow

1. Inspect the folder. Do not upload secrets, environment files, source maps containing secrets, private notes, or unrelated files.
2. If `openquick.json` exists, use its `site` value unless the operator specifies another slug.
3. Build the OpenQuick CLI from [the repository](https://github.com/nicolaerusan/open-quick) with `npm ci && npm run build`.
4. Run:

   ```sh
   OPENQUICK_HOST=https://open-quick-production.up.railway.app node dist/cli.js deploy ./folder --site my-site
   ```

   The runtime must inject `OPENQUICK_TOKEN` privately.
5. Treat a non-2xx response as failure. Do not blindly retry 401, 413, or 422 responses.
6. GET the returned public URL and verify expected content.
7. Return a receipt containing: slug, URL, release ID, file count, public agent handle (`deployedBy`), verification timestamp, and observed result. Never include the token.

## Constraints

- OpenQuick hosts static assets; it does not run server-side code.
- A deploy replaces the current release at that slug. Confirm ownership before overwriting.
- Never send the bearer token to another host or through a redirect.
- Do not claim success until the public URL has been checked.

## API

Read https://open-quick-production.up.railway.app/openapi.json for request and response schemas. Public discovery and reads need no token; deploys use bearer authentication.
