Skip to main content

SUBSCRIPTION COMMANDS

The swamp subscription command group shows the plan and billing standing of the signed-in user and their collectives, and opens the swamp-club billing page.

Running swamp subscription with no subcommand prints group help. Both subcommands need a swamp-club.com account, like any other command — see Swamp Account Requirement — and both run outside a Swamp repository.


swamp subscription status

Show the plan and billing standing of the signed-in user and each collective they belong to.

swamp subscription status

status makes one call to swamp-club, the same one swamp auth whoami makes, and words each collective exactly as swamp auth whoami does.

Example output:

alice (alice@example.com) on https://swamp-club.com
Plan: Team
Collectives:
  alice  trial: 25 days left (ends 2026-11-20)
  acme   Team  active

To manage billing:  swamp subscription start

Standings

Each collective is listed by slug, followed by its standing:

Shown Meaning
Team, Business or Enterprise A paid plan. The billing status (for example active) follows the plan name for owners and admins only
Personal License A Personal License: free, for use outside of work. Work use needs a paid plan
Admin Admin standing, set by Swamp Club. There is nothing to bill
trial: N days left (ends YYYY-MM-DD) A free collective on a running trial. 1 day left when one day remains
covered A free collective with no running trial, allowed private extensions through another collective its owner belongs to
trial ended A free collective whose trial has ended
slug only A free collective with nothing else to say

A collective on any plan other than free shows its plan and is never shown as on a free trial. A free collective shows the first that applies: a running trial, then covered, then trial ended.

Plan line

Plan: names the strongest plan across the user's collectives, as swamp-club chooses it: Admin, then the highest paid plan, then Personal License. The line is omitted when the strongest plan is free.

Call to action

The last line points at swamp subscription start:

Strongest plan Last line
None, free, or Personal License To upgrade: swamp subscription start
Any paid plan To manage billing: swamp subscription start
Admin No call to action

Collective tokens

With a collective token in SWAMP_API_KEY or SWAMP_API_KEY_FILE, the first line names the collective instead of a user, and only that collective is listed. A collective token is not an owner or admin, so no billing status is shown:

Collective token: acme on https://swamp-club.com
Plan: Team
Collectives:
  acme  Team

To manage billing:  swamp subscription start

Servers that report no standing

When the server sends no subscription standing, status prints the identity line followed by:

This Swamp Club server does not report subscriptions.

No Plan: line, collectives or call to action follow, and the exit code is 0. This is usually an older or self-hosted swamp-club. It is also printed for a collective token whose standing the server could not read.

SWAMP_CLUB_URL

When SWAMP_CLUB_URL is set, status asks that server instead of the one stored at login.

JSON output

swamp subscription status --json
{
  "serverUrl": "https://swamp-club.com",
  "username": "alice",
  "plan": "team",
  "planName": "Team",
  "entitlementsReported": true,
  "collectives": [
    {
      "slug": "alice",
      "plan": "free",
      "planName": "Free",
      "subscriptionStatus": null,
      "trial": {
        "state": "active",
        "startedAt": "2026-10-21T15:47:22.164Z",
        "endsAt": "2026-11-20T15:47:22.164Z",
        "trigger": "signed_up",
        "dayNumber": 6,
        "daysRemaining": 25,
        "totalDays": 30,
        "extended": false
      },
      "privateExtensions": "allowed"
    },
    {
      "slug": "acme",
      "plan": "team",
      "planName": "Team",
      "subscriptionStatus": "active",
      "trial": null,
      "privateExtensions": "allowed"
    }
  ],
  "billingUrl": "https://swamp-club.com/billing"
}
Key Description
serverUrl The swamp-club server asked
username The signed-in user. Replaced by collectiveSlug for a collective token
collectiveSlug The collective a collective token belongs to. Present only for a collective token
plan The strongest plan's id, such as free, personal, team or admin. null when the server sent none
planName The strongest plan's display name. null when there is none or it is free
entitlementsReported false when the server sent no subscription standing
collectives One entry per collective, passed on as swamp-club sent it. [] when entitlementsReported is false
billingUrl The billing page swamp subscription start opens by default

Each entry in collectives has:

Key Description
slug The collective's slug
plan The collective's plan id
planName The plan's display name
subscriptionStatus The billing status, such as active. Absent when the caller is not an owner or admin; null for an owner or admin with no subscription
trial The collective's trial. null for any collective on a plan other than free, and for a free collective with no trial to show
privateExtensions Whether the registry allows the collective private extensions: allowed, trial-ended or paywalled

The user's email appears on the identity line but never in the JSON document.


swamp subscription start

Open the swamp-club billing page in a browser, to upgrade or manage billing for yourself or a collective.

swamp subscription start
Flag Description
--collective <slug> Open this collective's billing page instead of your own
--no-browser Print the URL instead of opening a browser

start makes no call to swamp-club of its own. It opens:

  • <server>/billing by default
  • <server>/o/<slug>/billing with --collective

The server is SWAMP_CLUB_URL when set, else the server stored at login, else https://swamp-club.com.

The slug is not checked on the command line; the billing page decides what the user may manage. A personal collective's page redirects to /billing. Only owners and admins can manage a collective's billing; a member is sent to the collective's page at /o/<slug>. A user signed out in the browser is asked to sign in, then returned to the billing page.

Plans are bought, changed and cancelled on the billing page, and a Personal License is taken there too; the CLI only opens it.

Output:

Case Output
Browser opened Opening <url> in your browser.
--no-browser Manage billing at <url>
No browser could be opened Could not open a browser. Open this URL to manage billing: then the URL, indented

No browser can be opened over SSH or on a headless machine, for example:

Could not open a browser. Open this URL to manage billing:
  https://swamp-club.com/billing

All three exit 0.

JSON output

swamp subscription start --collective acme --no-browser --json
{
  "url": "https://swamp-club.com/o/acme/billing",
  "opened": false,
  "collective": "acme"
}
Key Description
url The billing page
opened true when a browser opened; false for --no-browser or when none could be opened
collective The --collective slug, or null