Claude
Skills
Sign in
Back

pp-skool

Included with Lifetime
$97 forever

Every Skool community feature, plus a local SQLite mirror, FTS, and cross-community ops no other Skool tool ships.

General

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/media-and-entertainment/skool/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# Skool — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `skool-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install skool --cli-only
   ```
2. Verify: `skool-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/skool/cmd/skool-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

## When to Use This CLI

Use this CLI when you operate or moderate a Skool community and need analytics, exports, or automation that the native UI cannot do — classroom-to-markdown export, cross-community SQL, or scheduled digests for an agent.

## Unique Capabilities

These capabilities aren't available in any other tool for this API.

### Local state that compounds
- **`posts top`** — Rank recent posts by upvotes, comments, or engagement and return them with full content.

  _Pick this for a daily/weekly cron that surfaces the 3-5 most-engaging posts from any community — perfect for catching up without scrolling._

  ```bash
  skool-pp-cli posts top --community earlyaidopters --since 7d --top 5 --by engagement --json
  ```
- **`leaderboard`** — Top members by points for the community, with level and bio fields included.

  _Pick this when an agent needs the current community leaderboard in one call without scraping the page._

  ```bash
  skool-pp-cli leaderboard --community bewarethedefault --top 25 --json
  ```
- **`digest since`** — Aggregate everything new across posts, comments, members, and lessons since a timestamp.

  _Pick this when an agent needs a single brief of community activity for a daily/weekly cron._

  ```bash
  skool-pp-cli digest since 24h --json
  ```
- **`sql`** — Run read-only SQL across every community in your local store.

  _Pick this when an agent needs to compose a query across multiple Skool communities you own or operate._

  ```bash
  skool-pp-cli sql 'SELECT community, COUNT(*) FROM posts GROUP BY community'
  ```

### Agent-native plumbing
- **`calendar export`** — Export upcoming community events to an .ics file for Google Cal / Outlook.

  _Pick this when a member wants community events on their personal calendar without manual entry._

  ```bash
  skool-pp-cli calendar export --ics > community.ics
  ```
- **`classroom export`** — Export an entire course to a markdown bundle (modules, lessons, attachments, video URLs).

  _Pick this when an agent needs to ingest a course for offline reference, search, or LLM retrieval._

  ```bash
  skool-pp-cli classroom export <course-slug> --out ./course/
  ```

## HTTP Transport

This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.

## Command Reference

**calendar** — Community calendar events

- `skool-pp-cli calendar <buildId>` — List upcoming and recent calendar events

**classroom** — Classroom (courses, modules, lessons) for a community

- `skool-pp-cli classroom get-course` — Get a single course with its modules and lessons
- `skool-pp-cli classroom list` — List all courses in a community

**community** — Community feed, settings, and metadata

- `skool-pp-cli community about` — About page (rules, owner, member count)
- `skool-pp-cli community info` — Get the community feed (posts, leaderboard summary, upcoming events, settings)
- `skool-pp-cli community leaderboard-tab` — Leaderboard tab (community page rendered with t=leaderboard)
- `skool-pp-cli community members-tab` — Members tab data (community page rendered with t=members)

**me** — Current authenticated user dashboard

- `skool-pp-cli me <buildId>` — Get current user, joined communities, and dashboard state

**members** — Community members and moderation

- `skool-pp-cli members approve` — Approve a pending member request
- `skool-pp-cli members ban` — Ban a member from the community
- `skool-pp-cli members pending` — List pending member join requests
- `skool-pp-cli members reject` — Reject a pending member request

**notifications** — User notifications

- `skool-pp-cli notifications list` — List notifications for the authenticated user
- `skool-pp-cli notifications mark-read` — Mark notifications as read (empty ids = mark all)

**posts** — Posts (forum threads) inside a community

- `skool-pp-cli posts comment` — Add a comment to a post
- `skool-pp-cli posts create` — Create a new post (body = TipTap JSON; use --md to convert markdown)
- `skool-pp-cli posts delete` — Delete a post
- `skool-pp-cli posts get` — Get a post detail page including comment tree
- `skool-pp-cli posts like` — Like (upvote) a post
- `skool-pp-cli posts unlike` — Unlike a post
- `skool-pp-cli posts update` — Update an existing post


## Freshness Contract

This printed CLI owns bounded freshness only for registered store-backed read command paths. In `--data-source auto` mode, those paths check `sync_state` and may run a bounded refresh before reading local data. `--data-source local` never refreshes. `--data-source live` reads the API and does not mutate the local store. Set `SKOOL_NO_AUTO_REFRESH=1` to skip the freshness hook without changing source selection.

Covered paths:

- `skool-pp-cli notifications`
- `skool-pp-cli notifications list`
- `skool-pp-cli notifications mark-read`

When JSON output uses the generated provenance envelope, freshness metadata appears at `meta.freshness`. Treat it as current-cache freshness for the covered command path, not a guarantee of complete historical backfill or API-specific enrichment.

### Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

```bash
skool-pp-cli which "<capability in your own words>"
```

`which` resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code `0` means at least one match; exit code `2` means no confident match — fall back to `--help` or use a narrower query.

## Recipes


### Daily digest cron

```bash
skool-pp-cli sync bewarethedefault && skool-pp-cli digest since 24h --json --select new_posts,new_members,top_comments
```

One sync + one query. Pipes cleanly to a scheduled agent that drafts a Slack/email digest.

### Export a course to markdown

```bash
skool-pp-cli classroom export ai-foundations --out ./ai-foundations/
```

Recursive walk: modules → lessons → attachments + Mux URLs. One folder per course, ready for LLM ingestion.

### Cross-community engagement SQL

```bash
skool-pp-cli sql 'SELECT community, COUNT(*) AS posts_30d FROM posts WHERE created_at > date("now","-30 days") GROUP BY community ORDER BY posts_30d DESC'
```

Read-only SQL over the local store. Works across every community you have synced.

### Top 10 leaderboard

```bash
skool-pp-cli leaderboard --community bewarethedefault --top 10 --json
```

Current 30-day leaderboard. Members with rank, points, level, bio fields.

## Multi-community use

The CLI supports any Skool com

Related in General