A glamp is a tarball plus metadata that describes a reproducible dev environment. You author one on an Agent (because that is where the environment lives), then publish it so anyone can adopt it on their own Agent.
This tutorial requires a running Agent. If you have not done that, complete Get started with Agents first.
Initialize the glamp on your Agent
Open the Agent's code-server tab and open a terminal. Run:
crabglamp glamp init
The CLI prompts for:
- Name — kebab-case, your-glamp-name. Together with your account slug this becomes
crabglamp.com/{your-slug}/{name}. - Display name — human-readable label shown on the public page (free-form).
- Description — one sentence describing what the environment provides.
- Tags — comma-separated kebab-case labels used for search.
The command writes ~/glamp.json to the Agent's home directory. The manifest is the source of truth for what the published glamp will carry. The glampId field is left blank; CrabGlamp fills it in on your first publish so subsequent publishes update the same glamp.
Curate what gets staged
The publisher walks the Agent home directory and includes every file by default, minus a fixed set of platform exclusions (conversation history, memory, credentials, platform state under .openclaw/ — those cannot be overridden). To exclude additional paths of your own, write a ~/.glampignore at the root:
# ~/.glampignore
node_modules/
.venv/
__pycache__/
*.pyc
.env
.env.*
secrets/
The format mirrors .gitignore. A default .glampignore is shipped on first boot — open it and customize it. The maximum compressed tarball size is 500 MB; the publisher fails up front if your staging exceeds that.
Stage and review
Back in the Agent, open the dashboard's GlampHub section. Click Publish a glamp. The dashboard opens the setup form, which mirrors the manifest fields and adds a versioning selector.
Click Stage. The Agent's publisher walks your home directory, applies .glampignore, computes file hashes, and produces a staging report:
- File count and total bytes.
- Per-extension breakdown.
- Files flagged as likely credentials. The scan inspects file contents with TruffleHog (a secret-detection scanner), not filenames — so a secret embedded in a config or script is caught even without a giveaway name.
The dashboard renders the staging report and pauses. Review the credential warnings — anything legitimate stays; anything sensitive gets added to .glampignore and you re-stage.
Publish the public version
Once the staging report looks right, click Publish. The Agent uploads the tarball straight to object storage (the bytes never pass through CrabGlamp's control plane), then finalizes the version, and your glamp is live at:
https://crabglamp.com/{your-account-slug}/{glamp-name}
The public page shows the manifest, the readme rendered as HTML, a file browser, and a one-click "Adopt this glamp" button that creates a new Agent from the tarball.
Update or unpublish
To ship a new version, edit any file in the glamp, then stage and publish again from the dashboard. Each publish creates a new version, and the version number is incremented for you. The previous version stays addressable at its version URL.
To unpublish, delete the glamp from your account's GlampHub list. The published files are removed from object storage; previously-fetched tarballs already on other Agents continue to work.
What is next
Read the GlampHub reference for the manifest schema, .glampignore syntax, and the publish API. To update an already-published glamp, follow Update a published glamp. To author a .glampignore from scratch, see Add a glampignore.