Skip to content
cccskills
FreePublished on GitHub

panes

Arrange tabs and split panes in the Superset desktop app so terminals, tests, and logs appear where needed. Open panes with commands, resize or move them, switch focus, and close extra panes while optionally keeping their terminals running.

OriginalShow the original description

Arrange the tabs and split panes of a Superset workspace in the desktop app from an agent. Use when the user asks to split a pane, open a tab, run a command in a new pane, resize, swap, move, focus, close, or even out panes, lay out a dashboard of terminals, or show them something side by side, including "split this and run the tests on the right", "open the logs in a new tab", "make this pane bigger", "put the server and the tests side by side", "close those extra panes". Not for coordinating worker agents (use superset:orchestrate) or driving web pages (use superset:browser).

See how to install

Good for

  • Showing the server and tests side by side
  • Opening logs in a new tab
  • Resizing and equalizing split panes
  • Closing extra panes while keeping terminals running

Files included (2)

  • SKILL.md6.1 KB
  • agents/openai.yaml216 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Superset Pane Layout

Script the tabs and split panes of a workspace with superset panes. Commands go to the host, then to the desktop app, which applies them to the live layout the user is looking at. Every change is visible immediately, so build layouts the user asked for and clean up what you open.

Establish the control surface

  1. Run superset schema 2>/dev/null | jq -re '.commands[] | select(.path==["panes"]) | .commands[].path[1]' || superset panes --help and require list, split, new-tab, resize, equalize, move, swap, focus, and close. panes is new in CLI 1.38.0. If it is missing, run superset update and recheck. The app-bundled CLI (~/.superset/bin/superset) updates only with the desktop app, so if it still lacks panes, updating the app is the fix.
  2. Resolve the workspace. Inside a workspace, use $SUPERSET_WORKSPACE_ID; otherwise superset workspaces list --local --json and pick the target.
  3. Panes live in the desktop app. A host with no desktop attached (a standalone superset start) has no panes, and an older desktop app answers "This host is too old for superset panes". Surface either rather than retrying.

Read the layout

superset panes list --workspace "$WS" --json

The result has activeTabId and tabs[]. Each tab has layout, a split tree of { type: "split", direction, ratio, first, second } and { type: "pane", paneId } nodes, plus a flat panes[] with each pane's kind (terminal, chat-v3, browser, …), terminalId, active, and the agent running in it with its state. row splits sit side by side and column splits stack; ratio is the first child's share.

Inside a workspace, the pane you are running in is the one whose terminalId equals $SUPERSET_TERMINAL_ID:

ME=$(superset panes list --workspace "$WS" --json \
  | jq -r --arg t "$SUPERSET_TERMINAL_ID" '.tabs[].panes[] | select(.terminalId==$t) | .id')

Change the layout

Every mutating command returns the new pane or tab ID plus the full updated layout, so chain commands from its output instead of listing again. Read IDs with --json | jq -r .paneId (or .tabId, .terminalId); --quiet does not reduce these results to an ID.

GoalCommand
Split a pane, new terminal in the new halfpanes split --workspace $WS --pane P --direction right|left|down|up [--command CMD]
Open a tab with a terminalpanes new-tab --workspace $WS [--command CMD]
Show an existing terminal insteadadd --terminal <terminal-id> to split or new-tab (not with --command)
Set a pane's share of its splitpanes resize --workspace $WS --pane P --ratio 0.05–0.95
Even out every splitpanes equalize --workspace $WS [--tab T]
Exchange two panes, even across tabspanes swap --workspace $WS --pane A --with B
Move a pane beside anotherpanes move --workspace $WS --pane P --to Q --direction right|left|down|up
Move a pane into a tab of its ownpanes move --workspace $WS --pane P --new-tab
Bring a pane and its tab to the frontpanes focus --workspace $WS --pane P
Close a panepanes close --workspace $WS --pane P [--keep-terminal]

