Coding

Gumroad Admin Publisher

Try it

Manage Gumroad and batch-publish digital products with the official CLI.

What it does

Use this skill to administer Gumroad stores and publish digital products safely. Prefer the official CLI for product/file/content workflows because it handles local file upload, local cover images, local thumbnails, and content writes without needing temporary public hosting.

The skill document

Gumroad Admin

Use this skill to administer Gumroad stores and publish digital products safely. Prefer the official gumroad CLI for product/file/content workflows because it handles local file upload, local cover images, local thumbnails, and content writes without needing temporary public hosting.

Requirements

  • gumroad CLI available on PATH.
  • GUMROAD_ACCESS_TOKEN set in the environment, or run gumroad auth login.
  • Optional OAuth app values may exist as GUMROAD_APP_ID and GUMROAD_APP_SECRET, but do not require them for personal store administration.

Never store credentials in skill files, manifests, logs, examples, or Clawhub metadata.

Safety

Treat Gumroad as a live external commerce system.

  • Read-only commands may run when requested.
  • Use --dry-run, --json, --no-input, and --non-interactive for planning and machine-readable checks.
  • Ask for explicit confirmation before product creation, publication, unpublication, deletion, file replacement, content replacement, refunding, receipt resending, license disable/rotate, webhook mutation, or bulk changes.
  • For any batch publish, run one product first, verify it fully, then continue.
  • Keep resumable manifests in a local state folder outside the skill, for example state/gumroad-admin/.
  • Do not use public web hosting for local covers/thumbnails when the CLI supports --cover-image and --thumbnail.
  • Do not trust command success until verification confirms product state.

Quick Checks

gumroad auth status --json
gumroad user --json
gumroad products list --json
gumroad products view PRODUCT_ID --json

Product Publishing

For a single local digital product, prefer:

gumroad products create --json --no-input --yes \
  --name "Product Name" \
  --price 8.00 \
  --description "HTML description" \
  --custom-summary "Short summary" \
  --file "D:\path\product.zip" \
  --file-name "Product Name.zip" \
  --cover-image "D:\path\cover.jpg" \
  --thumbnail "D:\path\cover.jpg" \
  --tag "t-shirt mockup" \
  --tag "psd mockup"

Then verify:

gumroad products view PRODUCT_ID --json

A complete product should have:

  • published in the expected state.
  • files contains the downloadable file.
  • covers contains at least one cover.
  • thumbnail_url is present.
  • preview_url is present.
  • rich_content contains a fileEmbed pointing to a file id. If rich_content is empty, buyer-facing Content is empty even if files exists.

Publish only after verification if the product was created as a draft:

gumroad products publish PRODUCT_ID --json --no-input --yes

Batch Publishing

Use scripts/gumroad_batch_publish.py for repeatable local folder batches.

Typical flow:

python scripts\gumroad_batch_publish.py manifest --source "D:\Products" --out state\gumroad-admin\products.json --price 8.00
python scripts\gumroad_batch_publish.py plan --manifest state\gumroad-admin\products.json --limit 1
python scripts\gumroad_batch_publish.py publish --manifest state\gumroad-admin\products.json --limit 1 --yes
python scripts\gumroad_batch_publish.py verify --manifest state\gumroad-admin\products.json
python scripts\gumroad_batch_publish.py publish --manifest state\gumroad-admin\products.json --yes

The manifest command expects each product archive to have a matching cover image by stem, for example:

Product Folder/
  my-product.zip
  my-product.jpg

The script writes product ids and verification status back to the manifest so interrupted batches can resume. It uses the Gumroad CLI for file, cover, thumbnail, and content operations.

Content Pitfall

Gumroad distinguishes attached files from buyer-facing rich content. A product can have files but still show an empty Content section. After product creation, verify rich_content. If needed, use:

gumroad products content set PRODUCT_ID content.json --json --no-input --yes

The JSON should be an array containing a ProseMirror document with a fileEmbed whose attrs.id is the Gumroad file id returned by gumroad products view PRODUCT_ID --json.

Daily Limits

Gumroad may enforce daily product creation limits. If a batch receives a limit error, stop, keep the manifest checkpoint, and resume after the limit resets. Do not loop aggressively or try to bypass the limit.

Admin Areas

Use the CLI where possible:

  • gumroad products ... for products, covers, thumbnails, content, publish/unpublish.
  • gumroad files ... for file upload helpers.
  • gumroad sales ... for sales, buyers, refunds, receipt resend, shipping.
  • gumroad payouts ... for payout reads.
  • gumroad licenses ... for license verification and management.
  • gumroad offer-codes ..., gumroad variants ..., gumroad custom-fields ..., gumroad subscribers ..., gumroad webhooks ... for store operations.

Use direct API only when the CLI lacks a required operation. If using API directly, check both HTTP status and JSON success.

Clawhub Publication Checklist

Before publishing:

  1. Ensure the skill contains no credentials, real access tokens, account secrets, private paths, or temporary public URLs.
  2. Keep personal machine details in TOOLS.md, not the skill.
  3. Validate scripts with python -m py_compile scripts/gumroad_batch_publish.py.
  4. Test read-only CLI commands: gumroad user --json, gumroad products list --json.
  5. Do not include generated manifests or state in the skill package.
  6. Publish from the applied skill folder with a clean version and changelog:
clawhub publish .\skills\gumroad-admin --slug gumroad-admin --name "Gumroad Admin" --version 1.0.0 --changelog "Initial Gumroad admin and publishing workflow"

Related skills

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

More from stanestane

Browse all skills

Audit a game, feature, progression system, social system, live-ops loop, onboarding flow, monetization surface, or multiplayer space through the lens of the...

by stanestane16 installs1 stars

Define, refine, and evaluate the emotional identity, feeling, atmosphere, and vibe of a game, feature, event, region, or content theme. Use when shaping a ga...

by stanestane20 installs

Create a concise one-page game design document and export it as both markdown and PDF. Use when a user wants a one-page design doc, one-pager, pitchable desi...

by stanestane20 installs

Audit a game's FTUE (First Time User Experience) through the lens of the Hero's Journey / monomyth. Use when reviewing onboarding, tutorial flow, first-sessi...

by stanestane18 installs

Audit a video game pitch deck, publisher deck, funding deck, or investor-facing game presentation for clarity, structure, persuasiveness, visual readability,...

by stanestane19 installs

Audit a game, feature, live-ops system, progression loop, social feature, or monetization surface using a Self-Determination Theory-inspired motivation frame...

by stanestane19 installs