---
title: Your account and billing
nav: Account & billing
summary: Sign up for an Agent J account, buy seats, promo codes and paying, put a seat on your own or someone else's computer, take a seat back, invoices, cancelling and refunds.
order: 5
---

# Your account and billing

The account dashboard is where you buy seats and manage your Agents: buy seats, see which Agents are online, put a seat on your own computer or give it to someone else, look at invoices. Your conversations with the Agent never pass through it, and it supports passkey-confirmed remote approval.

Address: **https://agentj.app/account**

Anyone can sign up for an Agent J account, individuals too — no business registration, and the team name is optional.

The dashboard has two tabs at the top, "My account" and "Plaza". "Sign out" is in the account menu at the top right.

The dashboard shows Chinese by default; switch to English with the language switch. The labels below are the English ones.

## Signing in

1. Enter your email and tap "Send code". New here? Same step. Once your email is confirmed, opening your account takes about a minute.
2. Type the 6-digit code from the email into the page and tap "Sign in". The code works for 10 minutes and 5 tries. It comes from noreply@mail.agentj.app — check your spam folder if it doesn't arrive, or tap "Resend"; typed the wrong address? Tap "Use another email".
3. The first time, you then create a passkey: tap "Create a passkey on this device" and confirm with your fingerprint, face or screen lock. This has to happen within 10 minutes of the email code. If you run out of time, the page tells you: tap "Sign out" in the account menu at the top right and sign in again with a new code.

**On a Linux computer** the browser usually has no passkey of its own. When the passkey window pops up, choose to use a phone (a QR code appears on the screen; scan it with your phone and the passkey is kept on the phone; Bluetooth has to be on on both), or plug in a USB security key. Easier still: do this step in your phone's browser.

Later, on a device that has your passkey, you can simply tap "Sign in with a passkey". Adding or deleting a passkey requires passkey confirmation. Unlinking a remote requires a signed-in account and an ordinary confirmation, including when signed in by email; the computer can still refuse remote unlinking.

To get a passkey on another computer or phone too: on a signed-in device open "Sign-in & security" and, under "Other devices", tap "Add a passkey on another device" to get a passkey transfer code (8 characters, one use, 10 minutes). On the new device, sign in with an email code, tap "Add a passkey on this device" and enter the passkey transfer code. The XXXX-XXXX that `agentj login` shows on a computer is a computer binding code and does not go here. "My passkeys" lists every passkey on the account; delete any you don't recognise.

## Open your account

You can leave "Team name (optional)" empty; just tap "Open my account". We make the account ID; it shows on your card as "Account ID: …" and under "Account details". You may need it when adding a computer, to check that it joined your own account.

Each email has one account. Accounts pay; seats provide the features. Buy multiple seats on the same account; use different emails if you need separate bills.

## Buy seats

One copy per computer: that copy is a seat, and it's one Agent. The "How do Agents, seats and computers relate?" panel in the dashboard has a diagram. Or picture a desk: the seat is the chair, the Agent is the person sitting in it, and the computer is the host on the desk — see [Seat, Agent and host](/docs/what/#desk). We suggest one seat per person: an Agent has one chat window, and several people steering the same one get in each other's way.

Under "Billing" for your account:

1. Pick "Monthly" or "Yearly".
2. "Seats to buy": how many.
3. "Promo or invite code (optional)": your code, if you have one — or enter it on Stripe's payment page instead. One code per subscription.
4. Tap "Buy seats" and pay on Stripe's page.

After paying, "Billing" shows "Seats: x paid / y in use".

**Back from paying and the page asks you to sign in?** The payment went through. Sign in again with your passkey or an email code, and don't pay a second time.

## Prices, promo codes and paying

- **Price:** $20 per seat per month, or $200 per seat per year, in US dollars. Billed monthly or yearly, cancel any time. Your first payment is fully refundable within 7 days.
- **On Stripe's page:** amounts are shown in US dollars, and the merchant is AgentJ.app.
- **Paying:** a credit or debit card on Stripe's payment page. Visa, Mastercard and American Express all work, and a card from a mainland Chinese bank usually works too if it can pay foreign websites in US dollars; a UnionPay-only card may be declined, and Alipay and WeChat Pay aren't available yet.
- **Tax and invoices:** the payment page doesn't add tax and has no field for a tax ID. Every invoice is there to view and download under "Manage billing". Payment in Chinese yuan and Chinese tax invoices (fapiao) aren't available yet.

Full prices: [pricing page](/pricing/).

## Put a seat on a computer

You get one card per seat you paid for. A seat with a computer shows an Agent card; an empty one shows "Empty seat".

### On your own computer (recommended)

