PagePop Skill
This skill connects a host application to PagePop.
On first use, the user opens a PagePop authorization page in a browser and confirms access. After authorization, the skill stores a local access key and reuses it for later requests.
Capabilities
- Start a PagePop generation request.
- Continue the current PagePop conversation by default.
- Start a new conversation when explicitly requested.
- List locally saved conversations for switch-chat flows.
- Stream PagePop progress and artifact events.
- Emit a generic artifact delivery view plus channel-aware presentation payloads for host applications.
- Check whether the installed package should be updated.
Commands
python3 scripts/pagepop_skill.py status
python3 scripts/pagepop_skill.py auth
python3 scripts/pagepop_skill.py conversations
python3 scripts/pagepop_skill.py stream --goal "Create a product launch deck"
python3 scripts/pagepop_skill.py stream --new-chat --goal "Create a rednote post about camping gear"
python3 scripts/pagepop_skill.py resume-stream --conversation-id conv_xxx --offset 0
stream --goal always submits a chat request before reading SSE events. Use resume-stream when the host only needs to replay or continue reading events for an existing conversation without creating a new task. When --offset is omitted, resume-stream uses the saved SSE cursor for that conversation.
Configuration
Production packages are built with a generated skill-manifest.json.
Common environment variables:
PAGEPOP_API_BASE_URLPAGEPOP_WEB_BASE_URLPAGEPOP_SKILL_IDPAGEPOP_SKILL_STATE_DIRPAGEPOP_SKILL_REGIONPAGEPOP_SKILL_SOURCE_APPPAGEPOP_SKILL_DISPLAY_APP_NAMEPAGEPOP_SKILL_RETURN_MODEPAGEPOP_SKILL_RETURN_TARGETPAGEPOP_SKILL_UPDATE_CHANNELPAGEPOP_SKILL_WAIT_FOR_AUTHORIZATIONPAGEPOP_SKILL_ARTIFACT_DIRPAGEPOP_SKILL_DOWNLOAD_IMAGES
The legacy PAGEPOP_OPENCLAW_* names are still accepted as compatibility aliases for existing OpenClaw installations. New integrations should use the PAGEPOP_SKILL_* names. Host-specific usage notes belong in adapters/.
Before invoking this skill, host applications should determine whether the current user is in mainland China or outside mainland China. If PAGEPOP_API_BASE_URL is not set, production domain selection is region-based: mainland China (PAGEPOP_SKILL_REGION=CN or an Asia/Shanghai-style mainland timezone) uses https://pc-api.pagepop.cn; non-mainland users use https://pc-api.pagepop.ai. Missing region data defaults to the global .ai domain and emits an integration_warning.
Host Integration
When a host invokes this skill on behalf of another app, it should pass launch context before authorization:
source_appdisplay_app_namereturn_modereturn_targetregionorPAGEPOP_SKILL_REGION, after deciding mainland China vs non-mainland
If no launch context is provided, the authorization page falls back to the default host label.
Artifact delivery events include:
presentation: channel-neutral content for fallback renderers.channel_presentations.slack: Slack Block Kit blocks.channel_presentations.feishu: Feishu interactive-card payload plus media upload hints.target.preferred_channel: normalized fromsource_appwhen the host passes launch context.
Hosts should prefer their matching channel_presentations entry, then fall back to presentation.fallback_text.
Feishu hosts should avoid rendering raw URLs from generic presentation; use the Feishu card buttons or Feishu-specific fallback text so underscores in URLs are not truncated by lark_md auto-linking.
When composing a Feishu chat message manually, send channel_presentations.feishu.media.local_image_messages as image messages first, then send channel_presentations.feishu.plain_text or artifact.display_text; do not copy raw image URLs from artifact.text or sse_event.data into lark_md.
Output
The skill emits JSON Lines. Important event kinds include:
auth_requiredauth_authorizedchat_contextconversation_historychat_submittedstream_resumedprogress_updateartifact_updateartifact_readyartifact_deliverysse_eventstream_finishedskill_update_availableskill_update_requirederror