Visitar URL original
Paradev CLI Reference | Paradev Docs

CLI

Paradev CLI Reference

Complete reference for Paradev command-line interface, including commands and flags.

Synopsis

superset <command> [subcommand] [options]

Run superset --help for the top-level command list, or superset <command> --help for any group.

Choosing a host

Commands with --host <id> and --local options target a host. --local is this machine. For workspace, agent, and terminal commands, --host <id> takes a host machineId or cloud. With neither option, they target the cloud if your account has cloud workspaces, otherwise this machine. If the cloud check fails, they target this machine. Remote hosts go through the relay. snapshot, panes, browser, and notifications default to this machine. Each cloud workspace runs its own host, so commands about one host, such as projects list and agents list, take a machineId rather than cloud; snapshot --host cloud needs --workspace.

Global options

These flags are accepted by every command:

FlagEnvDescription
--jsonPrint the data payload as formatted JSON.
--quietOne ID per line for arrays; the ID for single objects; JSON fallback otherwise.
--api-key <key>SUPERSET_API_KEYUse an API key instead of stored OAuth login.
--help, -hShow help for the current command.
--version, -vPrint the version number and exit.

Commands

scripts

Reusable terminal launches. These are called terminal scripts in the app; setup, run, and teardown entries in .paradev/config.json (or an existing .superset/config.json) are project lifecycle scripts. The legacy presets command name remains an alias.

superset scripts add

Add a terminal script to the desktop app on this machine. The desktop app must have been launched once so its local database exists, and the CLI must have an active organization so the script is imported into the correct v2 profile. Pass --upsert when iterating so each revision replaces the last.

superset scripts add --name dev --command "bun run dev"
superset presets add --name services \
  --command "docker compose up" --command "bun run dev" \
  --execution-mode split-pane
superset scripts add --name "Open in GitHub" --command "gh pr view --web" --upsert

Returns

The created terminal script, including its generated ID.

Options

FlagDescription
--name <name>requiredDisplay name.
--command <command...>requiredShell command. Repeat to launch multiple commands.
--description <text>Optional description.
--cwd <path>Workspace-relative working directory.
--project <uuid...>Limit availability to one or more projects.
--execution-mode <mode>new-tab, split-pane, new-tab-split-pane, or sequential.
--hiddenDo not show the script in the Scripts bar.
--workspace-runUse the script for the matching project's Run action.
--upsertReplace the script with this name instead of adding a duplicate. Fails if the name is already duplicated.

superset scripts list

List the terminal scripts on this machine with the id each other command takes. status is importing or deleting while a change is waiting for the desktop app to open or refocus with the same organization active. Scripts created in the desktop app's Settings are stored in the app profile only and do not appear here.

superset scripts list
superset scripts list --json

superset scripts edit <id>

Change fields on an existing script. Unspecified fields keep their values, and the desktop app updates its copy in place, so the script keeps its position in the Scripts bar. Edits made in the desktop app's Settings do not flow back to the CLI: an edit here replaces the app's copy with what superset scripts list shows plus your changes.

superset scripts edit <id> --command "gh pr view --web"
superset scripts edit <id> --name "Open PR" --hidden
superset scripts edit <id> --all-projects --no-hidden

Arguments

NameDescription
<id>requiredScript ID from `superset scripts list`.

Options

FlagDescription
--name <name>New display name.
--command <command...>Replace the commands. Repeat to launch multiple commands.
--description <text>New description. Pass an empty string to clear it.
--cwd <path>Workspace-relative working directory.
--project <uuid...>Replace the project list. Mutually exclusive with --all-projects.
--all-projectsMake the script available in every project.
--execution-mode <mode>new-tab, split-pane, new-tab-split-pane, or sequential.
--hidden / --no-hiddenHide the script from the Scripts bar, or show it again.
--workspace-run / --no-workspace-runUse the script as the project's Run action, or stop.

superset scripts delete <id>

Delete a script. The desktop app removes its copy the next time it opens or refocuses with the same organization active (immediately when it is running); until then the script lists with status deleting.

superset scripts delete <id>

Arguments

NameDescription
<id>requiredScript ID from `superset scripts list`.

auth

Authentication and session inspection.

superset auth login

Authenticate via browser OAuth and store a session token at ~/.paradev/config.json.

Single-org accounts are selected automatically. With multiple orgs, the CLI prompts on a TTY. Without a TTY, pass --organization or the command exits 1 and lists the available slugs.

superset auth login
superset auth login --organization acme

To sign in with an API key (for CI or any place without a browser), pass --api-key. The CLI validates the key, stores it at ~/.paradev/config.json, and clears any prior OAuth session.

superset auth login --api-key sk_live_…
superset auth login --api-key sk_live_… --organization acme

Returns

The newly authenticated user and active organization.

◇  Authorized!
│  Satya Patel (you@example.com)
│  Organization: Acme
└  Logged in successfully.

--json

{
  userId: string;
  organizationId: string;
  organizationName: string;
}

Options

FlagDescription
--organization <idOrSlug>Selects the active organization without prompting. Required for non-TTY logins when you belong to multiple orgs.
--api-key <key>Store a Paradev API key (`sk_live_…`) at `~/.paradev/config.json` instead of running the OAuth flow.

superset auth logout

Clear stored credentials: both an OAuth session and a stored API key. Does not call the API and does not clear the active organization (your preferred org persists across re-logins).

superset auth logout

Returns

A confirmation message.

Logged out.

--json

{ message: "Logged out." }

superset auth whoami

Show the current user, active organization, and auth source.

superset auth whoami

Returns

The current user and organization context.

Signed in as Satya Patel (you@example.com)
Organization: Acme
Auth: Session (expires in 32 min)

--json

{
  userId: string;
  email: string;
  name: string;
  organizationId: string;
  organizationName: string;
  authSource: "override" | "config" | "oauth";
}

start

Start the local host server: the daemon the CLI and desktop app both talk to when targeting this machine.

superset start

If a manifest exists and the PID is alive, returns the existing instance's { pid, endpoint }. Otherwise spawns the host server binary, polls /trpc/health.check for up to 10 seconds, and writes the manifest. Binds to 127.0.0.1 only.

superset start --daemon

Returns

The running host server.

--json

// Freshly started
{
  pid: number;
  port: number;
  organizationId: string;
}

// Already running
{
  pid: number;
  endpoint: string;
}

Options

FlagDescription
--daemonRun detached.
--auto-updateCheck hourly for a newer release, install it, and restart the host. Requires --daemon. Off by default.
--port <n>Specific port. Default: a free loopback port.
--org <id>Organization to register under. Default: the active organization.

stop

Stop the local host server.

superset stop

Sends SIGTERM, waits up to 10 seconds, sends SIGKILL if still alive, then removes the manifest. If sending SIGTERM itself throws, the command errors and the manifest is left in place.

The terminal daemon keeps running after the host server stops, so the next superset start picks up the same terminals. With --terminals, the command stops the host server first, then the terminal daemon. It signals only the pid the daemon reports over its socket, never the pid in its manifest, which can be stale. If the socket is missing or refuses the connection, the manifest is removed without a signal. If the socket accepts the connection but the daemon does not answer, the command errors after it stops the host server and leaves the daemon and its manifest in place.

superset stop
superset stop --terminals

Returns

The processes the command stopped, if any were running.

--json

// Nothing running
{ running: false }

// Something stopped
{
  pid: number | null;               // host server; null if none was running
  terminalDaemonPids: number[];     // empty without --terminals or if none was running
  organizationId: string;
}

Options

FlagDescription
--terminalsAlso stop the terminal daemon. This ends every terminal and agent on the machine for the organization.

status

Inspect the local host server.

superset status

healthy reflects a live health.check request (2-second timeout).

superset status

Returns

The host server state. Three shapes depending on what's running.

--json

// No manifest
{ running: false; organizationId: string; hostId: string }

// Manifest exists but PID is dead
{
  running: false;
  stale: true;
  pid: number;
  organizationId: string;
  hostId: string;
}

// Running
{
  running: true;
  healthy: boolean;
  pid: number;
  port: number;
  endpoint: string;
  organizationId: string;
  hostId: string;
  hostName: string;
  uptimeSec: number;
}

Options

FlagDescription
--org <id>Organization to inspect. Default: the active organization.

update

Update the Paradev CLI and host server binary.

superset update

Downloads the matching superset-<platform>.tar.gz from GitHub Releases and replaces the install root. Only available in built binaries; it errors under bun run dev.

superset update                     # upgrade to the latest release
superset update --check             # show current → target without installing
superset update --version 0.1.2     # install a specific version (up or down)

Returns

The current and target version, plus whether anything changed.

Updated 0.1.4 → 0.1.5 (/Users/you/.local/share/superset)

--json

// --check
{
  current: string;
  target: string;
  upToDate: boolean;
  pinned: boolean;
}

// install
{
  current: string;
  target: string;
  updated: boolean;
  installRoot?: string;
}

Options

FlagDescription
--checkOnly check for updates; don't install.
--forceRe-install even if already on that version.
--version <version>Install a specific version (e.g. `0.1.2`) instead of the rolling latest. Accepts upgrade or downgrade.

organization (alias: org)

Manage which organization the CLI targets.

superset organization list

List organizations available to the current auth context. Marks the active one.

Human mode: table with NAME, SLUG, ACTIVE.

--quiet: organization IDs.

superset organization switch <idOrSlug>

