ClickClack

SkillCloud & infra

Lets your agent deploy and operate the ClickClack chat app on Cloudflare, including container rollouts and site checks.

Then ask your AI: use the ClickClack skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.

About this skill

ClickClack ops: chat app, Cloudflare Workers deploy, DNS/docs/app, container rollout.

What this skill tells your AI

The instructions your AI receives, as published by steipete/agent-scripts in skills/clickclack/SKILL.md and read by Ahel’s review.

Use this for ClickClack product/runtime ops, deploys, hosted app checks, and domain questions.

What

  • Repo: ~/Projects/clickclack / https://github.com/openclaw/clickclack
  • Product: self-hostable Slack-style chat for OpenClaw/community/agent workflows.
  • Surfaces:
    • https://clickclack.chat product site (Cloudflare Worker custom domain)
    • https://www.clickclack.chat (Worker custom domain, same worker)
    • https://app.clickclack.chat hosted app (Worker custom domain)
    • https://docs.clickclack.chat GitHub Pages docs from docs/

Prod (Cloudflare, since 2026-07-05)

  • Everything is one Cloudflare Worker clickclack in the OpenClaw account (91b59577e757131d68d55a471fe32aca) fronting a Cloudflare Container.
  • Worker + container config: wrangler.jsonc (routes are declarative custom_domain entries).
  • Container: Go binary + embedded SPA from Dockerfile.cloudflare; data in Supabase Postgres (CLICKCLACK_DB secret) and R2 uploads (clickclack-uploads).
  • Zone clickclack.chat id e7f93ba1ec24d75ce60c468bbaba5cb5 (OpenClaw account). docs CNAME → openclaw.github.io stays DNS-only.
  • 1Password (OpenClaw vault): "Cloudflare ClickClack deploy token" (api_token field, workers-scoped; no DNS edit), "Cloudflare ClickClack R2 uploads".
  • Legacy Hetzner box clickclack-prod-01 (157.90.237.80) no longer serves any DNS; decommission when confident. Old runbook in git history of this file.

Deploy

  1. cd ~/Projects/clickclack && git pull --ff-only
  2. Docker must run (OrbStack: open -a OrbStack).
  3. pnpm deploy:cloudflare (auth: wrangler login OAuth or the 1Password deploy token as CLOUDFLARE_API_TOKEN).
  4. Rollout gotcha: the running container instance is NOT replaced while it has traffic; sleepAfter=10m never fires on a public site. Bump CLICKCLACK_CONTAINER_NAME in wrangler.jsonc (dated, e.g. prod-YYYYMMDD-open-org) and redeploy to force a fresh instance on the new image. Container is stateless (Postgres/R2), so the swap is safe.
  5. Commit the wrangler.jsonc bump.

Verify

  • curl -s https://clickclack.chat/ | grep -oE 'entry/app\.[A-Za-z0-9_-]+\.js' — hash must match the freshly deployed build (compare against https://clickclack.services-91b.workers.dev).
  • Same check for https://app.clickclack.chat and https://www.clickclack.chat.
  • pnpm exec wrangler containers info a03b3158-bcfd-4962-9a86-e75489f4e803 — health + image digest.
  • curl -I https://docs.clickclack.chat

Guardrails

  • Do not print OAuth secrets or magic tokens.
  • The deploy token has no DNS scope; DNS record changes need the dashboard or a Zone.DNS token.
  • Keep deploys from clean git checkouts, not dirty working trees.

Signals

GitHub stars
7k
Forks
635
Last commit
Oct 2026
Advanced
Item type
skill
Key
clickclack
Source
github.com/steipete/agent-scripts