A high-performance command-line interface for Skool community owners and power users. This tool allows you to bypass the browser for community management, perform deep domain analytics, and gain behavioral insights into your members.
- Full Data Sync: Synchronize your entire community (members, posts, etc.) to a local SQLite database.
- Domain Analytics (Rung 4): Identify "orphaned" members (joined but never posted), stale members, and top contributors.
- Behavioral Insights (Rung 5): Predictive modeling for churn risk and member growth velocity.
- Cloudflare Optimized: Built-in support for HTTP/2 and modern browser headers to ensure reliable API connectivity.
Ensure you have Go installed (v1.21+).
-
Clone the repository:
git clone https://github.com/Robj1925/skool-pp-cli.git cd skool-pp-cli -
Build the binary:
go build -o skool-pp-cli ./cmd/skool-pp-cli
-
(Optional) Move it to your path:
sudo mv skool-pp-cli /usr/local/bin/
Skool uses a session-based cookie for authentication. You will need to "sniff" your session cookie from your browser.
- Log in to Skool.com in your browser (Chrome/Edge/Brave).
- Right-click anywhere and select Inspect.
- Go to the Application tab (or Storage in Firefox).
- In the left sidebar, expand Cookies and select
https://www.skool.com. - Find the row where the Name is NOT
auth_tokenbut rather the entire string containing your session info.Tip: You can also just go to the Network tab, refresh the page, click on any request to
www.skool.com, and copy the entire value of theCookieheader from the Request Headers section.
Copy the entire cookie string and run:
skool-pp-cli auth set-token "client_id=...; auth_token=...; etc..."Run the "doctor" command to ensure everything is working:
skool-pp-cli doctorBefore running analytics, you need a local copy of your data:
skool-pp-cli syncThis will create a SQLite database at ~/.config/skool-pp-cli/skool.db.
Find "orphaned" members who joined but haven't contributed yet:
skool-pp-cli analytics-domain orphansFind "stale" members who haven't been active in 30 days:
skool-pp-cli analytics-domain stale --days 30Predict which members are at risk of churning:
skool-pp-cli insights churn-riskIdentify members who are leveling up at high velocity:
skool-pp-cli insights level-velocity| Command | Description |
|---|---|
posts create |
Create a new post in a group. |
sync |
Fetches all data from Skool and stores it locally. |
analytics-domain |
Advanced reports on member status and contributions. |
insights |
Predictive analytics (Churn, Velocity, Health). |
auth set-token |
Configures your session cookie. |
doctor |
Connectivity and auth health check. |
search |
Instant full-text search across your local community data. |
You can create posts in any group where you have permission. You need the group's unique hash (found in the URL or via skool-pp-cli groups list).
# Create a post (defaults to 'General discussion' category)
skool-pp-cli posts create <group-hash> \
--title "My New Post" \
--content "This is the body of the post. Supports markdown!"
# Create a post in a specific category
skool-pp-cli posts create <group-hash> \
--title "Q&A" \
--content "Ask me anything!" \
--category-id <category-id>Note: The Skool API requires a category ID for every post. If --category-id is omitted, the CLI defaults to the "General discussion" category.
"No such table: members"
This usually means you haven't run skool-pp-cli sync yet, or the sync failed. Run skool-pp-cli sync and check for errors.
"Cloudflare / HTTP 403" If you are getting blocked, ensure you are using the latest version of the CLI. We've implemented HTTP/2 support to align with Skool's production environment.
"Missing config file"
The CLI expects a config file at ~/.config/skool-pp-cli/config.toml. Running auth set-token will create this for you automatically.
Licensed under Apache-2.0. See LICENSE for details.
Developed with ❤️ for the Skool Community.
