Agent-first content fetching skill for Windows.
Skill contract:
skills/site-content-downloader/SKILL.mdAgent operating guide:
AGENTS.md
PaywallFetcher is an agent-first repository for authenticated article fetching, Q&A retrieval, browser-assisted retrieval of authorized content, incremental polling, and scheduled collection.
| Entry | Purpose |
|---|---|
skills/site-content-downloader/SKILL.md |
Canonical skill contract |
AGENTS.md |
Agent operating guide |
TOOLS.md |
Workspace-specific site and environment configuration |
skills/README.md |
Skill index |
config.example.json |
Execution template |
Use this repository when an agent needs to:
- list or fetch premium articles from a site the user is already logged into
- list or fetch already-accessible Q&A content
- retrieve authorized Q&A content via browser-assisted session
- run incremental polling jobs with
--new-only - install or invoke a reusable OpenClaw-compatible skill instead of ad hoc scripts
This repository is optimized for agent execution and reusable automated operation.
- Authentication source: local Chrome or Edge session via
browser_auto - Canonical skill contract:
skills/site-content-downloader/SKILL.md - Canonical execution config:
config.jsonderived fromconfig.example.json - Incremental polling model:
output/_state.json+--new-only - Scheduling model: OpenClaw cron (preferred) or Windows Task Scheduler (fallback)
Open skills/site-content-downloader/SKILL.md.
If config.json is missing, create it from config.example.json.
Keep auth.mode set to browser_auto unless debugging fallback auth.
py -m paywallfetcher doctor
py -m paywallfetcher article listCreate a daily cron job at 09:00 that runs:
py -m paywallfetcher --json article fetch --new-only
Set the working directory to this workspace.
| Capability | Preferred command | Transport |
|---|---|---|
| Pre-flight check | py -m paywallfetcher doctor |
local |
| Auth check | py -m paywallfetcher auth check |
local |
| Article listing | py -m paywallfetcher article list |
requests |
| Article fetch (full) | py -m paywallfetcher article fetch |
requests |
| Article fetch (incremental) | py -m paywallfetcher article fetch --new-only |
requests |
| Q&A listing | py -m paywallfetcher qa list |
requests |
| Q&A fetch (incremental) | py -m paywallfetcher qa fetch --new-only |
requests |
| Browser-assisted Q&A retrieval | py -m paywallfetcher qa browser-fetch |
Playwright |
| State inspect / reset | py -m paywallfetcher state inspect |
local |
| Skill behavior contract | skills/site-content-downloader/SKILL.md |
agent-facing |
.
├── README.md
├── AGENTS.md
├── TOOLS.md
├── RESPONSIBLE_USE.md
├── SECURITY.md
├── pyproject.toml
├── auth_utils.py
├── config.example.json
├── downloader.py
├── qa/
│ ├── README.md
│ ├── qa_downloader.py
│ └── qa_unlock.py
├── src/
│ └── paywallfetcher/
│ ├── cli.py
│ ├── config.py
│ ├── state.py
│ ├── auth.py
│ ├── articles.py
│ ├── qa.py
│ ├── unlock.py
│ └── sites/
│ ├── base.py
│ └── generic.py
├── tests/
├── skills/
│ └── site-content-downloader/
│ └── SKILL.md
└── workspace-template/
├── AGENTS.md
└── TOOLS.md
- Do not ask for pasted cookies unless browser-based auth fails.
- The expected runtime is Windows with
pyavailable. - The expected browser state is an already-authenticated Chrome or Edge session.
--new-onlystops scanning once previously downloaded content is encountered.output/_state.json(v2) is the state boundary for repeat runs. Supports migration of v1 list-based state data format on load.- This is the preferred mode for monitoring a target account over time.
- Preferred: OpenClaw
cron— ask OpenClaw to register a daily cron job. - Fallback: Windows Task Scheduler — see
skills/site-content-downloader/SKILL.mdfor setup commands.
TOOLS.mdholds workspace-specific and site-specific configuration.skills/site-content-downloader/SKILL.mdis the portable skill contract.- This repository is a self-contained skill + implementation bundle. The skill execution depends on
src/paywallfetcher/and the workspace scaffold. To reuse it, clone or fork the entire repository and updateconfig.jsonfor the new target site.
py -m paywallfetcher doctor
py -m paywallfetcher article list
py -m paywallfetcher article fetch
py -m paywallfetcher article fetch --new-only
py -m paywallfetcher qa list
py -m paywallfetcher qa fetch --new-only
py -m paywallfetcher qa browser-fetch --batch-size 3
py -m paywallfetcher state inspect- Windows
- Python available as
py - Chrome or Edge logged into the target site
MIT