CLI
Superset CLI Reference
Complete reference for Superset command-line interface, including commands and flags.
The CLI is currently in Beta. Commands and flags are still evolving. Make sure you're on the latest version of the CLI if you run into issues.
Synopsis
superset <command> [subcommand] [options]Run superset --help for the top-level command list, or
superset <command> --help for any group.
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 .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.
When iterating on one script, pass --upsert so each revision replaces the
last instead of piling up copies in the Scripts bar.
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
~/.superset/config.json.
Single-org accounts are selected automatically. With multiple orgs and a
TTY, the CLI prompts; with multiple orgs and no TTY, you must pass
--organization or the command exits 1 listing the available slugs.
superset auth login
superset auth login --organization acmeTo sign in with an API key (useful for CI or any environment where the
OAuth browser flow isn't an option), pass --api-key. The CLI validates
the key, stores it at ~/.superset/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 Superset API key (`sk_live_…`) at `~/.superset/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. |
--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.
superset stopReturns
The stopped host server, if one was running.
--json
// No manifest
{ running: false }
// Manifest existed
{ pid: number; organizationId: string }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 Superset CLI and host server binary.
superset update
Downloads the matching superset-<platform>.tar.gz from GitHub Releases
and atomically replaces the install root. Only available in built
binaries; running from bun run dev errors out.
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 ~/.superset/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 fresh 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 is registered on the host with 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. Counterpart to create for the
"new machine, repo already in the org" case.
Find the project ID via projects list.
Idempotent: re-running against a project that's 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. Host registration
happens via superset start on each machine. There is no
separate registration command.
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 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, an isolated worktree, 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: no cloud roundtrip, works
offline. Otherwise it routes through the cloud API and the relay.
If the resolved host is the local machine but the host server isn't
responding, the CLI errors out and points you at superset start rather
than silently falling through to the cloud.
superset workspaces list
List workspaces on a host. Defaults to this machine; pass --host <id> for
another 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 doesn't know the project's name.
Options
| Flag | Description |
|---|---|
--host <id> | List workspaces on a specific host machineId. |
--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. Local creation requires a host that
supports local workspaces; 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 ~/.superset/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.
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 — no folder setup needed
superset workspaces create --project prj_… --name "perf-spike" --branch perf/spike --local --tag perfOptions
| Flag | Description |
|---|---|
--project <projectId> | Project ID. Required unless --session or --cloud is set. |
--session | Create a project-less session (a managed scratch folder). Mutually exclusive with --project and --cloud. |
--name <name> | Workspace name. Required when `--project` is set; optional for sessions. |
--checkout <local|worktree> | Use the shared project checkout or an isolated worktree (default). Requires --project; incompatible with --cloud. |
--branch <branch> | Workspace branch. Required unless `--pr`, `--task`, or `--checkout local` is set. |
--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> | Branch to fork from when `--branch` does not exist. Defaults to the project default branch. |
--skip-branch-prefix | Use `--branch` exactly as given instead of namespacing it under the project branch prefix. |
--host <id> | Target host machineId. Mutually exclusive with `--local`; one is required. |
--local | Target this machine. Mutually exclusive with `--host`; one is required. |
--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. |
--tag <tag> | Workspace tag. Repeatable. Each tag groups the workspace into a sidebar folder of the same name. |
superset workspaces delete <id...>
Delete one or more workspaces on the target host (default: this machine).
superset workspaces delete ws_a ws_b ws_cArguments
| Name | Description |
|---|---|
<id...>required | Workspace IDs to delete. |
Options
| Flag | Description |
|---|---|
--host <id> | Host the workspaces live on. |
--local | Target this machine (the default). |
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 (default: this machine). |
--field <name> | Print a single field's raw value (e.g. name, branch, worktreePath). Alias: -f. |
superset workspaces update <id>
Update a workspace on its host (default: this machine). --tag replaces the
whole tag set — tagging is how workspaces group into sidebar folders, so
retagging moves the workspace between folders.
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-taskArguments
| Name | Description |
|---|---|
<id>required | Workspace UUID. |
Options
| Flag | Description |
|---|---|
--host <id> | Host the workspace lives on (default: this machine). |
--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. |
superset workspaces open <id>
Open a workspace in the Superset desktop app.
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 (default: this machine). |
--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 are automatically adopted into
panes while their workspace is open. Opening the workspace later also creates
panes for running terminal sessions that aren't already attached, without
stealing focus from the active tab. workspaces open can't focus a specific
session, so use a session deep link when focus matters. The same deep link
creates or focuses the pane for a Superset 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.
agents
Agents are terminal-agent rows configured on a host (the same rows shown in
Settings → Agents on that machine). Each row stores a command, args,
prompt-transport mode, and environment used to launch the agent in a fresh
terminal session inside a workspace.
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 on its host (default: this machine): starts the named preset (or HostAgentConfig instance) in a fresh terminal session there.
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…Agent models
Model is an explicit override for one launch. If you omit --model, Superset
passes no model flag and the agent uses its own configured 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-4-8. 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 Superset chat, reject an explicit model override.
Agent effort levels
Effort is an explicit override for one launch. If you omit --effort,
Superset passes no effort flag and the agent uses its own configured 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 |
| Mastracode | off, low, medium, high, xhigh |
| Pi | off, minimal, low, medium, high, xhigh |
| Copilot | low, medium, high, xhigh |
Other agents, including Superset chat, currently use their own default and reject an explicit effort override.
Options
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID to create the agent session in. |
--host <id> | Host the workspace lives on (default: 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` is set. |
--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. |
--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. |
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
Create a terminal session in an existing workspace on its host (default: this machine): opens a fresh PTY in the 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 (default: 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 (default: 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 (default: this machine). |
--max-lines <n> | Limit how many trailing lines to return. |
superset terminals send
Send a follow-up message to a terminal already running in a workspace, e.g. to give an agent new instructions mid-session.
Options
| Flag | Description |
|---|---|
--workspace <id>required | Workspace UUID. |
--terminal <id>required | Terminal session ID. |
--text <string>required | Text to deliver to the terminal. |
--no-submit | Stage the text without pressing Enter. |
--host <id> | Host the workspace lives on (default: this machine). |
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 (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/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 a standalone host with no desktop attached has no panes and
these commands error. 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 — the ergonomic path 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). |
tasks (alias: t)
Tasks are units of work in your organization's task tracker.
superset tasks list
List tasks in the active organization.
superset tasks list --assignee-me
superset t list -s "auth" --jsonOptions
| Flag | Description |
|---|---|
--status <id> | Filter by status ID. |
--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. |
--project <id> | Filter by Linear project id. |
--project-name <name> | Filter by Linear project name (prefix, case-insensitive). |
--cycle <id> | Filter by Linear cycle id. |
--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. |
superset tasks create
Create a task.
superset tasks create --title "Audit auth flow" --priority highOptions
| Flag | Description |
|---|---|
--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. |
Options
| Flag | Description |
|---|---|
--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.
superset tasks delete tsk_a tsk_bArguments
| Name | Description |
|---|---|
<idOrSlug...>required | Task IDs or slugs to delete. |
superset tasks statuses list
List task statuses in the active organization. Use the returned IDs with
tasks list --status, tasks create --status-id, or
tasks update --status-id.
superset tasks statuses listHuman mode: table with NAME, TYPE, POS, ID.
--quiet: status IDs.
automations (alias: auto)
Scheduled agent runs. Schedules use RFC 5545 RRULE bodies, e.g.
FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=9;BYMINUTE=0.
superset automations list
List automations in the active organization.
Options
| Flag | Description |
|---|---|
--name <text> | Case-insensitive substring filter on the automation name. Alias: -n. |
Human mode: table with ID, NAME, 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. 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.
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>required | RFC 5545 RRULE schedule. |
--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 (default: this machine). |
--agent <agent> | Host agent presetId, instance UUID, or 'superset' for built-in chat. Default: claude. |
--tag <tag> | Workspace tag applied to each run's created workspace. Repeatable. Default: automation. |
superset automations update <id>
Update an automation's metadata (name, schedule, 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. |
--timezone <iana> | New timezone. |
--dtstart <iso8601> | New start time. |
--host <hostId> | New target host. |
--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'. |
--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. |
--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 delete <id>
Delete an automation.
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 Superset 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
immediately, themes included, no restart (the command output confirms
with "refreshed immediately" / "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`. |
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.