Pub
/install pub
pub
Use this skill when the user asks about creating adaptive interfaces, publishing content, or running live sessions on pub.blue.
Required CLI Version
Use pub CLI 0.11.17+.
Source: \x3Chttps://github.com/xmanatee/pub> (MIT license)
pub --version
# Install from GitHub Releases:
# https://github.com/xmanatee/pub/releases/latest
# Or via install script:
curl -fsSL https://pub.blue/install.sh | bash
# Or self-update an existing install:
pub upgrade
Setup
# One-time auth
pub config --api-key pub_KEY
# or
echo "pub_KEY" | pub config --api-key-stdin
Key source: \x3Chttps://pub.blue/agents>
Pub resolves config from:
PUB_HOME/config/config.jsonwhenPUB_HOMEis setXDG_CONFIG_HOME/pub/config.jsonwhenXDG_CONFIG_HOMEis set~/.config/pub/config.jsonby default
PUB_HOME must be an absolute path. It also roots Pub data, state, runtime sockets, and workspaces.
For OpenClaw bridge mode, set an explicit workspace before pub config --auto, for example OPENCLAW_WORKSPACE=/absolute/path/to/workspace.
Core Commands
pub create page.html
pub create --slug demo page.html
cat page.html | pub create
pub get \x3Cslug>
pub get \x3Cslug> --content
pub update \x3Cslug> --file next.html
pub update \x3Cslug> --public
pub list
pub delete \x3Cslug>
Notes:
- Pub is built for adaptive interfaces — agents generate real-time UIs tailored to the user's task.
- Pubs are private by default.
- Reuse existing pubs for regular or repeated tasks. Use
pub listto check if a relevant pub already exists, thenpub update \x3Cslug>instead of creating a new one. Each user is limited to 10 pubs. - Title and description come from OG meta tags in the HTML. Always include
og:titleandog:descriptionin your\x3Chead>. The server extracts them automatically — there are no CLI flags for title/description.
When updating a pub's content, always keep the OG tags accurate.\x3Chead> \x3Cmeta property="og:title" content="My Pub Title"> \x3Cmeta property="og:description" content="A short description of what this pub does"> \x3C/head> createsupports--slug.updatesupports--file,--public/--private,--slug.- Content is optional: a pub can be live-only.
UI Components
DaisyUI 5 + Tailwind CSS 4 via CDN:
\x3Clink href="https://cdn.jsdelivr.net/npm/daisyui@5" rel="stylesheet" type="text/css" />
\x3Cscript src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4">\x3C/script>
- Components: daisyUI classes for all UI elements (
btn,card,input,table,alert,tabs,modal,drawer, etc.) with color/size/variant modifiers - Colors: daisyUI semantic tokens only (
primary,secondary,accent,neutral,base-*,info,success,warning,error) - Layout: Tailwind utilities (
flex,grid,gap-*,p-*, responsive prefixes) - Never: inline styles, arbitrary values (
text-[...]),z-index, emojis, hardcoded colors, branding/marketing copy
Going Live
Live is browser-initiated: the user opens the pub page; owner live mode connects automatically once the daemon is online.
- Start the agent daemon:
pub start --agent-name "\x3Cagent-name>"
Notes:
- Bridge mode comes from saved config (
pub config --autoorpub config --set bridge.mode=...). - Supported bridge modes:
openclaw,claude-code,claude-sdk,claude-channel, andopenclaw-like. - Enable verbose live daemon logging with
pub config --set bridge.verbose=truewhen startup or bridge delivery is hard to diagnose. - Standalone binary installs fall back to
claude-codewhen the Claude Agent SDK package is not locally importable. bridge.mode=claude-sdkrequires@anthropic-ai/claude-agent-sdkto be available in the local JS environment.bridge.mode=claude-channelexpects a running relay socket. Start it withpub channel-serverand override the socket path withclaude-channel.socketPathorPUB_CHANNEL_SOCKET_PATHwhen needed.- Canvas command-manifest
agentexecutors require a local agent runtime:provider: "claude-code"needsclaude-code.pathorCLAUDE_CODE_PATH;provider: "openclaw"needsopenclaw.pathandopenclaw.sessionIdor matching env vars. - On success,
pub startprints the daemon log path and current runtime status. - On failure, inspect the reported log path first; if logs are sparse, enable
bridge.verbose=trueand retry.
- Check runtime status:
pub status
- Reply in chat:
Bridge-owned chat is the live-session contract. Reply with normal assistant text; the bridge forwards that text to the chat channel.
Do not use pub write for chat messages.
Use pub write only for non-chat outputs:
pub write -c canvas -f /tmp/view.html
- Stop daemon:
pub stop
- Validate end-to-end:
pub doctor
pub doctor --skip-chat --skip-canvas
Important:
writewaits for delivery confirmation.
Advanced Details (On Demand)
Only when needed:
- Show effective saved config:
pub config - Inspect runtime and bridge state:
pub status - Toggle verbose daemon logging:
pub config --set bridge.verbose=true - See command-specific options:
pub \x3Ccommand> --help
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install pub - After installation, invoke the skill by name or use
/pub - Provide required inputs per the skill's parameter spec and get structured output
What is Pub?
Create adaptive interfaces and real-time experiences via the pub CLI, with live P2P browser sessions. It is an AI Agent Skill for Claude Code / OpenClaw, with 65 downloads so far.
How do I install Pub?
Run "/install pub" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Pub free?
Yes, Pub is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Pub support?
Pub is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Pub?
It is built and maintained by Michael Nome (@xmanatee); the current version is v5.2.10.