Skip to content
last verified against v0.1.38 verified 2026-11-06

Organizations

An organization is an account your colleagues share. It holds its own credit, its own provider keys, and the sessions, agents and Cruise jobs its members make in it. People join it by invitation, each with a role and a seat.

Your personal account stays as it was. Nothing of it moves into an organization, and credit never moves between your personal account and an organization, in either direction.

Create one and invite people

bash
ks organization create "Acme"
ks member invite ana@example.com --organization <org> --role admin --seat
ks invite list --organization <org>

You become the owner and take its first seat. In the console, the same steps are on the Organization page: Invite people, then each address with its role and Assign a seat now.

  • An invitation lasts 7 days. The email links to the console’s accept page, and the person can also run ks invite accept <token>.
  • Signing in with another address than the invited one does not join: an owner or admin confirms that account (ks invite confirm), or the person signs in with the invited address.
  • ks invite revoke withdraws an open invitation.

Roles

RoleWhat it can do
ownereverything below; only an owner makes or removes an owner, sets the seat limit, lowers the caps on KeepState’s key and sets the organization’s own budget
admininvite people, change roles and seats, remove members, manage teams and the organization’s keys, and read the content of members’ sessions
billingbilling details, buying credit, statements, billing contacts and budgets; no session content
auditorread the audit log, the credit, the statements, the caps and the budgets; no session content
memberwork in the organization: sessions, agents and Cruise jobs of their own

Billing and auditor members make no sessions. ks member role <account> <role> changes a role, and an organization always keeps at least one owner with a seat.

Owners and admins can read the content of a member’s session: its instructions, journal, files, logs and results. When they read it through their organization role, the read is written to the organization’s audit log with the reader and their role, and so is an owner’s or admin’s action on a member’s session, such as an approval or a pause.

Seats

A member needs an assigned seat to reach any of the organization’s work. Without one they can read the organization’s name and their own membership, set their own profile details and leave, and nothing else.

bash
ks seat assign <account> --organization <org>
ks seat release <account> --organization <org>
ks organization set <org> --seat-limit 10

Seats are counted, and an owner may limit them. A seat costs nothing: the organization pays for usage only, at the rates on the pricing page.

The context switch

The client and the console act in one context at a time: your personal account or one organization.

bash
ks context use <org>
ks context show
ks context use personal

In an organization’s context, the lists show the organization’s work you may read, and what you start there is the organization’s: its sessions, agents, Cruise jobs and drafts, paid from its credit and calling its keys. In the console, the switch is Personal / organization name in the header of every page.

Keys in an organization

An owner or admin adds the organization’s provider keys with ks key add in its context, and they are stored as the organization’s, never as the person’s. An organization’s session calls the organization’s own key, or KeepState’s key paid from the organization’s credit. A member’s own key is never used for the organization’s work.

ks key default in the organization’s context shows which key its new sessions use for each provider. Owners and admins set it.

Each change of an organization’s key is written to its audit log with the key’s id, provider and last four characters. The secret never comes back out, as for your own keys.

Billing, credit and statements

An organization pays from its own credit. Owners and billing members:

bash
ks organization billing set <org> --legal-name "Acme Widgets GmbH" --country DE --tax-id DE123456789 --tax-id-type eu_vat
ks organization buy <org>
ks organization credits <org>
ks organization statement issue <org>
  • The purchase goes through Polar’s checkout with the organization’s legal name, address and VAT id on Polar’s receipt. The bought amount is the organization’s.
  • An organization gets no signup grant. Until its first purchase it runs one session at a time, and with no credit its sessions do not start.
  • A statement freezes the billing details as they were at issue: legal name, address, VAT id and PO number, issued by KeepState, Inc., San Francisco, CA. A correction is a new statement for the same period; the first one stands as issued. ks organization statement verify checks one against the ledger.
  • Billing contacts receive the statement notices and the alerts about the organization’s credit (ks organization billing contact add).

Model calls on KeepState’s key are capped for all the organization’s members together, at the daily, monthly and calls-at-once caps the pricing page states for an account. An owner may lower each one with ks organization caps set.

Teams and budgets

Teams group members, up to 4 levels deep, and each member may have a home team. A monthly budget can be set for the organization, a team or a member.

bash
ks team create Platform --organization <org>
ks team add Platform <account> --organization <org> --lead
ks budget set --organization <org> --team Platform --monthly 500
ks organization spend <org> --by team
  • A budget counts KeepState’s charges only: session time, saved data and model use on KeepState’s key. Tokens on the organization’s own keys are shown beside it and not counted.
  • Alerts go out at 50, 80 and 100 percent unless set otherwise.
  • At a budget, running sessions are saved and paused, never killed, within about a minute, and nothing new starts on that budget. Resuming is a person’s act after the budget is raised; ks budget ask asks the people who may raise it.
  • A team lead may set budgets for the teams and members below a team they lead, and has no other extra right.

ks organization spend <org> --by day shows the spend for each UTC day of the month.

Cruise in an organization

In an organization’s context, a Cruise job or draft you start is the organization’s: it runs on the organization’s keys and is paid from its credit within its budgets. ks cruise status there lists your jobs; an owner or admin sees every job of the organization. A refusal names the command that fixes it, such as ks organization buy or ks budget ask. See Cruise.

Removing a member, and leaving

ks member remove shows the plan first and runs only when you confirm its digest. The plan names one of two choices for the member’s organization work:

ChoiceWhat happens to the member’s organization work
--content transfertheir sessions, agents, Cruise jobs and open drafts move to you, tagged transferred, and running work keeps running
--content removetheir sessions are deleted, a live Cruise job is cancelled with its record kept, and an open draft is discarded

Either way their seat is freed, and their profile details in the organization are erased 30 days later. Their personal account is not touched.

ks organization leave <org> frees your seat, and your details there are erased 30 days later. If you made sessions in the organization, an owner or admin removes you with a plan instead, so that work is moved or deleted.

The audit log

bash
ks organization audit <org>

Changes in an organization are written to its audit log, one event each: members, roles, seats, invitations, keys, billing, budgets, statements, and an owner’s or admin’s reads of a member’s session content. Events name account ids and record ids, never an email address or a name someone typed, and each event carries the digest of the one before it. Owners, admins and auditors read it; billing members read its money events.

Not built yet

  • Single sign-on (SSO) and SCIM provisioning.
  • Sharing one session or agent with chosen people: today access follows the roles above.
  • A charge per seat.
  • Deleting an organization from the client or the console.
  • Exporting the audit log as a signed archive.

Spotted an error on this page? Tell us, and we will correct it.

Report it
← previous Limits next → Sessions and the two ledgers