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 statusstatus 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 startStandings
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 startServers 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>/billingby default<server>/o/<slug>/billingwith--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/billingAll 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 |