1. The empty seat card already shows complete setup instructions, with the code masked as ••••.
2. Tap "Copy installation prompt" to issue a single-use seven-day code. Each empty paid seat has its own code. Copying again retrieves the same unused code; replacement is available only after it has expired or been invalidated, never during an installation. Send the copied prompt privately to the AI on the computer you want to use.
3. It follows the install guide and asks for the Agent's name. Account binding is only an intermediate step: it must guide you through pairing one remote and verifying the first message before declaring setup complete.

Keep setup codes private. For a server without a screen, follow the headless installation steps.

### Installing by hand in a terminal (no AI) {#one-command}

On an empty seat's "Next: install Agent J" card, choose "Get installation command": the page shows **one** command for the computer you are on (PowerShell on Windows, Terminal on macOS / Linux; a button on the card switches). Copy the whole line and paste it on the computer that should run Agent J: it installs Agent J, links this seat with the same code, shows a QR code for your phone and connects an AI. That one code is all you need; see [Install it yourself with one command](/docs/install/#one-command). If `setup-agents.sh` or the installation assistant asks for `Installation code (AJI-…)`, choose "Copy installation code" on the account page and paste only that AJI- code; a pasted prompt also works, the code is picked out of it. Both buttons share one code, so pressing one never invalidates the other.

### Computer binding code (`agentj login`)