Behavior to rely on:

  • Only focus moves focus. split and new-tab add panes without taking the user away from what they are looking at; follow with focus only when the user should see the new pane now.
  • --command types the command into the new terminal's shell. When it exits, its output stays on screen above a prompt, so one-shot commands need no wrapping. A display that should keep refreshing needs its own loop (while true; do clear; …; sleep 2; done).
  • close ends the pane's terminal, as the close button in the app does. Pass --keep-terminal to keep a long-running process alive in the background and reattach it later with --terminal.
  • move closes a tab it leaves empty.
  • A split always halves the pane it splits. Splitting one pane repeatedly gives 50/25/12.5 shares; build the tree, then equalize once.
  • If the desktop app does not confirm a split or new-tab in time, the CLI keeps the terminal it created and says so. Check panes list before retrying, or the retry opens a second pane.

Read what a pane shows

superset terminals read --local --workspace $WS --terminal <terminal-id> --json returns the screen text of a terminal pane, which confirms a command started and shows its output. Pass --local (or --host <id>); without it the CLI looks for a cloud workspace.

Layout recipes

Side by side with the user's pane, tests on the right, a watcher below them:

WS=$SUPERSET_WORKSPACE_ID
R=$(superset panes split --workspace $WS --pane "$ME" --direction right --command 'npm test -- --watch' --json)
TESTS=$(jq -r .paneId <<<"$R")
superset panes split --workspace $WS --pane "$TESTS" --direction down --command 'npm run dev' --json >/dev/null
superset panes resize --workspace $WS --pane "$ME" --ratio 0.6 --json >/dev/null

A grid of N panes in a new tab: open the tab, split the first pane right for each column, split each column down for each row, then equalize --tab.

Clean up

Panes you open stay open, and their terminals keep running. When the work is done, or before rebuilding a layout, close what you created: track the pane IDs you made and panes close each one. Do not close panes you did not create unless the user asks, and never close the pane you are running in.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

10x

FreeSummary

Review how you use Superset and identify unused features that fit your workflow. Get a short list of suggestions, learn about each option, and set up selected features such as scheduled agents, parallel workspaces, or shared tasks.

  • Find unused Superset features worth exploring
  • Set up scheduled agent tasks
  • Start parallel work in separate workspaces
superset-sh/superset15.3KUpdated Oct 18, 2026

automate

FreeSummary

Set up recurring tasks in Superset with an agent prompt, a schedule or event trigger, and a chosen execution workspace. After explicit confirmation, create the automation, check its saved settings, and review a real first run.

  • Scheduling a daily or weekly agent task
  • Starting agent work when a GitHub pull request opens
  • Triggering tasks from selected Slack reactions
superset-sh/superset15.3KUpdated Oct 18, 2026

browser

FreeSummary

Browse pages, click controls, fill fields, and inspect screenshots or console messages through Superset's browser pane. Use it to preview a running web app, check interface behavior, and work through browser tasks in a visible session.

  • Preview a locally running web app
  • Capture screenshots of a page
  • Inspect console errors
superset-sh/superset15.3KUpdated Oct 18, 2026

Build Stripe payments, subscriptions, and invoicing using verified documentation and API parameter definitions. The skill guides product selection, sandbox testing, and webhook handling, where server notifications determine payment and subscription state.

  • Choose Stripe products for payments or recurring billing
  • Implement Checkout or invoice flows
  • Investigate Stripe code that compiles but behaves incorrectly
superset-sh/superset15.3KUpdated Oct 18, 2026

cdp-verification

FreeSummary

Verify desktop UI changes through the Chrome DevTools Protocol, a connection for controlling the running app. Reproduce the user’s actual steps and compare screenshots, measured state, and console errors to establish evidence before and after a fix.

  • Reproducing reported bugs in the running app
  • Comparing UI behavior before and after a fix
  • Checking state across navigation and reopening
superset-sh/superset15.3KUpdated Oct 18, 2026

ci-triage

FreeSummary

Diagnose failed GitHub Actions runs by finding the first meaningful error, separating code problems from infrastructure issues and intermittent failures, and comparing the base branch. Get a focused report explaining the PR’s involvement and recommended next steps.

  • Investigating failed PR checks
  • Separating intermittent test failures from code defects
  • Checking whether the base branch already fails
superset-sh/superset15.3KUpdated Oct 18, 2026

See all skills by superset-sh

Report a problem with this skill