Source: https://crabglamp.com/docs/glamphub/reference
Last updated: 2026-06-09
Type: reference

This is the catalog for the GlampHub surface. For an end-to-end walkthrough, see the Tutorial.

## Manifest schema

The manifest is a JSON document at `~/glamp.json` in the Agent's home directory:

```json
{
  "name": "my-glamp",
  "displayName": "My Glamp",
  "description": "One-sentence summary of what this environment provides.",
  "tags": ["python", "data-science"],
  "glampId": "<uuid>",
  "credentials": []
}
```

- `name` — kebab-case (lowercase alnum + hyphens), 1–50 characters. Becomes the URL slug at `crabglamp.com/{account}/{name}`.
- `displayName` — free-form human-readable label shown on the public page.
- `description` — one-sentence summary. Used in search results and the public glamp card.
- `tags` — array of kebab-case tags, used for search.
- `glampId` — a UUID populated after the first publish; left blank by `crabglamp glamp init`. Subsequent publishes update the same glamp because this ID is present.
- `credentials` — array of `{key, description, locations}` entries documenting env vars an adopter must set after adoption. Auto-derived from stripped `.openclaw` credentials during staging (not prompted by `init`). Surfaced on the public glamp page.

There is no `license`, `version`, or `readme` field at v1. The version number is platform-managed (auto-incremented on each publish). A `README.md` at the root of the staging tree, if present, is rendered as the public page body.

The published bytes are immutable. Republishing creates a new version; previous versions stay addressable at their version URL.

## .glampignore syntax

`.glampignore` excludes paths from the published tarball. Same format as `.gitignore`:

```text
# Exclude common dev artifacts
node_modules/
.venv/
__pycache__/
*.pyc

# Exclude credentials
.env
.env.*
**/id_rsa*
**/secrets/

# Exclude large local data
data/raw/
**/*.parquet
```

Patterns are matched against the relative path from the staging root. Negation via `!` is supported (`!keep-this-file.env`).

## Per-glamp limits

<table>
  <thead>
    <tr><th>Limit</th><th>Value</th></tr>
  </thead>
  <tbody>
    <tr><td>Max compressed tarball size</td><td>500 MB</td></tr>
    <tr><td>Glamp name</td><td>kebab-case, 1–50 characters</td></tr>
  </tbody>
</table>

## API endpoints

Publish endpoints are HMAC-authenticated (the Agent calls them with its on-VM token). `[slug]` here is the glamp's ID, written back to `glamp.json` after the first publish.

### POST /api/glamps/[slug]/publish

Request upload URLs for the tarball and individual published files. Body declares the file list and per-file hashes from the staging report. Returns the upload URLs.

### POST /api/glamps/[slug]/publish/complete

Finalize the version after the Agent has uploaded the files. The handler verifies the upload, finalizes the version, and exposes the public page.

### GET /[accountSlug]/[name]

Public glamp page. Renders the manifest, the rendered `README.md` (if any), and a file browser. Catch-all two-segment route on the main domain — 404s gracefully for non-glamp paths.

### DELETE /api/glamps/[accountSlug]/[name]

Delete the entire glamp. Clerk auth, owner only. All versions and their files are deleted from object storage.

### DELETE /api/glamps/[accountSlug]/[name]/versions/[version]

Delete a single version. Clerk auth, owner only.

## CLI

On-VM CLI for GlampHub.

| Command | Purpose |
|---|---|
| `crabglamp glamp init` | Write a starter `~/glamp.json` and prompt for `name / displayName / description / tags`. |
| `crabglamp glamp stage` | Scan for credentials, build a staging directory at `~/.crabglamp/glamp-staging/`, and record the staging report. |
| `crabglamp glamp rescan` | Re-run the credential scan on the existing staging directory without rebuilding it. |
| `crabglamp glamp confirm` | Final scan, tarball, upload to object storage, finalize publish. New scan flags since the last `stage` block this. |
| `crabglamp glamp cancel` | Delete the staging directory and cancel the API staging row. |
| `crabglamp glamp status` | Show the current staging state or the list of published glamps under this account. |
