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:
| Flag | Env | Description |
|---|---|---|
--json | Print the data payload as formatted JSON. | |
--quiet | One ID per line for arrays; the ID for single objects; JSON fallback otherwise. | |
--api-key <key> | SUPERSET_API_KEY | Use an API key instead of stored OAuth login. |
--help, -h | Show help for the current command. | |
--version, -v | Print 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" --upsertReturns
The created terminal script, including its generated ID.
Options
| Flag | Description |
|---|---|
--name <name>required | Display name. |
--command <command...>required | Shell 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. |
--hidden | Do not show the script in the Scripts bar. |
--workspace-run | Use the script for the matching project's Run action. |
--upsert | Replace 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 --jsonsuperset 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-hiddenArguments
| Name | Description |
|---|---|
<id>required | Script ID from `superset scripts list`. |
Options
| Flag | Description |
|---|---|
--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-projects | Make the script available in every project. |
--execution-mode <mode> | new-tab, split-pane, new-tab-split-pane, or sequential. |
--hidden / --no-hidden | Hide the script from the Scripts bar, or show it again. |
--workspace-run / --no-workspace-run | Use 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
| Name | Description |
|---|---|
<id>required | Script 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 acmeTo 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 acmeReturns
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
| Flag | Description |
|---|---|
--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 logoutReturns
A confirmation message.
Logged out.--json
{ message: "Logged out." }superset auth whoami
Show the current user, active organization, and auth source.
superset auth whoamiReturns
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 --daemonReturns
The running host server.
--json
// Freshly started
{
pid: number;
port: number;
organizationId: string;
}
// Already running
{
pid: number;
endpoint: string;
}Options
| Flag | Description |
|---|---|
--daemon | Run detached. |
--auto-update | Check 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 --terminalsReturns
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
| Flag | Description |
|---|---|
--terminals | Also 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 statusReturns
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
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
--check | Only check for updates; don't install. |
--force | Re-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
| Name | Description |
|---|---|
<idOrSlug>required | Organization ID or slug. |
superset organization members list
List members in the active organization.
superset organization members list
superset org members list -s satyaOptions
| Flag | Description |
|---|---|
--search <query>, -s | Search 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
| Flag | Description |
|---|---|
--host <id> | List projects on a specific host machineId. |
--local | List 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-appOptions
| Flag | Description |
|---|---|
--name <name>required | Display name for the project. |
--host <id> | Target host machineId. Mutually exclusive with `--local`; one is required. |
--local | Target 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-appArguments
| Name | Description |
|---|---|
<id>required | Project UUID to adopt. |
Options
| Flag | Description |
|---|---|
--host <id> | Target host machineId. Mutually exclusive with `--local`; one is required. |
--local | Target 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-relocate | Permit 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 listOptions
| Flag | Description |
|---|---|
--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" --yesArguments
| Name | Description |
|---|---|
<target>required | SSH destination, as you would pass it to ssh (`user@box` or a Host alias). |
Options
| Flag | Description |
|---|---|
--name <name> | Name for the host. Default: its hostname. |
--no-service | Run the host as a plain background process instead of a systemd user service or LaunchAgent. It does not survive a reboot. |
--yes | Install 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-boxArguments
| Name | Description |
|---|---|
<target>required | SSH destination the host was added with. |
Options
| Flag | Description |
|---|---|
--yes | Skip 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 --clearArguments
| Name | Description |
|---|---|
<host>required | Host name or id. |
[command...] | Command to run locally to wake the host, e.g. `vercel sandbox resume my-box`. |
Options
| Flag | Description |
|---|---|
--clear | Remove 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-sandboxArguments
| Name | Description |
|---|---|
<host>required | Host name or id. |
Options
| Flag | Description |
|---|---|
--yes | Skip 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
| Flag | Description |
|---|---|
--host <id> | List workspaces on a specific host machineId, or `cloud`. |
--local | List 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 perfOptions
| Flag | Description |
|---|---|
--project <projectId> | Project ID, for a workspace on a host. Required with `--local` or `--host` unless `--session` is set. |
--session | Create 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-prefix | Use `--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. |
--local | Target 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_cArguments
| Name | Description |
|---|---|
<id...>required | Workspace IDs to archive. |
Options
| Flag | Description |
|---|---|
--host <id> | Host the workspaces live on, or `cloud`. |
--local | Target 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_aArguments
| Name | Description |
|---|---|
[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
| Name | Description |
|---|---|
<id>required | Cloud 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
| Name | Description |
|---|---|
<id>required | Cloud 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
| Name | Description |
|---|---|
[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
| Name | Description |
|---|---|
[id] | Cloud workspace ID. |
Options
| Flag | Description |
|---|---|
--all | Every cloud workspace you can see. |
--archived | Archived cloud workspaces instead. |
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 workspaceArguments
| Name | Description |
|---|---|
[id] | Workspace ID. Defaults to `$SUPERSET_WORKSPACE_ID` when run inside a workspace. |
Options
| Flag | Description |
|---|---|
--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 xlargeArguments
| Name | Description |
|---|---|
<id>required | Workspace UUID. |
Options
| Flag | Description |
|---|---|
--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-task | Unlink 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-tags | Remove 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_… --printArguments
| Name | Description |
|---|---|
<id>required | Workspace ID. |
Options
| Flag | Description |
|---|---|
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--print | Print 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:
kind | Example agents | Query param |
|---|---|---|
chat | superset | ?chatSessionId=<sessionId> |
terminal | claude, 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
| Flag | Description |
|---|---|
--project <projectId> | Project ID. Required. |
--host <id> | Host the project is on (machineId). Mutually exclusive with `--local`. |
--local | This 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_… --allOptions
| Flag | Description |
|---|---|
--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. |
--all | Every worktree that is not the main checkout and has no workspace. |
--host <id> | Host the project is on (machineId). Mutually exclusive with `--local`. |
--local | This machine (the default). |
--run-setup | Run 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 listOptions
| Flag | Description |
|---|---|
--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 5173Options
| Flag | Description |
|---|---|
<port>required | Port 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
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
--workspace <id> | Cloud workspace ID. Required. |
--scope <personal|organization> | Also change who can use it. |
--yes | Replace 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
| Flag | Description |
|---|---|
--yes | Archive 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
| Flag | Description |
|---|---|
--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. |
--visible | Store 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
| Flag | Description |
|---|---|
--no-wait | Print 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
| Flag | Description |
|---|---|
--no-wait | Print 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
| Name | Description |
|---|---|
<agent>required | `claude` or `codex`. |
Options
| Flag | Description |
|---|---|
--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. |
--gateway | The 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
| Flag | Description |
|---|---|
--host <id> | Target host machineId. |
--local | Target 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 12000Pass 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID to create the agent session in. |
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--local | The workspace is on this machine. |
--agent <preset|uuid|superset>required | Agent 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace ID. |
--terminal <id>required | Terminal ID, returned as sessionId by agents create. |
--host <id> | Target host, or `cloud`. Mutually exclusive with --local. |
--local | Read 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal 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). |
--local | The 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal the agent runs in. |
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--local | The 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.
| Agent | Supported levels |
|---|---|
| Claude | low, medium, high, xhigh, max |
| Amp | none, minimal, low, medium, high, xhigh, max |
| Codex | low, medium, high, xhigh, max; ultra depends on the selected model |
| Mastracode | off, low, medium, high, xhigh |
| Pi | off, minimal, low, medium, high, xhigh |
| Copilot | low, medium, high, xhigh |
| Antigravity | low, 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID to create the terminal in. |
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--local | The 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--local | The 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 240Options
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal session ID. |
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--local | The 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 escOptions
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal session ID. |
--text <string> | Text to deliver to the terminal. Pass this or --keys. |
--no-submit | Stage 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. |
--wait | Block 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). |
--local | The 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal session ID. |
--match <regex>required | Regular 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). |
--local | The 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal session ID. |
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--local | The 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal session ID. |
--host <id> | Host the workspace lives on, or `cloud`. See [Choosing a host](#choosing-a-host). |
--local | The 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
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane to split. |
--direction <side>required | right, 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane to resize. |
--ratio <0.05-0.95>required | The 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane 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-tab | Move 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane to close. |
--keep-terminal | Keep 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" --soundArguments
| Name | Description |
|---|---|
<title>required | Notification title. |
Options
| Flag | Description |
|---|---|
--body <text> | Text under the title. |
--sound | Play 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace 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-tabOptions
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--url <url>required | URL to open (http/https). |
--target <t> | `current-tab` (default) or `new-tab`. |
--host <id> | Host the workspace lives on (default: this machine). |
superset browser screenshot
Capture a PNG screenshot of the pane's page.
Options
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane ID. |
--code <js>required | JavaScript 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane 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
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--pane <id>required | Pane 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
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
<extension>required | Extension 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
| Flag | Description |
|---|---|
<extension>required | Extension 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
| Flag | Description |
|---|---|
<extension>required | Extension 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>' --jsonOptions
| Flag | Description |
|---|---|
--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
| Name | Description |
|---|---|
<path>required | HTML file, or directory containing index.html and its assets. |
Options
| Flag | Description |
|---|---|
--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-watch | Do 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
| Name | Description |
|---|---|
<page>required | Page ID or slug. |
Options
| Flag | Description |
|---|---|
--yes | Skip 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 --jsonArguments
| Name | Description |
|---|---|
<page>required | Page ID or slug. |
Options
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
--available | Include 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-calendarArguments
| Name | Description |
|---|---|
<plugin>required | Plugin name. |
Options
| Flag | Description |
|---|---|
--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-wait | Print the authorize URL and exit without waiting; run install again once it is authorized. |
--update | Replace 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
| Name | Description |
|---|---|
<plugin>required | Installed plugin name. |
Options
| Flag | Description |
|---|---|
--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
| Name | Description |
|---|---|
<plugin>required | Installed plugin name. |
Options
| Flag | Description |
|---|---|
--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
| Name | Description |
|---|---|
<plugin>required | Installed plugin name. |
Options
| Flag | Description |
|---|---|
--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
| Name | Description |
|---|---|
<plugin>required | Installed plugin name. |
Options
| Flag | Description |
|---|---|
--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
| Name | Description |
|---|---|
<name>required | Plugin name. |
Options
| Flag | Description |
|---|---|
--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. |
--skills | Scaffold 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
| Flag | Description |
|---|---|
--strict | Also 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
| Flag | Description |
|---|---|
--bump <major|minor|patch> | Bump the version before publishing. |
--force | Overwrite 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 slackOptions
| Flag | Description |
|---|---|
--plugin <name>required | Plugin 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
| Name | Description |
|---|---|
<tool>required | Tool name, from `superset mcp tools`. |
[arguments] | Tool arguments as JSON (default `{}`). |
Options
| Flag | Description |
|---|---|
--plugin <name>required | Plugin 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
| Flag | Description |
|---|---|
--paths | Print 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" --jsonOptions
| Flag | Description |
|---|---|
--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, -m | Tasks assigned to the current user. |
--creator-me | Tasks created by the current user. |
--search <query>, -s | Substring 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-bugArguments
| Name | Description |
|---|---|
<idOrSlug>required | Task ID or slug, or a Linear identifier (ENG-123). |
Options
| Flag | Description |
|---|---|
--tracker <superset|linear> | Override the organization's task tracker. |
superset tasks create
Create a task.
superset tasks create --title "Audit auth flow" --priority highOptions
| Flag | Description |
|---|---|
--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>required | Task 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 urgentArguments
| Name | Description |
|---|---|
<idOrSlug>required | Task ID or slug, or a Linear identifier (ENG-123). |
Options
| Flag | Description |
|---|---|
--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_bArguments
| Name | Description |
|---|---|
<idOrSlug...>required | Task IDs or slugs to delete. |
Options
| Flag | Description |
|---|---|
--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 listOptions
| Flag | Description |
|---|---|
--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
| Flag | Description |
|---|---|
--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
| Name | Description |
|---|---|
<id>required | Automation 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.mdOptions
| Flag | Description |
|---|---|
--name <name>required | Automation 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). |
--cloud | Run 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-session | Deliver 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 slackOptions
| Flag | Description |
|---|---|
--group <group>required | Provider 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
| Name | Description |
|---|---|
<id>required | Automation ID. |
Options
| Flag | Description |
|---|---|
--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`. |
--cloud | Move the automation to the cloud. Pass `--environment` or `--workspace` with it. |
--project <projectId> | New v2 project ID. |
--workspace <workspaceId> | New v2 workspace ID. |
--session | Switch 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-session | Continue 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-tags | Remove every tag (runs stop grouping). Mutually exclusive with --tag. |
--group <name> | Move the automation to this group in the automations table. |
--clear-group | Remove the automation from its group. Mutually exclusive with --group. |
--enabled / --no-enabled | Calls 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.mdArguments
| Name | Description |
|---|---|
<id>required | Automation 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
| Name | Description |
|---|---|
<id>required | Automation ID. |
Options
| Flag | Description |
|---|---|
--from-file <path>required | Read 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
| Name | Description |
|---|---|
<id>required | Automation 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
| Name | Description |
|---|---|
<id>required | Automation 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
| Name | Description |
|---|---|
<id>required | Automation ID. |
superset automations pause <id>
Pause an automation (sets enabled: false).
superset automations pause aut_…Arguments
| Name | Description |
|---|---|
<id>required | Automation ID. |
superset automations resume <id>
Resume an automation (sets enabled: true). The API recomputes
nextRunAt on resume.
superset automations resume aut_…Arguments
| Name | Description |
|---|---|
<id>required | Automation ID. |
superset automations run <id>
Dispatch an automation immediately. Does not wait for completion.
superset automations run aut_…Arguments
| Name | Description |
|---|---|
<id>required | Automation ID. |
superset automations logs <id>
List recent runs for an automation.
superset automations logs aut_…Arguments
| Name | Description |
|---|---|
<id>required | Automation ID. |
Options
| Flag | Description |
|---|---|
--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 listHuman 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 terminalFontSizeArguments
| Name | Description |
|---|---|
<key>required | Setting 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 pingArguments
| Name | Description |
|---|---|
<key>required | Setting key from `settings list`. |
<value>required | New 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 terminalFontSizeArguments
| Name | Description |
|---|---|
<key>required | Setting 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 listHuman mode: table with ID, NAME, TYPE, SOURCE, ACTIVE.
superset settings theme get
Print the active theme.
superset settings theme getsuperset 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.jsonArguments
| Name | Description |
|---|---|
<id>required | Theme id (built-in or custom). |
Options
| Flag | Description |
|---|---|
--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-themeArguments
| Name | Description |
|---|---|
<file>required | Path 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-themeArguments
| Name | Description |
|---|---|
<id>required | Custom 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 monokaiArguments
| Name | Description |
|---|---|
[theme] | Theme id, or `system` to follow the OS appearance. |
Options
| Flag | Description |
|---|---|
--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 compinitArguments
| Name | Description |
|---|---|
<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 --jsonReturns
--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.