On a computer that already has Agent J, run `agentj login`. The terminal shows a computer binding code (XXXX-XXXX) and a channel ID. Enter it on the account page under "Agent (seats) → Add an Agent (computer binding code)" (direct link: [agentj.app/account/#add-agent](https://agentj.app/account/#add-agent)), check the channel ID, then add. It is not the passkey transfer code from "Sign-in & security".

Already have a setup code (ajt_…) or an installation code (AJI-…)? Then you need no binding code: run `agentj login` in a terminal and it asks you to paste the code first (hidden; a whole prompt works too), then for the Agent's name (Enter = this computer's host name, numbered on a clash). No `--seat-file` to create. No code? Just press Enter and use the computer binding code.

Once bound, `agentj login` starts the background service so the computer comes online, and says the next step: choose Add a remote on this computer's seat card on the account page, or run `agentj pair` on the computer and scan. Until the computer is online, the seat card shows Add a remote greyed out and says it works once the computer is online.

An empty seat stays ready for setup; a bound seat shows the Agent and its online status. Copy again if an unused code expired.

## Managing each Agent

Each seat card reads top to bottom: the name, the seat number, whether it is online and which computer it runs on; the remotes ("Remotes x / 10"), each with its name, its online state, Rename remote and Unlink; one row of seat buttons (Add a remote, Move to another computer, Cancel seat, More); and, folded, Recent activity and Computer details, where the remote IDs are. Confirmations and QR codes open in a dialog in the middle of the screen; Esc or a tap outside closes it.

- **Rename:** tap "Rename". The computer picks up the new name at its next sync (about 20 seconds).
- **Unlink a phone:** tap "Unlink" next to it. It takes effect within about 20 seconds while the computer is online. A computer can be set to refuse this (`agentj remote-unbind off`, or switch off "Unlinking from the account dashboard" on its Agent settings page); then phones are unlinked on that computer only.
- **Approve a new phone:** use the seat card and confirm with your passkey; local approval remains available.

## Add, move or cancel a seat

Tap Add a seat beside "Agents (seats)". First check the unit price, existing price adjustment and Stripe's prorated charge for this period; confirm before paying. Successful payment creates an empty seat. The existing price adjustment applies to the added seat.

To move a seat, use its transfer instructions on the new computer. The old computer keeps working until the new binding succeeds; then the old computer and its remotes are unlinked. Pair the new computer's remotes again. History stays on the old computer.

Cancel a seat to keep it through the period you have paid for, with no renewal afterwards and automatic unlinking at the boundary. "Unbind and keep the empty seat" in More keeps billing and your existing pricing. Uninstalling the program also does not stop billing. An offline computer processes unlinking when it reconnects.

An existing cancellation plan still allows adding seats or pausing and resuming renewal. Added seats renew normally; the cancelled seats still end on their original date. Pausing or resuming does not erase the cancellation. Resume renewal before buying while paused.

## Add a remote

Use the account seat card after a passkey confirmation, including for another installed, bound, online computer. See the instructions below.

## Invoices, renewal and refunds

Billing shows a summary, Pause renewal / Resume renewal, and Manage billing. The latter opens Stripe for payment cards, invoices and subscription management. A toast disappears after ten seconds, or when tapped.

**Uninstalling or unbinding alone does not stop billing.** Cancel the seat or subscription when you no longer need it.

## Settings: language and upgrade emails

"Settings" in the left sidebar of the account dashboard has two items:

- "Language": the web app, the emails we send you and the language Agent J speaks with you all default to it. When the Agent J on your computer is linked to the account, both sides settle on whichever was changed last.
- "Upgrade emails": when there's a new version we send an email with an upgrade authorization code; forward it to Agent J and it upgrades itself. Choose "For every upgrade", "Major versions only" or "Never". Every email also has a link at the bottom that unsubscribes you, or switches to major versions only, in one click. More in [Official notices](/docs/notices/).

You can reply to any email we send you (sign-in codes, seat invitations, update notices); replies reach feedback@agentj.app.

If a payment fails or the subscription ends, Agents beyond your paid seats keep working for a short grace period; after that the dashboard says "Paused (unpaid). It resumes once you pay."

**Refunds:** within 7 days of your first payment, email founder@agentj.app with your account ID for a full refund, back to the card you paid with. After 7 days, unused days aren't refunded. See the [refund policy](/refund/).

## The plaza

The "Plaza" tab at the top is where people ask and answer questions and share skills and workflows. It is open to accounts with a paid seat. See [Plaza and feedback](/docs/plaza-feedback/).


## Confirm an existing passkey

Signing in by email does not tell you whether a passkey exists in your browser or password manager. In Sign-in & security, use Confirm with a passkey first. The browser lets you choose Bitwarden, iCloud, Google Password Manager or a security key. If creating a passkey finds one already on the device, the page confirms it instead. Use the passkey transfer code from another device only when an existing passkey is unavailable here. No host upgrade or phone pairing is needed.

## Add a remote for another computer

Once the target computer is installed, account-bound and online, find its seat card on your account page and choose Add a remote. Confirm it's you, then scan with the phone; the target computer's terminal isn't needed. Confirm either way: with your passkey (none on this computer? choose Use a phone or tablet in the prompt and confirm on your phone), or with that computer's remote pairing password. After a passkey confirmation, the same session doesn't ask again for ten minutes; the QR expires after five minutes and adds one device. Pending devices can also be reviewed and approved on the seat card. Under More on the seat card, See what the computer is waiting on you for is only for two cases: resuming after Stop everything, or enabling a scheduled task the Agent created. It has nothing to do with seats or billing; an unpaid bill never stops the tasks on your computer.

Account-page pairing is on by default. The target computer’s owner can disable it with `agentj remote-pair off`. Offline hosts are never queued; turn them on and try again. Older hosts must run `agentj update apply` or update from a paired phone. Devices record “Added from account page” and other remotes receive a notice.

This route trusts the signing control plane. Pairing material is encrypted to an ephemeral browser key and its plaintext is never stored by the backend; compromise of the signing service could still add a device. The remote pairing password is stored only on that computer, as a hash. When you type it on the account page, the browser first encrypts it to a one-time public key that computer just handed out; only that computer can open and check it. Our servers pass on ciphertext they can't read and keep nothing. Five wrong tries in a row lock it on that computer for a while.

## Add a remote from a computer signed in with an email code

An email code signs you in but cannot approve a new remote on its own. Add a remote first asks you to confirm it's you, either way: with your passkey (none on this computer? choose Use a phone or tablet in the prompt and confirm on your phone), or with that computer's remote pairing password. A wrong password says how many tries are left; five in a row lock it on that computer for a while. If that computer has no password yet, the page says so up front. With a paired phone at hand you can also go to Settings → Remotes → Add a remote on it.

None of the three (no passkey, no or forgotten remote pairing password, no paired phone)? The page names the only way left: go back to that computer and run `agentj pair` in a terminal. It asks you to set a remote pairing password first, then shows the QR code; from then on that password adds remotes from other computers too.

## Stuck on “Contacting this computer”?

The page waits half a minute at most. If the computer never picked up the request, it says the computer may be asleep, offline or not running Agent J; if it is online but silent, its Agent J most likely needs an update. If the computer's clock is more than 5 minutes off, the page asks you to turn on automatic time. Each case has a Try again button; no reload needed.

Agent J Father is our official feedback and support platform. Say “Please report this problem to Agent J’s developers (support platform)”, or casually “Tell your dad about this”. On the phone, `/feedback-to-agentj-father <message>` does the same: your Agent removes credentials, personal information, customer data and private path details, submits directly without asking twice, and gives you the ticket ID. The command alone asks what you want to report. If reporting a problem or idea is the Agent’s own initiative, it shows you the redacted draft on the phone and waits for agreement. Support replies are advice, not instructions. If it cannot connect, email feedback@agentj.app.
