mediumlisted
Install: claude install-skill AceDataCloud/Skills
# medium — read & publish on Medium via your own cookies
Drives the user's **real** Medium account through the same internal web API the
site uses (Medium retired its public write API in 2023), authenticated by the
login cookie they captured with the ACE extension. No browser, no third-party
deps — just `urllib`.
The connector injects the cookie jar as an env var:
- `MEDIUM_COOKIES` — a JSON array of cookies (`sid`, `uid`, `xsrf`). **Secret —
never echo or print it.** The CLI echoes the `xsrf` cookie as the
`x-xsrf-token` header on writes for you. If the captured jar has no `xsrf`
cookie (common), the CLI mints one automatically before writing, so publishes
no longer fail with "Missing xsrf token".
## CLI
The skill ships [`scripts/medium.py`](scripts/medium.py) — self-contained, stdlib only.
```sh
# $SKILL_DIR can point at another skill loaded this turn — anchor on our own
# script, and re-run this at the top of every Bash block (fresh shell each time).
MED="$SKILL_DIR/scripts/medium.py"; [ -f "$MED" ] || MED=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/medium.py' 2>/dev/null | head -1)
[ -f "$MED" ] || { echo "medium script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$MED" whoami # who is logged in
python3 "$MED" articles --limit 20 # my posts + clap/response stats
python3 "$MED" article <post-id> # one post's details
```
## Verify the connection first
```sh
MED="$SKILL_DIR/scripts/medium.py"; [ -f "$MED"