# Pagepop Skill

> Create and continue PagePop content-generation conversations from a host app. Use when the user wants PagePop to generate, refine, or retrieve content artifacts such as social posts, slides, documents, images, or design drafts.

- Skill: `lord1egypt/pagepop-skill` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lord1egypt/pagepop-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lord1egypt/pagepop-skill/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Lord1Egypt (https://skillmd.com/u/lord1egypt)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/lord1egypt/pagepop-skill

---


# 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

```bash
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_URL`
- `PAGEPOP_WEB_BASE_URL`
- `PAGEPOP_SKILL_ID`
- `PAGEPOP_SKILL_STATE_DIR`
- `PAGEPOP_SKILL_REGION`
- `PAGEPOP_SKILL_SOURCE_APP`
- `PAGEPOP_SKILL_DISPLAY_APP_NAME`
- `PAGEPOP_SKILL_RETURN_MODE`
- `PAGEPOP_SKILL_RETURN_TARGET`
- `PAGEPOP_SKILL_UPDATE_CHANNEL`
- `PAGEPOP_SKILL_WAIT_FOR_AUTHORIZATION`
- `PAGEPOP_SKILL_ARTIFACT_DIR`
- `PAGEPOP_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_app`
- `display_app_name`
- `return_mode`
- `return_target`
- `region` or `PAGEPOP_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 from `source_app` when 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_required`
- `auth_authorized`
- `chat_context`
- `conversation_history`
- `chat_submitted`
- `stream_resumed`
- `progress_update`
- `artifact_update`
- `artifact_ready`
- `artifact_delivery`
- `sse_event`
- `stream_finished`
- `skill_update_available`
- `skill_update_required`
- `error`

