hashnodelisted
Install: claude install-skill AceDataCloud/Skills
# hashnode — publish to your Hashnode blog via your own cookies (no Pro)
Hashnode moved its **public GraphQL API behind a paid Pro plan** (2026-05-13), so
a Personal Access Token can no longer publish for free. This skill instead drives
the **same first-party REST API the Hashnode web editor uses**
(`https://hashnode.com/api/...`), authenticated by the user's login **session
cookie** — which is free and needs no Pro plan.
The connector injects the cookie jar as `HASHNODE_COOKIES` (a JSON array; the
session cookie is `hashnode-session`). **Secret — full account access. Never echo
or print it.**
> E2E-verified 2026-07-12 on a real connected blog: list publications, create +
> save draft (title / subtitle / cover / tags / Markdown), publish, and delete —
> all via cookie auth, no Pro.
## Setup — anchor on our own script
```sh
# $SKILL_DIR can point at another skill loaded this turn — anchor on our script.
H="$SKILL_DIR/scripts/hashnode.py"; [ -f "$H" ] || H=$(find /tmp -maxdepth 8 -path '*/skills/*/hashnode/scripts/hashnode.py' 2>/dev/null | head -1)
[ -f "$H" ] || { echo "hashnode script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$H" publications # list the user's blogs (verifies the cookie)
```
On an auth error the cookie is expired — have the user reconnect at
<https://auth.acedata.cloud/user/connections>. Do **not** loop-retry.
## ⚠️ Non-Pro blogs are automoderated — write EDITORIAL, not ads
This is the single most important rule. A **non-Pro*