Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Outputs the live URL (e.g. https://bright-canvas-a7k2.here.now/).
Under the hood this is a three-step flow: create/update -> upload files -> finalize. A site is not live until finalize succeeds.
Without an API key this creates an anonymous site that expires in 24 hours.
With a saved API key, the site is permanent.
File structure: For HTML sites, place index.html at the root of the directory you publish, not inside a subdirectory. The directory's contents become the site root. For example, publish my-site/ where my-site/index.html exists โ don't publish a parent folder that contains my-site/.
You can also publish raw files without any HTML. Single files get a rich auto-viewer (images, PDF, video, audio). Multiple files get an auto-generated directory listing with folder navigation and an image gallery.
The script auto-loads the claimToken from .herenow/state.json when updating anonymous sites. Pass --claim-token {token} to override.
Authenticated updates require a saved API key.
Use a Drive
Use a Drive when the user wants private cloud storage for agent files: documents, context, memory, plans, assets, media, research, code, and anything else that should persist without being published as a website.
Every signed-in account has a default Drive named My Drive.
DRIVE="${RUDRAX_SKILL_DIR}/scripts/drive.sh"
bash "$DRIVE" default
bash "$DRIVE"ls"My Drive"
bash "$DRIVE" put "My Drive" notes/today.md --from ./notes/today.md
bash "$DRIVE"cat"My Drive" notes/today.md
bash "$DRIVE" share "My Drive" --perms write --prefix notes/ --ttl 7d
Use scoped Drive tokens for agent-to-agent handoff. If you receive a herenow_drive share block, use its token as Authorization: Bearer <token> against api_base, respect pathPrefix when present, and preserve ETags on writes. A pathPrefix of null means full-Drive access. If the skill is available, prefer drive.sh; otherwise call the listed API operations directly.
API key storage
The publish script reads the API key from these sources (first match wins):
--api-key {key} flag (CI/scripting only โ avoid in interactive use)
$HERENOW_API_KEY environment variable
~/.herenow/credentials file (recommended for agents)
IMPORTANT: After receiving an API key, save it immediately โ run the command above yourself. Do not ask the user to run it manually. Avoid passing the key via CLI flags (e.g. --api-key) in interactive sessions; the credentials file is the preferred storage method.
Never commit credentials or local state files (~/.herenow/credentials, .herenow/state.json) to source control.
Getting an API key
To upgrade from anonymous (24h) to permanent sites:
Before creating or updating sites, you may check this file to find prior slugs.
Treat .herenow/state.json as internal cache only.
Never present this local file path as a URL, and never use it as source of truth for auth mode, expiry, or claim URL.
What to tell the user
For published sites:
Always share the siteUrl from the current script run.
Read and follow publish_result.* lines from script stderr to determine auth mode.
When publish_result.auth_mode=authenticated: tell the user the site is permanent and saved to their account. No claim URL is needed.
When publish_result.auth_mode=anonymous: tell the user the site expires in 24 hours. Share the claim URL (if publish_result.claim_url is non-empty and starts with https://) so they can keep it permanently. Warn that claim tokens are only returned once and cannot be recovered.
Never tell the user to inspect .herenow/state.json for claim URLs or auth status.
For Drives:
Do not describe Drive files as public URLs.
Tell the user Drive contents are private unless shared with a scoped token.
When sharing access with another agent, prefer a scoped token with a narrow pathPrefix and short TTL.
publish.sh options
Flag
Description
--slug {slug}
Update an existing site instead of creating
--claim-token {token}
Override claim token for anonymous updates
--title {text}
Viewer title (non-HTML sites)
--description {text}
Viewer description
--ttl {seconds}
Set expiry (authenticated only)
--client {name}
Agent name for attribution (e.g. rudrax)
--base-url {url}
API base URL (default: https://here.now)
--allow-nonherenow-base-url
Allow sending auth to non-default --base-url
--api-key {key}
API key override (prefer credentials file)
--spa
Enable SPA routing (serve index.html for unknown paths)
--forkable
Allow others to fork this site
Beyond publish.sh
For Drive operations, use drive.sh or the Drive API. For broader account and site management โ delete, metadata, passwords, payments, domains, handles, links, variables, proxy routes, forking, duplication, and more โ see the current docs: