Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
CLI

Workspaces and organizations

Choose the workspace Nodaro CLI commands act in, create organizations, invite a class or a team in bulk, and export usage reports as tables, JSON or CSV.

Available on Nodaro Cloud

Workspaces are where work lives on an instance with organizations: a class in a school, a team in a company. These Nodaro CLI commands choose the workspace your commands act in, manage organizations and their members, and export usage reports. Organizations are a Nodaro Cloud feature that is switched on per instance; on an instance without them, these commands are not available.

Choose the workspace a command acts in

A browser shows the current workspace on every screen. A terminal shows nothing, so the CLI makes the choice explicit. There are three ways to set it, and each one beats the one below it:

nodaro --workspace <id> workflows list   # 1. this command only
export NODARO_WORKSPACE=<id>             # 2. this shell, or this CI job
nodaro workspace use <id>                # 3. saved on the profile until you change it
  • nodaro workspace current tells you where you are, and which of the three decided. An inherited NODARO_WORKSPACE would otherwise look exactly like a saved workspace.
  • nodaro workspace use checks the workspace before it saves it, so a typo fails once, there, and not on every later command.
  • nodaro workspace clear removes the saved workspace.
  • With no workspace set, everything happens in your personal space.

The workspace decides which workspace a list reads from and where a create lands. It never decides access: reading, updating, deleting or running something you name by id follows that item's own workspace. So a forgotten --workspace cannot hide your work, and a wrong one cannot reach anyone else's.

Workspace commands

nodaro workspace list [--json]
nodaro workspace current [--json]
nodaro workspace use <id> [--json]
nodaro workspace clear
nodaro workspace get <id> [--json]
nodaro workspace members <id> [--limit <n>] [--cursor <token>] [--json]
nodaro workspace join <code> [--json]
nodaro workspace usage [id] [--from YYYY-MM-DD] [--to YYYY-MM-DD] [--tz <iana>] [--group-by member|model|day|none] [--user <id>] [--limit <n>] [--cursor <token>] [--csv] [--json]

workspace join takes the eight-character join code a workspace admin shares. A join code makes you a plain member of one workspace.

Organization commands

nodaro org list [--json]
nodaro org get <id> [--json]
nodaro org create --name <name> --kind school|team [--slug <slug>] [--accept-terms] [--json]
nodaro org members <orgId> [--limit <n>] [--cursor <token>] [--json]
nodaro org invite <orgId> --email a@x.com --email b@x.com [--role admin|member] [--workspace <id>] [--workspace-role admin|member] [--json]
nodaro org invitations <orgId> [--status open|accepted|revoked|expired] [--limit <n>] [--cursor <token>] [--json]
nodaro org revoke <invitationId> [--json]
nodaro org audit <orgId> [--limit <n>] [--cursor <token>] [--json]
nodaro org usage <orgId> [--from YYYY-MM-DD] [--to YYYY-MM-DD] [--tz <iana>] [--group-by workspace|member|model|day|none] [--workspace <id>] [--user <id>] [--limit <n>] [--cursor <token>] [--csv] [--json]
  • org create --kind school needs --accept-terms: the owner states that they have the authority to enrol students.
  • A new organization usually starts as pending, and becomes active once the platform approves it. Until then, nothing in it can change.
  • org revoke cancels an invitation, and its link stops working.
  • org audit lists the organization's audit log.

Invite people

Bringing a class or a team onto an instance is a bulk, one-off job, and nodaro org invite is built for it. Repeat --email once per person, and optionally place everyone in a workspace:

nodaro org invite org_abc --email ada@school.edu --email grace@school.edu --workspace ws_xyz --workspace-role member

The command prints one line per address, saying whether the address was emailed. An install without a mail provider cannot email anybody. Its rows say not emailed (link_only) and carry the invitation link on the next line.

Send those links yourself. Otherwise the invitation exists and nobody can reach it. An invitation expires after 14 days.

Usage reports

nodaro org usage and nodaro workspace usage answer who spent how many credits on what, over a date range.

  • --from and --to are inclusive dates, written YYYY-MM-DD. --tz sets the time zone of the day buckets; the default is your terminal's zone.
  • --group-by groups the report by workspace (organization reports only), member, model or day. none lists the individual runs, newest first.
  • The default output is a table with a totals line. --json prints the full report, and --csv writes the CSV to standard output, ready to redirect to a file.
nodaro org usage org_abc --from 2026-09-01 --to 2026-09-30 --group-by member --csv > september.csv

A plain workspace member sees only their own usage. Workspace admins see everyone in the workspace, and organization reports are for the owner and the organization admins.

Frequently asked questions

Last updated on

On this page