Set the active organization in ~/.paradev/config.json.

superset organization switch acme
superset org switch org_…

Arguments

NameDescription
<idOrSlug>requiredOrganization ID or slug.

superset organization members list

List members in the active organization.

superset organization members list
superset org members list -s satya

Options

FlagDescription
--search <query>, -sSearch by name or email.
--limit <n>Default 50.

Human mode: table with NAME, EMAIL, ROLE, ID.

--quiet: member IDs.


projects

A project is a repository checked out on a host. Projects are host-owned: each host serves the projects set up on that machine; there is no org-wide listing. Workspaces branch off a host's checkout.

superset projects list

List projects on a host. Defaults to this machine; pass --host <id> for another host.

Options

FlagDescription
--host <id>List projects on a specific host machineId.
--localList projects on this machine (the default).

Human mode: table with NAME, REPO, PATH, ID.

--quiet: project IDs.

superset projects create

Create a project on a host. Two modes:

  • Clone: pass --clone <url> and --parent-dir. The host clones the repo into <parent-dir>/<derived-name>/.
  • Import: pass --import <path> to register a repo that already exists on disk.

Either way, the project has no workspaces yet. Create one with superset ws create --project <id> --name local --checkout local --local (the repo's checkout as it is) or --branch <name> (its own worktree).

create always creates a new cloud project, even if your org already has one for the same Git URL. Use projects setup when adopting an existing project on a fresh machine.

superset projects create --name "my-app" --local --clone https://github.com/org/my-app.git --parent-dir ~/code
superset projects create --name "my-app" --local --import ~/code/my-app

Options

FlagDescription
--name <name>requiredDisplay name for the project.
--host <id>Target host machineId. Mutually exclusive with `--local`; one is required.
--localTarget this machine. Mutually exclusive with `--host`; one is required.
--clone <url>Clone from a Git URL. Mutually exclusive with `--import`.
--parent-dir <path>Parent directory the cloned repo lands in. Required with `--clone`.
--import <path>Existing repo path on the target host. Mutually exclusive with `--clone`.

superset projects setup <id>

Adopt an existing project onto a host without creating a duplicate cloud record. Use it instead of create on a new machine when the repo is already in the org. Find the project ID with projects list (add --host <id> for the host that already has the project). Re-running against a project already set up at the same path is a no-op.

# Pick an ID from `superset projects list`, then clone it onto this machine
superset projects setup 47c31b04-… --local --parent-dir ~/code

# Or register an existing local checkout
superset projects setup 47c31b04-… --local --import ~/code/my-app

Arguments

NameDescription
<id>requiredProject UUID to adopt.

Options

FlagDescription
--host <id>Target host machineId. Mutually exclusive with `--local`; one is required.
--localTarget this machine. Mutually exclusive with `--host`; one is required.
--project <id>Project UUID to adopt. Alias for the positional argument.
--parent-dir <path>Parent directory to clone the project's repo into (clone mode).
--import <path>Existing repo path on the target host (import mode).
--path <path>Alias for `--import`.
--allow-relocatePermit re-importing at a different path if the project is already set up here. `--import`/`--path` only.

hosts

Discover hosts registered to the active organization. To control the host server running on this machine, use start, stop, and status.

superset hosts list

List hosts registered to the active organization. A machine registers itself when superset start runs on it, or when you set it up over SSH with hosts add.

superset hosts list

Options

FlagDescription
--org <id>Organization to list. Default: the active organization.

Human mode: table with NAME, ONLINE, ID.

--quiet: host IDs.

superset hosts add <target>

Set up a machine you can SSH into as a host, with nothing typed on it: installs this CLI's version there, signs it in with a new API key sent over ssh stdin, runs it as a user service, and waits for it to come online. Running it again on the same target repairs only what is wrong.

The remote must be macOS or glibc Linux on x64 or arm64 (not Alpine or Windows) and have curl. On Linux it also needs a valid /etc/machine-id, and lingering (loginctl enable-linger) to keep running after you log out. Install and sign in gh there to clone private repos.

superset hosts add me@build-box
superset hosts add build-box --name "Build box" --yes

Arguments

NameDescription
<target>requiredSSH destination, as you would pass it to ssh (`user@box` or a Host alias).

Options

FlagDescription
--name <name>Name for the host. Default: its hostname.
--no-serviceRun the host as a plain background process instead of a systemd user service or LaunchAgent. It does not survive a reboot.
--yesInstall and enable without asking.
--org <id>Organization (id, slug, or name). Default: the active organization.

superset hosts remove <target>

Undo hosts add: stop the host over SSH and remove its service. If it finds the API key hosts add created, it revokes it and signs the host out; otherwise it leaves the host's sign-in alone. The CLI stays installed, and the host stays listed (offline) until you delete it in Settings → Hosts.

superset hosts remove me@build-box

Arguments

NameDescription
<target>requiredSSH destination the host was added with.

Options

FlagDescription
--yesSkip the confirmation prompt.
--org <id>Organization the host was added to. Default: the active organization.

superset hosts set-wake <host> <command...>

Set (or clear) the command used to wake a host.

superset hosts set-wake my-sandbox vercel sandbox resume my-box
superset hosts set-wake my-sandbox --clear

Arguments

NameDescription
<host>requiredHost name or id.
[command...]Command to run locally to wake the host, e.g. `vercel sandbox resume my-box`.

Options

FlagDescription
--clearRemove the wake command.
--org <id>Organization (id, slug, or name). Default: the active organization.

superset hosts wake <host>

Wake a host by running its configured wake command locally, streaming its output.

superset hosts wake my-sandbox

Arguments

NameDescription
<host>requiredHost name or id.

Options

FlagDescription
--yesSkip the confirmation prompt.
--org <id>Organization (id, slug, or name). Default: the active organization.

workspaces (alias: ws)

Workspaces use a shared project checkout, a separate worktree and branch, or a project-less session folder on a host.

Routing: when --host resolves to the local machine, the CLI calls the host server directly over loopback HTTP, with no cloud roundtrip, and works offline. Otherwise it routes through the cloud API and the relay. If the host is the local machine but the host server does not respond, the CLI errors and points you at superset start.

superset workspaces list

List workspaces. Host workspaces are host-owned; there is no org-wide listing (the desktop app is the cross-host view). projectName falls back to the raw project id when the host does not know the project's name.

Options

FlagDescription
--host <id>List workspaces on a specific host machineId, or `cloud`.
--localList workspaces on this machine (the default).
--project <nameOrId>Filter by project name (case-insensitive) or id.
--search <text>Substring match against workspace name or branch. Alias: -s.
--tag <tag>Filter to workspaces carrying this tag (case-insensitive).

Human mode: table with NAME, BRANCH, PROJECT, TAGS, ID.

--quiet: workspace IDs.

superset workspaces create

Create a workspace on the target host. With --project, specify one of --checkout local, --branch, --pr, or --task (--branch and --pr are mutually exclusive). If you pass --agent, you must also pass --prompt. --command runs a one-off shell command in the workspace directory and is independent of --agent/--prompt. Pass either or both. --model and --effort require --agent; see the agent effort levels below.

--checkout local shares the project's existing files, git index, and checked-out branch. It does not switch branches or run setup. Do not combine it with --branch, --pr, --base-branch, or --skip-branch-prefix. Older hosts reject it without creating a worktree. --local selects this machine and is independent of --checkout local.

Pass --session explicitly to create a session: a project-less workspace backed by a managed folder under ~/.paradev/sessions, initialized as its own git repo. Sessions have no branch semantics, so --branch, --pr, --task, --base-branch, --checkout, --skip-branch-prefix, and --tag are rejected, --name is optional, and the output has no alreadyExists field. Host workspace creation requires either --project <id> or --session; omitting both is an error.

Without --host or --local, the command creates a cloud workspace if your account has cloud workspaces. A cloud workspace takes no project: it starts from an environment, and Paradev creates a new working branch from --base-branch (default: the repository's default branch). --project, --session, --checkout, --branch, --pr, --task, --skip-branch-prefix, and --command are rejected for a cloud workspace. --attachment needs --agent: the files go to the agent through Paradev's storage, up to 200 MB each and 10 at a time. The command returns while the workspace is still provisioning.

superset workspaces create \
  --project prj_… \
  --name "fix-login-bug" \
  --branch fix/login-bug \
  --local

superset workspaces create \
  --project prj_… \
  --name "review-pr-123" \
  --pr 123 \
  --local

# Project-less session with an agent
superset workspaces create --session --local --agent claude --prompt "…"

# Tags group the workspace into sidebar folders
superset workspaces create --project prj_… --name "perf-spike" --branch perf/spike --local --tag perf

Options

FlagDescription
--project <projectId>Project ID, for a workspace on a host. Required with `--local` or `--host` unless `--session` is set.
--sessionCreate a project-less session (a managed scratch folder) on a host. Mutually exclusive with `--project`.
--name <name>Workspace name. Required when `--project` is set; optional for sessions.
--checkout <local|worktree>Use the shared project checkout or a separate worktree (default). Requires `--project`.
--branch <branch>Workspace branch. On a host, required unless `--pr`, `--task`, or `--checkout local` is set. Not accepted for a cloud workspace, which always works on a new branch of its own; use `--base-branch`.
--pr <number>Pull request number. Checks out the verified PR head.
--task <id>Task ID to link. When `--branch` is omitted, the task's provider branch name (e.g. Linear's) is used verbatim.
--base-branch <branch>On a host, the branch to fork from when `--branch` does not exist (default: the project default branch). For a cloud workspace, the branch its new branch is cut from (default: the repository's default branch).
--skip-branch-prefixUse `--branch` exactly as given instead of namespacing it under the project branch prefix.
--host <id>Target host machineId, or `cloud`. Mutually exclusive with `--local`. Without either, creates in the cloud if your account has cloud workspaces, else on this machine.
--localTarget this machine. Mutually exclusive with `--host`.
--environment <id>Environment a cloud workspace starts from. Required when more than one environment has repositories; run without it to list their IDs.
--machine-size <size>Machine size of a cloud workspace: `small`, `medium` (default), `large`, or `xlarge` and `2xlarge` where your organization has them. See [machine sizes](/cloud-workspaces#machine-sizes).
--agent <preset|uuid|superset>Agent to spawn after creation.
--prompt <text>Initial prompt. Required when `--agent` is set.
--model <id>Model for the spawned agent. Supported values depend on the agent; omit to use its default.
--effort <level>Reasoning effort for the spawned agent. Omit to use the agent default.
--command <cmd>Shell command to run in the new workspace after creation.
--attachment <path>Local file to upload for the spawned agent. Repeatable. Up to 25 MB a file on a host, 200 MB in the cloud.
--tag <tag>Workspace tag. Repeatable. Each tag groups the workspace into a sidebar folder of the same name.

superset workspaces archive <id...>

Archive one or more workspaces. Without --host or --local, this targets cloud workspaces if your account has them, else this machine. The old name delete remains an alias.

  • Cloud workspace: the sandbox stops within a minute and is deleted after 7 days. A restore within those 7 days keeps its disk; after that, the workspace starts again from a fresh sandbox.
  • Worktree workspace on a host: its folder is removed, with any uncommitted changes. Its branch stays, so a restore brings back only committed work. A workspace that shares the project's own checkout keeps that folder.

deleted lists the archived IDs; the field keeps its old name so existing scripts still work. Each ID is reported on its own: unknown IDs land in notFound, errors land in failed with a reason, and the rest of the batch still runs. The command exits non-zero if either list is not empty.

superset workspaces archive ws_a ws_b ws_c

Arguments

NameDescription
<id...>requiredWorkspace IDs to archive.

Options

FlagDescription
--host <id>Host the workspaces live on, or `cloud`.
--localTarget this machine.

superset workspaces sleep [id]

Put a cloud workspace to sleep. Its sandbox stops, every terminal and agent in it ends, and it costs storage only. Files are kept, and opening the workspace wakes it. An agent can run this as its last step, inside its own workspace.

superset workspaces sleep ws_a

Arguments

NameDescription
[id]Cloud workspace ID. Defaults to the cloud workspace the command runs in.

The commands below act on a cloud workspace through the API, so they work while its sandbox is asleep. Run inside a cloud workspace, [id] defaults to it. restart always takes an id: restarting the workspace you run in ends your own process.

superset workspaces unarchive <id>

Restore an archived cloud workspace. Alias: restore. Within 7 days of archiving it keeps its disk; after that it starts fresh from its environment.

Arguments

NameDescription
<id>requiredCloud workspace ID.

superset workspaces restart <id>

End every terminal and agent on a cloud workspace, so they start again with the current agent sign-ins.

Arguments

NameDescription
<id>requiredCloud workspace ID.

superset workspaces activity [id]

Show a cloud workspace's timeline, oldest first: renames, task links, labels, visibility, sharing, and pull requests. --json keeps every field.

Arguments

NameDescription
[id]Cloud workspace ID.

superset workspaces pull-requests [id]

List a cloud workspace's pull requests: those linked to it, and those on its branch. Alias: prs. Outside a cloud workspace and without an id, it lists every cloud workspace's; --archived does too unless an id is given.

Arguments

NameDescription
[id]Cloud workspace ID.

Options

FlagDescription
--allEvery cloud workspace you can see.
--archivedArchived cloud workspaces instead.

superset workspaces share list [id]

Show a cloud workspace's owner, visibility, and who it is shared with.

Arguments

NameDescription
[id]Cloud workspace ID.

superset workspaces share add [id]

Share a cloud workspace with members or teams; pass at least one --user or --team. superset workspaces share remove takes the same options and stops sharing. Only the workspace's creator can change who it is shared with.

superset workspaces share add ws_a --user ann@example.com
superset workspaces share remove ws_a --user ann@example.com

Arguments

NameDescription
[id]Cloud workspace ID.

Options

FlagDescription
--user <email|id>Organization member. Repeatable.
--team <id>Team. Repeatable.

superset workspaces get [id]

Show details for a single workspace on its host. --field is handy in scripts: superset workspaces get --field worktreePath.

superset workspaces get ws_…
superset workspaces get --field branch   # inside a workspace

Arguments

NameDescription
[id]Workspace ID. Defaults to `$SUPERSET_WORKSPACE_ID` when run inside a workspace.

Options

FlagDescription
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--field <name>Print a single field's raw value (e.g. name, branch, worktreePath). Alias: -f.

superset workspaces update <id>

Update a workspace (default: the cloud if your account has cloud workspaces, else this machine). --tag replaces the whole tag set: tagging is how workspaces group into sidebar folders, so retagging moves the workspace between folders.

On a cloud workspace every field is saved by the API, so it works while the sandbox is asleep. There, --task-id also takes a task slug and adds a link (a cloud workspace can link several tasks), and --clear-task removes them all.

--machine-size is the one field that reaches the sandbox. A running sandbox restarts at the new size: files and uncommitted changes stay, but every terminal and agent on it ends, and agents resume when you open the workspace. A sleeping sandbox starts at the new size the next time it wakes.

superset workspaces update ws_… --name "better-name"
superset workspaces update ws_… --task-id tsk_…
superset workspaces update ws_… --tag perf --tag infra
superset workspaces update ws_… --clear-task
superset workspaces update ws_… --add-label bug --visibility org
superset workspaces update ws_… --machine-size xlarge

Arguments

NameDescription
<id>requiredWorkspace UUID.

Options

FlagDescription
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--name <name>New workspace name.
--task-id <id>Link the workspace to a task by id.
--clear-taskUnlink the workspace from its current task. Mutually exclusive with --task-id.
--tag <tag>Replace the workspace's tag set. Repeatable. Each tag groups the workspace into a sidebar folder of the same name.
--clear-tagsRemove every tag. Mutually exclusive with --tag.
--visibility <just_me|org>Who sees a cloud workspace. Only its creator can change it.
--add-label <name>Add a label to a cloud workspace, creating it when new. Repeatable.
--remove-label <name>Remove a label from a cloud workspace. Repeatable.
--machine-size <size>Resize a cloud workspace: `small`, `medium`, `large`, or `xlarge` and `2xlarge` where your plan includes them. A running sandbox restarts at the new size.

superset workspaces open <id>

Open a workspace in the Paradev desktop app.

url is the superset:// deep link. webUrl is an HTTPS link that opens the same workspace in the desktop app. Use it where only HTTP(S) links are accepted, such as Linear or Slack. workspaces list, get, and create return both fields too. --print prints url; to print the HTTPS link, run superset workspaces get <id> --field webUrl.

superset workspaces open ws_…
superset workspaces open ws_… --print

Arguments

NameDescription
<id>requiredWorkspace ID.

Options

FlagDescription
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--printPrint the deep link instead of opening the desktop app.

Opening a specific session

workspaces open targets a workspace, not a session. Terminal sessions started with agents create get panes automatically while their workspace is open. Opening the workspace later also creates panes for running terminal sessions that are not attached yet, without moving focus. To focus a specific session, use a session deep link. The same deep link creates or focuses the pane for a Paradev chat session. Choose the query param from the session kind returned by agents create:

kindExample agentsQuery param
chatsuperset?chatSessionId=<sessionId>
terminalclaude, codex?terminalId=<sessionId>
# Run the agent with --json, then pull kind + sessionId out of the payload:
session=$(superset agents create --workspace ws_… --agent claude --prompt "…" --json)
kind=$(echo "$session" | jq -r '.kind')           # "chat" or "terminal"
sessionId=$(echo "$session" | jq -r '.sessionId')

# Open the session using the query param that matches its kind:
# chat session (kind: "chat")
open "superset://v2-workspace/<workspaceId>?chatSessionId=$sessionId"

# terminal session (kind: "terminal")
open "superset://v2-workspace/<workspaceId>?terminalId=$sessionId"

Append &focusRequestId=<unique> to force a re-focus when opening the same link more than once. The session must belong to the workspace in the URL. On Linux/Windows substitute your platform's URL opener (xdg-open, start) for open.


worktrees

Git worktrees that already exist on a host, and the workspaces that track them. This is the CLI form of Import untracked worktrees in the desktop app. Both commands target this machine unless --host names another.

superset worktrees list

List the project's git worktrees that have a branch checked out. isMain marks the project's own checkout. workspaceId is the workspace that tracks the worktree, or null when none does yet. Older hosts report only hasWorkspace, so workspaceId is null there even for a tracked worktree.

superset worktrees list --project prj_…

Options

FlagDescription
--project <projectId>Project ID. Required.
--host <id>Host the project is on (machineId). Mutually exclusive with `--local`.
--localThis machine (the default).

superset worktrees open

Open one existing worktree as a workspace. The worktree keeps its folder, branch, and files. If a workspace already tracks it, the command returns that workspace with alreadyExists: true and changes nothing, so it is safe to re-run. The project's main checkout is not a worktree; use superset workspaces create --checkout local for it.

To open every untracked worktree, for example after a machine registers as a new host, pass --all (run superset projects setup for the project there first). It returns { opened, alreadyExisted, failed }. If a worktree fails, the others still open, and the command exits non-zero with the same object as its --json output. superset worktrees list shows what --all will open: the rows with isMain: false and hasWorkspace: false.

superset worktrees open --project prj_… --branch fix/login-bug
superset worktrees open --project prj_… --all

Options

FlagDescription
--project <projectId>Project ID. Required.
--path <dir>Worktree path. Specify exactly one of `--path`, `--branch` or `--all`. Must be absolute on another host.
--branch <name>Branch checked out in the worktree.
--allEvery worktree that is not the main checkout and has no workspace.
--host <id>Host the project is on (machineId). Mutually exclusive with `--local`.
--localThis machine (the default).
--run-setupRun the project's setup script in a newly opened workspace. Off by default.

ports

Which ports of a cloud workspace people forwarded to their own machines. A person forwards a port from Share → Ports in the desktop app. Both commands are read-only. Outside a cloud workspace, pass --workspace.

superset ports list

List the forwarded ports, with each person's local address and when they forwarded it.

superset ports list

Options

FlagDescription
--workspace <id>Cloud workspace ID. Defaults to the workspace this terminal is in.

superset ports port

Print where one port is forwarded, one local address per person. Exits non-zero when nobody forwarded it.

superset ports port 5173

Options

FlagDescription
<port>requiredPort inside the workspace.
--workspace <id>Cloud workspace ID. Defaults to the workspace this terminal is in.

environments

An environment is what a cloud workspace starts from: its repositories, its variables, and a snapshot of a box that is already set up. Creating one needs a plan that includes environments. To set one up end to end, ask an agent to use the superset:environment skill.

superset environments list

List the environments a cloud workspace can start from.

superset environments repos

List the repositories the organization's GitHub App can see. These are what --repo accepts.

superset environments create

Create an environment for cloud workspaces to start from.

Options

FlagDescription
--name <name>Environment name. Required.
--repo <owner/name>Repository it checks out. Required; repeatable.
--primary-repo <owner/name>Repository a workspace opens on and whose Paradev config runs. Default: the first `--repo`.
--scope <personal|organization>Who can use it. Default: `organization`.
--region <region>Where its workspaces run, e.g. `iad1` or `fra1`. Default: the region nearest you.

superset environments update <environment>

Rename an environment or change who can use it.

Options

FlagDescription
--name <name>New name.
--scope <personal|organization>Who can use it.

superset environments save

Save a ready cloud workspace as a new environment that new workspaces fork from. Restarts the workspace.

Options

FlagDescription
--workspace <id>Cloud workspace ID. Required.
--name <name>Name for the new environment. Required.
--scope <personal|organization>Who can use it. Default: the same as the workspace's environment.

superset environments replace <environment>

Replace an environment's snapshot with a ready cloud workspace, keeping its name and variables. Restarts the workspace.

Options

FlagDescription
--workspace <id>Cloud workspace ID. Required.
--scope <personal|organization>Also change who can use it.
--yesReplace without asking. Required without a terminal.

superset environments archive <environment>

Archive an environment. Its snapshot is deleted and no new workspace can start from it.

Options

FlagDescription
--yesArchive without asking. Required without a terminal.

superset environments secrets set [name]

Set a variable on an environment. secrets list shows the names, never the values, and secrets delete <name> removes one.

Options

FlagDescription
--environment <id>Environment ID. Required when the organization has several.
--body <value>The value. Read from stdin when omitted.
--env-file <path>Set every variable in a `.env` file instead of one name.
--visibleStore it readable in settings instead of as a secret.

integrations

The organization's integrations, shared by everyone in it. Cloud environments check out repositories through the organization's Paradev GitHub App.

superset integrations github status

Show where the GitHub App is installed and how many repositories it can see.

superset integrations github connect

Install the GitHub App in the browser, then wait until it is installed. Needs the Pro plan and a GitHub account that can install apps on the repositories' owner. integrations github disconnect removes it, and its repositories leave every environment; it asks first, or takes --yes.

Options

FlagDescription
--no-waitPrint the install URL and exit without waiting.

connections

Your own accounts that the cloud workspaces you start sign in with.

superset connections github connect

Connect your GitHub account in the browser, so your cloud workspaces push and open pull requests as you instead of as the GitHub App. connections github status shows the account, and connections github disconnect removes it.

Options

FlagDescription
--no-waitPrint the authorize URL and exit without waiting.

superset connections agents set <agent>

Sign an agent in for your cloud workspaces. A token or key is read from stdin or a prompt. set codex --kind subscription reads nothing: it starts a ChatGPT device-code sign-in and waits until you approve it in the browser. connections agents list shows which agents are signed in, and connections agents remove <agent> signs one out. For Claude, run claude setup-token and paste the token it prints.

Arguments

NameDescription
<agent>required`claude` or `codex`.

Options

FlagDescription
--kind <subscription|api_key>Required. `subscription`: the token from `claude setup-token`, or for Codex a ChatGPT sign-in. `api_key`: a provider or gateway key.
--gatewayThe key is a Vercel AI Gateway key.
--base-url <url>A compatible endpoint the key is for.

agents

Agents are terminal-agent rows configured on a host (the rows in Settings → Agents on that machine). Each row stores the command, args, prompt-transport mode, and environment used to launch the agent in a fresh terminal session.

superset agents list

List agents configured on a host. First call on a fresh host seeds the bundled defaults.

superset agents list --local
superset agents list --host host_…

Options

FlagDescription
--host <id>Target host machineId.
--localTarget this machine. Mutually exclusive with --host; exactly one is required.

Human mode: table with LABEL, PRESET, COMMAND, ID.

--quiet: agent instance IDs.

superset agents create

Create an agent session in an existing workspace: starts the named preset (or HostAgentConfig instance) in a fresh terminal session on its host.

superset agents create --workspace ws_… --agent claude --model sonnet --effort high --prompt "Audit the login flow"
superset agents create --workspace ws_… --agent codex --prompt "Review this diff" --attachment ./trace.log
# Restore a killed agent session by the agent's own session id
superset agents create --workspace ws_… --agent claude --resume-session 0b7c…
# Fork a session: a new Claude session with the same conversation
superset agents create --workspace ws_… --agent claude --fork-session 0b7c…
# Hand a terminal's recent output to a different agent
superset agents create --workspace ws_… --agent codex --from-terminal term_…
superset agents create --workspace ws_… --agent codex --from-terminal term_… --context-chars 12000

Pass at most one of --resume-session, --fork-session, and --from-terminal. See Fork and hand off sessions for which agents can fork and what a handoff sends.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID to create the agent session in.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.
--agent <preset|uuid|superset>requiredAgent preset id (e.g. `claude`, `codex`), HostAgentConfig instance UUID, or `superset`.
--prompt <text>Prompt sent to the agent. Required unless `--resume-session`, `--fork-session`, or `--from-terminal` is set. Not allowed with `--from-terminal`.
--resume-session <id>Agent session id of a previous run to restore instead of starting fresh (e.g. `claude --resume <id>`). Fails for agents without an id-based resume.
--fork-session <id>Agent session id to clone into a new session of the same agent. The source session stays unchanged. Fails for agents without a fork command, or when the agent no longer has that session.
--from-terminal <terminalId>Terminal whose recent output seeds the new session, so a different agent can continue the work. Paradev builds the prompt.
--context-chars <n>With `--from-terminal`, cap the handed-over context at 1-36000 characters. Default 36000 (roughly 9-12k tokens).
--model <id>Model for this launch. Supported values depend on the agent; omit to use its default.
--effort <level>Reasoning effort for this launch. Omit to use the agent default.
--attachment-id <uuid>Pre-uploaded attachment UUID; pass repeatedly for multiple attachments.
--attachment <path>Local file path to upload as an attachment. Repeatable. Up to 25 MB a file for a workspace on a host, 200 MB for a cloud workspace.

superset agents read

Read the agent's saved transcript, beyond the visible screen returned by terminals read. Fails if Paradev cannot read a transcript for that terminal.

superset agents read --local --workspace <workspace-id> --terminal <terminal-id>

Returns

The transcript object in JSON mode, or its text in human-readable mode.

Options

FlagDescription
--workspace <id>requiredWorkspace ID.
--terminal <id>requiredTerminal ID, returned as sessionId by agents create.
--host <id>Target host, or `cloud`. Mutually exclusive with --local.
--localRead from this machine.

superset agents wait

Block until an agent reaches a state, instead of polling terminals read. Returns at once if it is already there. Exits 1 on timeout, and at once if the agent exits.

T=$(superset agents create --workspace ws_… --agent claude --prompt "Add a /health route" --json | jq -r .sessionId)
superset agents wait --workspace ws_… --terminal "$T"

Returns

--json

{
  terminalId: string;
  state: "starting" | "working" | "blocked" | "idle";
  lastEventType: string | null;
}

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>requiredTerminal the agent runs in (the sessionId from agents create).
--until <state>settled (default: finished its turn or needs input), idle, blocked, or working.
--timeout <seconds>Give up after this long. Default 600.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.

superset agents explain

Explain why an agent shows its state: its last hook event and when it arrived, how an ended session ended, or that no hook has arrived (an agent Paradev can't see). Useful when agents wait or panes list shows something unexpected.

claude is idle.
Why: its recorded event is Stop, which means its turn ended: it finished, or it was interrupted.
The last hook arrived 1 second ago; the session started 2 seconds ago.

Returns

--json

{
  terminalId: string;
  state: "starting" | "working" | "blocked" | "idle" | "exited" | "none";
  because: string;
  details: string[];
  lastEventType: string | null;
  lastEventAt: number | null;
}

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>requiredTerminal the agent runs in.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.

Agent models

Model is an override for one launch. Without --model, Paradev passes no model flag and the agent uses its own default. Ids match the desktop model picker: Claude takes a family alias (fable, opus, sonnet, haiku) that tracks the newest release, or a pinned id such as claude-opus-5-5 or claude-sonnet-5-5. Codex includes gpt-6-astra, gpt-6-sol, and gpt-6-luna. The host rejects an unknown id before launching the agent, and the error names every id that agent accepts. Agents without a model picker, including Paradev chat, reject an explicit model override.

Agent effort levels

Effort is an override for one launch. Without --effort, Paradev passes no effort flag and the agent uses its own default. The host rejects unsupported values before launching the agent.

AgentSupported levels
Claudelow, medium, high, xhigh, max
Ampnone, minimal, low, medium, high, xhigh, max
Codexlow, medium, high, xhigh, max; ultra depends on the selected model
Mastracodeoff, low, medium, high, xhigh
Pioff, minimal, low, medium, high, xhigh
Copilotlow, medium, high, xhigh
Antigravitylow, medium, high, with --model set to a Gemini model

Every Codex model supports ultra except GPT-6 Luna and GPT-5.6 Luna.

Other agents, including Paradev chat, currently use their own default and reject an explicit effort override.


terminals (alias: term)

Terminals are PTY sessions on a host, scoped to a workspace. Create one to run a one-off command in a worktree or to open an interactive shell.

superset terminals create

Open a fresh PTY in the workspace's worktree, optionally running a command.

superset terminals create --workspace ws_… --command "bun install && bun test"
superset terminals create --workspace ws_…

Options

FlagDescription
--workspace <id>requiredWorkspace UUID to create the terminal in.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.
--command <cmd>Shell command to run in the terminal. Omit to open an interactive shell.
--cwd <path>Working directory for the terminal. Defaults to the worktree.

superset terminals list

List the live terminal sessions in a workspace. Presence in the list means the PTY exists, not that an agent inside it is working or idle.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.

superset terminals read

Read a terminal's current screen back as text without mutating the session.

superset terminals read --workspace ws_… --terminal term_… --max-lines 240

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>requiredTerminal session ID.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.
--max-lines <n>Limit how many trailing lines to return.

superset terminals send

Send a follow-up message or key presses to a terminal already running in a workspace, e.g. to give an agent new instructions mid-session, approve a prompt, or interrupt it.

superset terminals send --workspace ws_… --terminal term_… --text "Now add a test" --wait
superset terminals send --workspace ws_… --terminal term_… --keys esc

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>requiredTerminal session ID.
--text <string>Text to deliver to the terminal. Pass this or --keys.
--no-submitStage the text without pressing Enter.
--keys <list>Comma-separated key presses instead of text: a single character, esc, enter, tab, shift+tab, up, down, left, right, home, end, pageup, pagedown, delete, f1-f12, ctrl+<letter> (or C-c), alt+<key>, comma.
--waitBlock until the agent in the terminal reaches --until. A text send must cause a new hook event, and fails after 10s with none (a prompt left in the input box). After an interrupt key (esc, ctrl+c) it waits for the resulting state. Errors when no agent runs in the terminal.
--until <state>With --wait: settled (default), idle, blocked, or working.
--timeout <seconds>With --wait: give up after this long. Default 600.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.

superset terminals wait

Block until a terminal's screen matches a pattern, e.g. a dev server's "listening on". matched is the text the pattern matched, which can span lines. Exits 1 on timeout, or at once if the terminal exits first.

superset terminals wait --workspace ws_… --terminal term_… --match "listening on :\d+"

Returns

--json

{
  terminalId: string;
  matched: string;
}

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>requiredTerminal session ID.
--match <regex>requiredRegular expression to look for on the screen. Text already on screen counts.
--max-lines <n>Only search this many rows from the bottom.
--timeout <seconds>Give up after this long. Default 600.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.

superset terminals attach

Attach this shell to a running terminal. Ctrl+] detaches; the terminal keeps running. Needs an interactive terminal and refuses to run in CI.

superset terminals attach --workspace ws_… --terminal term_…
superset terminals attach --ssh me@build-box --workspace ws_… --terminal term_…

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>requiredTerminal session ID.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.
--ssh <user@machine>Instead of --host or --local (it cannot be combined with them): run superset terminals attach --local on that machine over ssh -t. Needs superset installed and signed in there.

superset terminals close

Close (dispose) a terminal running in a workspace. This ends the session.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>requiredTerminal session ID.
--host <id>Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host).
--localThe workspace is on this machine.

snapshot

superset snapshot

One read of a host: every workspace, its live terminals, the agent in each with its state, and the pane layout when the desktop app is attached. Use it instead of listing terminals and panes workspace by workspace. An unknown --workspace is an error.

acme-web / health-check  [health-check]  ws_…
  terminal ebed…  "/health route README section"  claude · working
  terminal 63c9…

Returns

--json

{
  workspaces: Array<{
    id: string; name: string; project: string | null; branch: string | null;
    terminals: Array<{ id: string; title: string | null; agent: { id: string; state: "starting" | "working" | "blocked" | "idle" } | null }>;
    layout: PaneLayout | null; // as in `panes list`; null without a desktop app
    layoutError: string | null; // set when a desktop app is attached but the layout could not be read
  }>;
}

Options

FlagDescription
--host <id>Host to read (default: this machine), or `cloud` with `--workspace` for that cloud workspace's own host.
--workspace <id>Only this workspace.

panes

Script the pane layout of a workspace in the desktop app. Commands go to the host, then to the desktop app, which applies them to the live layout. Works for workspaces on the machine running the desktop app. Only focus moves focus.

superset panes list

Tabs and the split tree. row splits are side by side and column splits are stacked, as in CSS flexbox; ratio is the first pane's share. Each terminal pane carries its title and the agent running in it with its state.

row 50/50
  pane-5f00…  terminal  terminal 63c9…  (active)
  pane-03e1…  terminal  "/health route README section"  claude · working  terminal ebed…

Returns

--json

{
  activeTabId: string | null;
  tabs: Array<{
    id: string; active: boolean; activePaneId: string | null;
    layout: PaneNode; // { type: "split", direction: "row" | "column", ratio, first, second } | { type: "pane", paneId }
    panes: Array<{
      id: string; kind: string; title: string | null; terminalId: string | null; active: boolean;
      terminalTitle?: string | null;
      agent?: { id: string; state: "starting" | "working" | "blocked" | "idle" } | null;
    }>;
  }>;
}

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--host <id>Host whose desktop app to ask (default: this machine).

superset panes new-tab

Open a new tab with a terminal pane, without moving focus.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--terminal <id>Show this existing terminal. Otherwise a new one is created.
--command <cmd>Command to run in the new terminal.
--host <id>Host whose desktop app to change (default: this machine).

superset panes split

Split a pane and show a terminal in the new half.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane to split.
--direction <side>requiredright, left, down, or up.
--terminal <id>Show this existing terminal. Otherwise a new one is created.
--command <cmd>Command to run in the new terminal.
--host <id>Host whose desktop app to change (default: this machine).

superset panes resize

Set a pane's share of the split it sits in. superset panes equalize --workspace <id> [--tab <id>] evens out every split instead.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane to resize.
--ratio <0.05-0.95>requiredThe pane's share of its split.
--host <id>Host whose desktop app to change (default: this machine).

superset panes move

Move a pane. A tab left empty closes. superset panes swap --workspace <id> --pane A --with B exchanges two panes, and superset panes focus --workspace <id> --pane P focuses one.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane to move.
--to <id>Place it beside this pane, in the same tab or another one.
--direction <side>With --to: right, left, down, or up.
--new-tabMove it into a tab of its own instead.
--host <id>Host whose desktop app to change (default: this machine).

superset panes close

Close a pane and end its terminal, as the close button in the app does.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane to close.
--keep-terminalKeep the terminal running in the background instead of ending it.
--host <id>Host whose desktop app to change (default: this machine).

notifications

superset notifications show

Show a desktop notification. Run from a Paradev terminal, clicking it opens that terminal, so an agent can say "tests pass" and take you straight back. With --host, pass --workspace and --terminal for a click target; without them the click only brings the app forward.

superset notifications show "Tests pass" --body "12 passed" --sound

Arguments

NameDescription
<title>requiredNotification title.

Options

FlagDescription
--body <text>Text under the title.
--soundPlay the notification sound set in the app (respects its mute).
--workspace <id>Workspace to open on click (default: the calling terminal's, when --host is not given).
--terminal <id>Terminal to open on click (default: the calling terminal, when --host is not given).
--host <id>Host whose desktop app shows it (default: this machine).

browser

Drive a workspace's in-app browser panes: open and navigate URLs, screenshot, read console, evaluate JavaScript, and get a raw Chrome DevTools Protocol endpoint for click, type, and scroll automation. Every operation runs in the pane the user sees, against the browser's real session. Browser panes live in the desktop app, so these commands error on a standalone host with no desktop attached. A paneId is scoped to its workspace; pass the same --workspace it was opened under. See the browser skill for the agent-facing protocol.

superset browser list

List the browser panes open in a workspace.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--host <id>Host the workspace lives on (default: this machine).

superset browser open

Open a URL in a browser pane and return its paneId. Requires the workspace to be visible in the desktop app (the renderer creates the pane).

superset browser open --workspace ws_… --url http://localhost:3000 --target new-tab

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--url <url>requiredURL to open (http/https).
--target <t>`current-tab` (default) or `new-tab`.
--host <id>Host the workspace lives on (default: this machine).

superset browser navigate

Point an existing pane at a new URL. file://, chrome://, and custom schemes are refused.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane ID (from `browser list`).
--url <url>requiredURL to navigate to (http/https).
--host <id>Host the workspace lives on (default: this machine).

superset browser screenshot

Capture a PNG screenshot of the pane's page.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane ID.
--out <path>Write a PNG file instead of printing base64.
--host <id>Host the workspace lives on (default: this machine).

superset browser eval

Evaluate JavaScript in the page and return the result for reading or nudging the DOM.

superset browser eval --workspace ws_… --pane pane_… \
  --code "document.querySelector('h1')?.textContent"

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane ID.
--code <js>requiredJavaScript expression to evaluate in the page.
--host <id>Host the workspace lives on (default: this machine).

superset browser console

Read the pane's captured console output.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane ID.
--max-lines <n>Cap returned entries from the bottom.
--host <id>Host the workspace lives on (default: this machine).

superset browser cdp

Print a raw Chrome DevTools Protocol WebSocket endpoint for the pane, for browser-use / Playwright-class tools (mouse, keyboard, scroll, DOM, network). The URL embeds an auth token; treat it as a secret.

Options

FlagDescription
--workspace <id>requiredWorkspace UUID.
--pane <id>requiredPane ID.
--host <id>Host the workspace lives on (default: this machine).

superset browser extensions list

List the Chrome extensions installed in your browser panes. Only extensions installed from the Chrome Web Store appear.

Options

FlagDescription
--host <id>Host to ask (default: this machine).

superset browser extensions install

Install a Chrome Web Store extension in your browser panes. The app shows the extension's permission warnings and asks you first; a refusal fails the command, so an agent can't install an extension on its own.

superset browser extensions install <extension-id>

Options

FlagDescription
<extension>requiredExtension ID or Chrome Web Store URL.
--host <id>Host to install on (default: this machine).

superset browser extensions remove

Remove an extension and its data. The app asks you first.

Options

FlagDescription
<extension>requiredExtension ID (from `browser extensions list`).
--host <id>Host to remove it from (default: this machine).

superset browser extensions pin

Pin an extension to the browser pane toolbar. superset browser extensions unpin takes the same arguments and unpins it. Neither asks for confirmation.

Options

FlagDescription
<extension>requiredExtension ID (from `browser extensions list`).
--host <id>Host the extension is on (default: this machine).

pages

Publish and manage Pages in the active organization.

superset pages list

Without --limit or --cursor, fetches all matching pages and returns a plain array. Either pagination flag selects one batch and returns { items, nextCursor }; nextCursor is null at the end. A cursor without a limit uses 50 rows per batch. Pages are ordered newest-created first. --quiet prints page IDs in either mode. Linked workspaces appear in the WORKSPACE column and in each row's workspaceLinks.

superset pages list --workspace '' --search onboarding --json
superset pages list --workspace '' --limit 20 --json
superset pages list --workspace '' --limit 20 --cursor '<nextCursor>' --json

Options

FlagDescription
--workspace <name|id>Scope to a workspace. Defaults to SUPERSET_WORKSPACE_ID; pass an empty string for the whole organization.
--search <text>, -q <text>Search titles, slugs, and descriptions.
--limit <n>Fetch one batch of 1–200 pages.
--cursor <cursor>Continue from the previous nextCursor.

superset pages publish <path>

Publishing the same entry path from the same workspace adds a version to the existing page. Without a workspace, keep the returned ID and pass --page on later publishes to avoid creating another page. Existing visibility is preserved unless explicitly supplied.

Publishing does not open the page in the desktop.

superset pages publish report.html --title "Weekly report" --visibility everyone
superset pages publish report.html --page <page-id> --label "Addressed feedback"

Returns

Page metadata including id, title, version, and url, plus unanchored, watching, and asset upload/reuse counts. Unlinked publishes include a republish command. When the publish tries to register the session for comments, watchNote says whether it worked.

Arguments

NameDescription
<path>requiredHTML file, or directory containing index.html and its assets.

Options

FlagDescription
--title <text>Page title; defaults to the file or directory name.
--description <text>Short description.
--label <text>, -l <text>What changed in this version.
--visibility <value>just_me, org, or everyone. New pages default to org.
--page <id>Add a version to this existing page.
--workspace <name|id>Workspace link; defaults to SUPERSET_WORKSPACE_ID. Optional.
--no-watchDo not register this terminal to receive new page comments.

superset pages delete <page>

Delete a page and every version. Interactive terminals ask for confirmation unless --yes is passed; non-interactive input does not prompt.

Arguments

NameDescription
<page>requiredPage ID or slug.

Options

FlagDescription
--yesSkip the interactive confirmation.

superset pages storage <page>

Read what viewers stored with window.superset.storage on a page. Without --key, lists each key with its record count (KEY, RECORDS, UPDATED). With --key, lists each person's value for that key (NAME, VALUE, UPDATED). On a just_me page only the creator can read storage. On an org or everyone page, members of the page's organization can read it, even when the page is public.

superset pages storage weekly-report
superset pages storage weekly-report --key votes --json

Arguments

NameDescription
<page>requiredPage ID or slug.

Options

FlagDescription
--key <key>Show each person's value for this key.

plugins (alias: plugin)

Install and connect plugins on this machine, and author them in a marketplace repo. Installing records the plugin on your account and writes its skills and MCP servers to Claude, Codex, and pdev.

superset plugins list

List installed plugins, or everything available with --available.

Options

FlagDescription
--availableInclude plugins you have not installed.

superset plugins install <plugin>

Connects the plugin's account first if it needs one, then writes its skills locally and records the install on your account.

superset plugins install google-calendar

Arguments

NameDescription
<plugin>requiredPlugin name.

Options

FlagDescription
--marketplace <name>Marketplace to install from, when several offer this name.
--method <name>Auth method to use, when a plugin offers several.
--inputs <json|->Credential inputs as JSON, or - to read them from stdin.
--no-waitPrint the authorize URL and exit without waiting; run install again once it is authorized.
--updateReplace an existing install with the marketplace's current version and re-sync its skills.

superset plugins connect <plugin>

Connect an account to an installed plugin.

Arguments

NameDescription
<plugin>requiredInstalled plugin name.

Options

FlagDescription
--marketplace <name>Marketplace of the install to connect, when several offer this name.
--method <name>Auth method to use, when a plugin offers several.
--inputs <json|->Credential inputs as JSON, or - to read them from stdin.

superset plugins enable <plugin>

Enable an installed plugin.

Arguments

NameDescription
<plugin>requiredInstalled plugin name.

Options

FlagDescription
--marketplace <name>Marketplace of the install to change, when several offer this name.

superset plugins disable <plugin>

Disable an installed plugin without dropping it.

Arguments

NameDescription
<plugin>requiredInstalled plugin name.

Options

FlagDescription
--marketplace <name>Marketplace of the install to change, when several offer this name.

superset plugins uninstall <plugin>

Uninstall a plugin and drop its skills.

Arguments

NameDescription
<plugin>requiredInstalled plugin name.

Options

FlagDescription
--marketplace <name>Marketplace of the install to remove, when several offer this name.

superset plugins sync

Reconcile installed plugins with the skill directories agents read and the MCP entries Claude, Codex, and pdev read, adding, refreshing, and reaping both.

superset plugins marketplace <add|list|remove>

add <source> [--name <name>] adds a marketplace from a GitHub repo or local path. list shows the marketplaces on your account. remove <name> removes one.

superset plugins create <name>

Scaffold a new plugin and add it to the marketplace.

Arguments

NameDescription
<name>requiredPlugin name.

Options

FlagDescription
--display-name <text>Name shown in the UI. Defaults to a name derived from the plugin name.
--description <text>One-line description.
--category <text>Category shown in the UI.
--kind <url|none>Where tools come from: url (remote MCP server) or none (skills only).
--url <url>MCP server URL. Required when --kind is url.
--connector <slug>Slug of the connector this plugin needs a connection to.
--skillsScaffold a skills/ folder with a starter skill.

superset plugins validate [path]

Validate a plugin or a whole marketplace: manifest, release tag, and whether the built server matches its source.

Options

FlagDescription
--strictAlso require every plugin's current version to be released.

superset plugins publish <names...>

Cut a version of a plugin: build, record it in the marketplace and the generated bundle, and name the tag to publish it at.

Options

FlagDescription
--bump <major|minor|patch>Bump the version before publishing.
--forceOverwrite an already-published version.

mcp

Call the tools of a plugin you have connected. The call goes through Paradev's API, which attaches the stored credential, so no token is written to this machine.

superset mcp tools

List the tools a connected plugin exposes (PLUGIN, TOOL, DESCRIPTION).

superset mcp tools --plugin slack

Options

FlagDescription
--plugin <name>requiredPlugin name, e.g. `slack` or `google-calendar`.
--account <id>Connection id. Needed only when the plugin has more than one connected account.

superset mcp call-tool <tool> [arguments]

Call a tool on a connected plugin and print its result.

superset mcp call-tool search_messages --plugin slack '{"query":"deploy"}'

Arguments

NameDescription
<tool>requiredTool name, from `superset mcp tools`.
[arguments]Tool arguments as JSON (default `{}`).

Options

FlagDescription
--plugin <name>requiredPlugin name, e.g. `slack` or `google-calendar`.
--account <id>Connection id. Needed only when the plugin has more than one connected account.

skills

superset skills list

List the skills installed from plugins on this machine (SKILL, PLUGIN, PATH).

Options

FlagDescription
--pathsPrint only the paths, one per line.

tasks (alias: t)

Tasks are units of work in your organization's task tracker. When the organization tracks tasks in Linear (an owner's setting), these commands work on its Linear issues through your own Linear connection; otherwise on Paradev tasks. A command works on one tracker only: in an organization that tracks in Linear, Paradev tasks are not listed or resolved, and the reverse. Pass --tracker superset|linear to reach the other one for a single command.

superset tasks list

List tasks in the active organization.

superset tasks list --assignee-me
superset t list -s "auth" --json

Options

FlagDescription
--tracker <superset|linear>Override the organization's task tracker.
--team <key>Filter by team key or name.
--status <id>Filter by status ID. For Linear: all | active | backlog | unstarted | started | completed | canceled (default active).
--priority <urgent|high|medium|low|none>Filter by priority.
--assignee <userId>Filter by assignee user ID.
--assignee-me, -mTasks assigned to the current user.
--creator-meTasks created by the current user.
--search <query>, -sSubstring search on title or description.
--labels <a,b>Comma-separated labels. A task must have all of them. A label also matches its sub-labels: `acme` matches `acme/web`. Paradev only.
--due-from <date>Tasks due on or after this date (YYYY-MM-DD).
--due-to <date>Tasks due on or before this date (YYYY-MM-DD).
--sort-by <field>createdAt | updatedAt | dueDate | priority. Default: createdAt.
--sort-order <dir>asc | desc.
--limit <n>Default 50.
--offset <n>Default 0.

Human mode: table with SLUG, TITLE, PRIORITY, ASSIGNEE, PROJECT.

--quiet: task IDs.

superset tasks get <idOrSlug>

Get a task by ID or slug.

superset tasks get tsk_…
superset tasks get fix-login-bug

Arguments

NameDescription
<idOrSlug>requiredTask ID or slug, or a Linear identifier (ENG-123).

Options

FlagDescription
--tracker <superset|linear>Override the organization's task tracker.

superset tasks create

Create a task.

superset tasks create --title "Audit auth flow" --priority high

Options

FlagDescription
--tracker <superset|linear>Override the organization's task tracker.
--team <key>Team key or name. Paradev tasks go to the default team without it; Linear needs it when the workspace has several teams.
--title <title>requiredTask title.
--description <text>Task description.
--priority <urgent|high|medium|low|none>Priority.
--assignee <userId>Assignee user ID.
--status-id <id>Initial status ID.
--estimate <n>Story-point estimate.
--due-date <iso8601>Due date.
--labels <a,b,c>Comma-separated labels.

superset tasks update <idOrSlug>

Update a task. Same fields as create, all optional.

superset tasks update fix-login-bug --priority urgent

Arguments

NameDescription
<idOrSlug>requiredTask ID or slug, or a Linear identifier (ENG-123).

Options

FlagDescription
--tracker <superset|linear>Override the organization's task tracker.
--title <title>New title.
--description <text>New description.
--priority <urgent|high|medium|low|none>New priority.
--assignee <userId>New assignee.
--status-id <id>New status ID.
--pr-url <url>Linked pull request URL.
--estimate <n>Story-point estimate.
--due-date <iso8601>Due date.
--labels <a,b,c>Replace labels with a comma-separated list.

superset tasks delete <idOrSlug...>

Delete one or more tasks. Linear issues are archived.

superset tasks delete tsk_a tsk_b

Arguments

NameDescription
<idOrSlug...>requiredTask IDs or slugs to delete.

Options

FlagDescription
--tracker <superset|linear>Override the organization's task tracker.

superset tasks statuses list

List task statuses in the active organization. Paradev status IDs work with tasks list --status, tasks create --status-id and tasks update --status-id. Linear statuses belong to a team: pass their names or IDs to --status-id on create and update; tasks list --status takes a category (active, started, …) for Linear.

superset tasks statuses list

Options

FlagDescription
--tracker <superset|linear>Override the organization's task tracker.
--team <key>Linear team key (Linear only).

Human mode: table with TEAM, NAME, TYPE, POS, ID.

--quiet: status IDs.


automations (alias: auto)

Agent runs on a schedule or on events. Schedules use RFC 5545 RRULE bodies, e.g. FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=9;BYMINUTE=0. Event triggers (GitHub, Slack, Linear, Sentry, Notion, Microsoft Teams, webhook) are passed as a JSON trigger set; see Automations.

superset automations list

List automations in the active organization.

Options

FlagDescription
--name <text>Case-insensitive substring filter on the automation name. Alias: -n.
--group <name>Only automations in this group (case-insensitive).

Human mode: table with ID, NAME, GROUP, AGENT, SCHEDULE, ENABLED, NEXT RUN.

--quiet: automation IDs.

superset automations get <id>

Get an automation's metadata. The prompt body is omitted. Use automations prompt get to read it. Use automations logs for run history.

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations create

Create an automation. Pass --rrule for a schedule, or --triggers / --triggers-file for event triggers; one of them is required. Automations are a Pro feature: create, run, and resume need a Pro or Enterprise subscription on the active organization and fail with Automations require the Pro plan. otherwise. Provide --prompt or --prompt-file; if both are present, the inline --prompt value is used. A --project or --workspace must exist on the target host; the CLI verifies this before creating the automation. Omit both for session mode: each run creates a project-less session workspace on the target host.

Every run's created workspace carries the automation's tags, which group it into the matching sidebar folders. By default automations are tagged automation, so their runs collect in an automation folder per project; pass --tag to file runs elsewhere. Tags file the runs; --group files the automation itself in the automations table.

superset automations create \
  --name "Weekday triage" \
  --project prj_… \
  --workspace ws_… \
  --rrule "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=9;BYMINUTE=0" \
  --prompt-file ./prompts/triage.md

Options

FlagDescription
--name <name>requiredAutomation name.
--prompt <text>Inline prompt.
--prompt-file <path>Read prompt from file, verbatim.
--rrule <rrule>RFC 5545 RRULE schedule. Omit when passing --triggers or --triggers-file.
--triggers <json>Trigger set as a JSON array, for event triggers.
--triggers-file <path>Path to a JSON file holding the trigger set.
--timezone <iana>Default: host TZ, then UTC.
--dtstart <iso8601>Default: now.
--workspace <workspaceId>Reuse an existing workspace (session workspaces are accepted).
--project <projectId>Project ID for new-workspace-per-run mode. Omit (with no --workspace) for session mode.
--host <hostId>Host the automation dispatches to, or `cloud` for `--cloud` (default: this machine).
--cloudRun in the cloud: each run starts a cloud workspace from `--environment`, or reuses the one `--workspace` names.
--agent <agent>Host agent presetId, instance UUID, or 'superset' for built-in chat. Default: claude.
--continue-sessionDeliver each run's prompt into the agent session the previous run left, instead of starting another. Without --workspace, the first run's workspace is kept for the next runs.
--tag <tag>Workspace tag applied to each run's created workspace. Repeatable. Default: automation.
--group <name>Group the automation is listed under in the automations table. Default: none.

superset automations trigger-options

List the values an event trigger can filter on (Slack channels, GitHub repositories, Linear teams, ...), with the ids to put in a trigger set. Reports when the provider isn't connected.

superset automations trigger-options --group slack

Options

FlagDescription
--group <group>requiredProvider option group: github, linear, sentry, microsoftTeams, notion, or slack.

superset automations update <id>

Update an automation (name, schedule, triggers, agent, host). All flags optional. Omitting a flag preserves the existing value: undefined means "no change", not "clear". Use automations prompt get or automations prompt set to read or replace the prompt body.

Arguments

NameDescription
<id>requiredAutomation ID.

Options

FlagDescription
--name <name>New name.
--rrule <rrule>New schedule. Mutually exclusive with --triggers/--triggers-file.
--triggers <json>Replace the whole trigger set with this JSON array.
--triggers-file <path>Path to a JSON file holding the replacement trigger set. Resend each trigger you want to keep with its `id`, or it is deleted.
--timezone <iana>New timezone.
--dtstart <iso8601>New start time.
--host <hostId>New target host, or `cloud` for `--cloud`.
--cloudMove the automation to the cloud. Pass `--environment` or `--workspace` with it.
--project <projectId>New v2 project ID.
--workspace <workspaceId>New v2 workspace ID.
--sessionSwitch to session mode: clears the project and any workspace pin; each run creates a project-less session workspace. Mutually exclusive with --project/--workspace.
--agent <agent>New host agent presetId, instance UUID, or 'superset'.
--continue-session / --no-continue-sessionContinue the agent session the previous run left, or start a new one each run. With no pinned workspace, the next run's workspace is kept for the runs after it.
--mcp-scope <a,b,c>Comma-separated MCP scope strings.
--tag <tag>Replace the tag set applied to each run's created workspace. Repeatable.
--clear-tagsRemove every tag (runs stop grouping). Mutually exclusive with --tag.
--group <name>Move the automation to this group in the automations table.
--clear-groupRemove the automation from its group. Mutually exclusive with --group.
--enabled / --no-enabledCalls automation.setEnabled first.

superset automations prompt get <id>

Print an automation's prompt body to stdout. The output is the raw prompt with no trailing newline added, so prompt get and prompt set round-trip byte-exactly.

# Read to a file
superset automations prompt get aut_… > prompt.md

# Verify a push landed
superset automations prompt get aut_… | diff - ./prompt.md

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations prompt set <id>

Replace an automation's prompt body. The new prompt fully overwrites the old one.

# Write from file
superset automations prompt set aut_… --from-file ./prompt.md

# Write from stdin
cat ./prompt.md | superset automations prompt set aut_… --from-file -

Arguments

NameDescription
<id>requiredAutomation ID.

Options

FlagDescription
--from-file <path>requiredRead the new prompt from a file. Use `-` for stdin.

superset automations archive <id>

Archive an automation. It stops firing and leaves automations list; its run history stays.

superset automations archive aut_…

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations unarchive <id>

Restore an archived automation. It comes back paused; run automations resume to start it. restore is an alias.

superset automations list --archived
superset automations unarchive aut_…

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations delete <id>

Permanently delete an archived automation and its run history. This can't be undone. Archive the automation first; an active automation is refused.

superset automations archive aut_…
superset automations delete aut_…

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations pause <id>

Pause an automation (sets enabled: false).

superset automations pause aut_…

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations resume <id>

Resume an automation (sets enabled: true). The API recomputes nextRunAt on resume.

superset automations resume aut_…

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations run <id>

Dispatch an automation immediately. Does not wait for completion.

superset automations run aut_…

Arguments

NameDescription
<id>requiredAutomation ID.

superset automations logs <id>

List recent runs for an automation.

superset automations logs aut_…

Arguments

NameDescription
<id>requiredAutomation ID.

Options

FlagDescription
--limit <n>Default 20, max 100.

Human mode: table with RUN ID, STATUS, SCHEDULED, DISPATCHED, HOST.

--quiet: run IDs.


settings

Read and update the Paradev desktop app's settings on this machine: behavior, git, notifications, terminal, terminal/editor appearance, and the app theme. These commands work offline and don't require login.

After every write the CLI nudges the running desktop app, which refreshes at once, themes included, with no restart (the output says "refreshed immediately" or "applied to the running desktop app"). Without a running app (or on older app versions), settings apply on next window focus and theme changes on next launch. Git settings (branchPrefixMode, branchPrefixCustom, worktreeBaseDir) are host-wide and written through the local host service, so the desktop app or superset start must be running for those.

superset settings list

List every settable key with its current value, default, and allowed values. isSet: false means the app is using its built-in default.

superset settings list

Human mode: table with KEY, VALUE, DEFAULT, SECTION, DESCRIPTION.

superset settings get <key>

Print the effective value of one setting (falls back to the app default when unset).

superset settings get terminalFontSize

Arguments

NameDescription
<key>requiredSetting key from `settings list`.

superset settings set <key> <value>

Set a setting. Booleans accept true/false/on/off/1/0/yes/no; enums and numeric ranges are validated the same way the desktop settings UI validates them.

superset settings set confirmOnQuit false
superset settings set terminalFontSize 16
superset settings set defaultEditor cursor
superset settings set selectedRingtoneId ping

Arguments

NameDescription
<key>requiredSetting key from `settings list`.
<value>requiredNew value. Validated against the setting's type, range, and allowed values.

superset settings reset <key>

Reset a setting to the app default.

superset settings reset terminalFontSize

Arguments

NameDescription
<key>requiredSetting key from `settings list`.

superset settings theme list

List available themes: system (follows OS appearance), the built-ins (dark, light, monokai, catppuccin-latte, solarized-light, vellum), and any custom themes imported through the app.

superset settings theme list

Human mode: table with ID, NAME, TYPE, SOURCE, ACTIVE.

superset settings theme get

Print the active theme.

superset settings theme get

superset settings theme export <id>

Export a theme's full JSON definition, the starting point for creating a custom theme: export a built-in, edit the colors, then import it.

superset settings theme export dark --out my-theme.json

Arguments

NameDescription
<id>requiredTheme id (built-in or custom).

Options

FlagDescription
--out <path>Write to a file instead of stdout.

superset settings theme import <file>

Import custom themes, using the same validation and normalization as the desktop's Appearance UI (ids are slugified; missing colors are filled from the built-in base theme; reserved ids like dark are rejected). Re-importing an id replaces that custom theme.

superset settings theme export dark --out my-theme.json
# edit my-theme.json (id, name, ui/terminal/editor colors)
superset settings theme import my-theme.json
superset settings theme set my-theme

Arguments

NameDescription
<file>requiredPath to a theme JSON file (max 256 KB): a single theme, an array, or `{ themes: [...] }`.

superset settings theme remove <id>

Remove a custom theme. If it was the active theme (or a system light/dark mapping), that reference falls back to the default.

superset settings theme remove my-theme

Arguments

NameDescription
<id>requiredCustom theme id. Built-ins can't be removed.

superset settings theme set [theme]

Set the active theme and/or the system light/dark mappings. A running desktop app restyles live; without one the theme applies on next launch. (On app versions without live reload, quit the app first, then set, then relaunch, or the app may overwrite the change.)

superset settings theme set monokai
superset settings theme set system --system-light light --system-dark monokai

Arguments

NameDescription
[theme]Theme id, or `system` to follow the OS appearance.

Options

FlagDescription
--system-light <id>Theme used for OS light mode when the active theme is `system`.
--system-dark <id>Theme used for OS dark mode when the active theme is `system`.

completion

Shell completion for bash and zsh, generated from the installed version's command tree.

superset completion <shell>

Prints the script to stdout unchanged in every output mode: --json, --quiet, and agent environments do not wrap it. The script completes command names at every level (including after an alias, as in superset ws cr<Tab>), each command's flags and their aliases, enum values for flags (--priority=u<Tab>) and arguments, and the global options.

# This shell session
source <(superset completion zsh)
eval "$(superset completion bash)"   # bash 3.2 (macOS's /bin/bash) cannot source a process substitution

# Every session: put the line above in ~/.zshrc or ~/.bashrc, or for zsh
# install the script on fpath so compinit autoloads it
superset completion zsh > ~/.zfunc/_superset   # with fpath=(~/.zfunc $fpath) before compinit

Arguments

NameDescription
<shell>required`bash` or `zsh`.

schema

superset schema

Prints every command, option, and argument as JSON, for tooling that must not parse --help. Commands hidden from this run (internal-only, or unavailable in a cloud workspace) are left out, as they are from --help. Commands and options are sorted and absent fields are omitted, so two versions diff cleanly.

superset schema | jq '.commands[] | select(.path == ["terminals"]) | .commands[].path'

Returns

--json

{
  name: "superset";
  version: string;
  globalOptions: SchemaOption[];
  commands: SchemaCommand[];
}

// SchemaCommand
{
  path: string[];            // e.g. ["terminals", "read"]
  description?: string;
  aliases?: string[];
  options: SchemaOption[];
  args: SchemaArg[];
  commands: SchemaCommand[]; // empty for a leaf command
}

// SchemaOption
{
  name: string;              // flag name without the dashes
  aliases: string[];
  type: "string" | "number" | "boolean";
  required: boolean;
  description?: string;
  default?: unknown;
  enum?: string[];
  variadic?: true;
  int?: true;
  min?: number;
  max?: number;
  env?: string;              // environment variable that can supply the value
}

// SchemaArg
{
  name: string;
  required: boolean;
  description?: string;
  enum?: string[];
  variadic?: true;
}

config

Inspect the CLI's local config file: config.json under ~/.paradev, or under $SUPERSET_HOME_DIR when that is set.

superset config check

Validates the file before a hand edit or a bad restore surfaces as a confusing auth failure: JSON syntax, the shape of auth, apiKey and organizationId, an expired token, and keys this version does not read. An error exits 1; a warning does not. A missing file is not an error, it only means nobody has logged in yet.

superset config check
superset config check --json

Returns

--json

{
  path: string;
  exists: boolean;
  valid: boolean;     // false when any issue is an error
  loggedIn: boolean;  // the file holds a usable credential
  issues: { severity: "error" | "warning"; message: string }[];
}

Output modes

JSON mode (--json): raw payloads. Lists print arrays, get/create/update print objects, delete prints summary objects. No { "data": ... } wrapper. Empty results print null.

Quiet mode (--quiet): IDs only. Arrays of objects with an id field print one ID per line; single objects print their id; everything else falls back to JSON.

When CLAUDE_CODE, CLAUDECODE, CLAUDE_CODE_ENTRYPOINT, CODEX_CLI, GEMINI_CLI, SUPERSET_AGENT, or CI is set to a non-empty value, output defaults to JSON unless --quiet is provided.