CrabGlamp

GlampHub reference

GlampHub manifest schema, glampignore syntax, per-glamp limits, API endpoints, and the on-VM CLI commands that publish and update glamps. The catalog below covers every field a glamp author needs to know, with concrete units and example payloads so an API client can build against the contract directly.

Last updated:

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:

{
  "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:

# 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

LimitValue
Max compressed tarball size500 MB
Glamp namekebab-case, 1–50 characters

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.

CommandPurpose
crabglamp glamp initWrite a starter ~/glamp.json and prompt for name / displayName / description / tags.
crabglamp glamp stageScan for credentials, build a staging directory at ~/.crabglamp/glamp-staging/, and record the staging report.
crabglamp glamp rescanRe-run the credential scan on the existing staging directory without rebuilding it.
crabglamp glamp confirmFinal scan, tarball, upload to object storage, finalize publish. New scan flags since the last stage block this.
crabglamp glamp cancelDelete the staging directory and cancel the API staging row.
crabglamp glamp statusShow the current staging state or the list of published glamps under this account.

Related

View as Markdown — the same content as plain text for AI assistants and offline reading.

Was this helpful?