> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rebind.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Publishing Scripts

> The author workflow: scaffold a package, check and preview the listing, publish for review, then manage versions and visibility.

Publishing turns a package into a marketplace listing. This page is the
workflow. The manifest, listing fields, and limits are in
[Package format](/reference/packages#the-marketplace-listing); each command is
in the [CLI reference](/reference/cli).

## Before you start

* A Developer account with a claimed `@handle`. The listing's identity is
  `@handle/<name>`.
* An activated [Rebind Link](/concepts/rebind-link) on that account.
  Publishing is refused without one.
* The Rebind app running and signed in. `rebind publish` uploads through the
  app's session.

## Workflow

1. `rebind new <name>` scaffolds a package with a commented-out `[marketplace]`
   block. Fill in `summary`, `category`, and `media`, and add
   `[marketplace.price]` for a paid listing.
2. `rebind check` validates the package offline, the listing block included.
3. `rebind preview` opens a local HTML approximation of the listing. No sign-in
   needed.
4. `rebind publish` runs check and lint, builds the package (or bundles a DRM
   listing into one sealed file), uploads the media, and submits the version for
   review.

## Review

Every publish creates a version that waits for review. A listing is invisible
to buyers until its first version is approved, and one version per listing can
be in review at a time; publishing again before the decision is refused.

The **Listings** tab on your profile in the app shows each listing with its
status. The outcome also arrives by email:

* **Approved.** The version goes live. Buyers who already installed it see an
  update.
* **Rejected.** The reviewer's note is in the email, in the Listings tab, and
  in `rebind listings`. Fix it and publish again; the refused version string
  can be reused. A rejected version never touches what buyers already have.

## Republishing

A live listing is never edited in place. Publishing again stages everything the
new version proposes, the code and every listing field including the price, and
it goes live only when that version is approved. The version string must be one
you have not published before.

A price change reaches new buyers only; the rule for existing subscribers is in
[Package format](/reference/packages#the-marketplace-listing). Other changes
land like this once the version is approved:

* **Free to paid.** Everyone who took the script while it was free keeps it.
* **Dropping the subscription.** Making a listing free, or lifetime only, ends
  every subscription to it. Subscribers are told, keep access to the end of
  the period they paid for, and are not charged again.
* **Renaming.** `name`, summary, media, and README change with the version.
  The listing's `slug` never changes.
* **Turning DRM on or off.** Buyers who already installed keep the file they
  have. Their next update installs the new form beside it until the relay
  tracks installs by listing.

While a version waits for review you can withdraw it, from the **Listings**
tab in the app or with `rebind withdraw`. The live version is untouched and the
same version string can be published again. Withdrawing a first submission
removes the listing entirely; the name is free to use again.

## Unlisting

Use **Make private** on the **Listings** tab in the app or `rebind unlist`.
The flag applies immediately and skips review. What a private listing is and
is not is in the [field table](/reference/packages#the-marketplace-listing).
Existing buyers keep their access and updates. **Make public** or
`rebind relist` reverses it. A `private` key stated in `rebind.toml` wins at
every publish; leave it out to manage the flag with these commands.

Share a private listing with **Copy link** on its page in the app. The link
opens the listing in the recipient's Rebind.

## Earnings

Your share of each sale is credited to your wallet the moment the sale
settles, and shows in the wallet's activity as a sale. The default split gives
the author 70 percent of each order; it applies while your Developer tier is
active, and Rebind may set a different rate for an account. A refund takes the
share back.

Earned credits can be spent in the marketplace like any other credits. Every
30 days Rebind pays out what you have earned and still hold, when it comes to
\$50 or more, to the payout email on the **Listings** tab (or
`rebind payout-email`). Each payout shows in the wallet's activity, and
`rebind earnings` lists sales and your share per listing. Every sale lands in
your notifications.
