Superset Fleet logo

Superset Fleet

Community
larcane97
superset-fleet

Run several coding agents in parallel in Superset workspaces, each under its own clausona profile (another Claude Code or Codex account, or an API model such as GLM or DeepSeek), then watch them, check their work and retire them. Use when the user wants work spread across accounts or models in Superset, when one account's limits would slow a fan-out, or says "split this across my accounts", "run these on GLM in Superset", "my account is near its limit, keep the workers going". Builds on superset:orchestrate.

Overview

Publisherlarcane97
Repositoryclausona
Skill namesuperset-fleet
Stars
57
Forks
11
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by larcane97 on GitHub. Read the source before you install it.

Installation

Install the Superset Fleet AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/larcane97/clausona/tree/main/plugins/superset-fleet/skills/superset-fleet
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/larcane97/clausona.git /tmp/clausona
mkdir -p .claude/skills
cp -r /tmp/clausona/plugins/superset-fleet/skills/superset-fleet .claude/skills/superset-fleet
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Superset Fleet in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Superset Fleet on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Superset Fleet is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Superset fleet on clausona profiles

superset:orchestrate (in Claude Code) or superset-orchestrate (in Codex) is the protocol: a coordinator table, one workspace per task, worker briefs that end in a SUPERSET_WORKER_DONE or SUPERSET_WORKER_BLOCKED envelope, monitoring and follow-ups. Load it and follow it. fleet-core holds the clausona rules: which profile runs each worker, launch arguments, limits, judging, retiring and the report. This skill adds the Superset steps.

0. Load the shared rules

Load the fleet-core skill first and follow it. In Claude Code, invoke it with the Skill tool. If that fails, or you run in Codex, read the first of these files that exists, where <base> is this skill's base directory:

  • <base>/../../../fleet-core/skills/fleet-core/SKILL.md
  • <base>/../../../../fleet-core/*/skills/fleet-core/SKILL.md (if several versions match, read the highest)

If none exists, stop and tell the user to install it: claude plugin install fleet-core@clausona in Claude Code, or codex plugin add fleet-core@clausona in Codex.

1. Reaching Superset

Stop and tell the user what is missing if any of these fails.

  1. superset:orchestrate (Claude Code) or superset-orchestrate (Codex) is available.
  2. Choose how to reach Superset:
    • If superset auth whoami succeeds, use the CLI path: the superset commands below, as orchestrate does. Check a command's --help before its first use, because the CLI changes quickly.
    • Otherwise use the helper path. node <base>/scripts/superset-host.mjs status must print "ok": true.
      • The helper calls the Superset host service on this machine with the token from its manifest, and never prints the token.
      • Every helper command prints JSON.
      • If it says the host API has changed, stop and pass that message on.

Below, H means node <base>/scripts/superset-host.mjs. H trust, H terminals wait, H terminals read --source transcript and H workspaces delete are used on both paths.

StepCLI pathHelper path
Projectssuperset projects list --jsonH projects
Agent configssuperset agents list --local --jsonH agents configs
New workspacesuperset ws create --local --project <id> --name <name> --branch <branch> --jsonH workspaces create --project <id> --name <name> --branch <branch>
Rename workspacesuperset ws update --local <id> --name <name> --jsonH workspaces rename <id> --name <name>
Worktree pathsuperset ws get --local <id> --jsonH workspaces list --project <id> (worktreePath)
Start a workersuperset agents create --local --workspace <id> --agent <config> --prompt "$(cat <brief file>)" --jsonH agents run --workspace <id> --agent <config> --prompt-file <brief file>
Hand a task oversuperset agents create --local --workspace <id> --agent <config> --from-terminal <terminal> --jsonH agents run --workspace <id> --agent <config> --from-terminal <terminal>
Terminalssuperset terminals list --local --workspace <id> --jsonH terminals list --workspace <id>
Read the screensuperset terminals read --local --workspace <id> --terminal <terminal> --jsonH terminals read --workspace <id> --terminal <terminal>
Read the transcriptH terminals read --workspace <id> --terminal <terminal> --source transcriptsame
Sendsuperset terminals send --local --workspace <id> --terminal <terminal> --text "$(cat <text file>)" --jsonH terminals send --workspace <id> --terminal <terminal> --text-file <text file>
Closesuperset terminals close --local --workspace <id> --terminal <terminal> --jsonH terminals close --workspace <id> --terminal <terminal>
Wait for workersH terminals wait --workspace <id> --terminal <terminal> … --seen <mark> …same
Delete workspaceH workspaces delete <id>same

Write every brief and follow-up to a file and pass the file, as the table does. Start each one with a word, not - or ---: Claude Code reads a brief that starts with - as an option, and the helper refuses one.

Reading the screen returns only the rows the terminal shows, however many --max-lines asks for. A worker's envelope starts with its marker line, so once its summary, files, checks and handoff run taller than the screen, the marker has scrolled off. The transcript gives the last 36000 characters (--max-chars <n> asks for fewer). With "source": "harness" it is Superset's record of the agent's session, as User: and Assistant: turns: it keeps the whole reply, and keeps it after the worker compacts. With another source, Superset read it off the terminal, which may hold no more than the screen.

2. Profiles as Superset agents

A worker runs on a profile through a Superset agent config whose command is clausona run <profile> -- <args>. List the configs and match each one's args[1] to a profile.

  • Claude Code configs take the arguments from fleet-core section 4. Superset ignores a launch's model and effort for custom configs, so they go in the config's args.
  • Codex configs take -s <sandbox> -a <policy> -c check_for_update_on_startup=false -c mcp_servers={}, with the sandbox and policy from fleet-core section 4, plus -m and -c model_reasoning_effort=… when wanted. Leave hooks on, unlike in fleet-core section 4: in a Superset terminal, the codex that clausona starts goes through Superset's wrapper, which turns hooks on and reports each turn's end to Superset. That is what H terminals wait reads.
  • Label: <Tool> · <profile> (<model>), for example Claude · work (Sonnet 5.5) or Codex · personal (GPT-5.5).

When a profile the plan needs has no config:

  • CLI path: the CLI cannot add one. Give the user the label, the command (the output of command -v clausona) and the args, to add under Superset → Settings → Agents, and wait.
  • Helper path: show the user the config. Only after they agree, run H agents add-config --label "<label>" --profile <profile> --command "$(command -v clausona)" -- <args>.

3. Starting a worker

For each task: create the workspace, make its worktree trusted for the worker's profile, then start the worker. Name the workspace <short task> · <profile label>, for example Paths · work (Opus 5.5), so the Superset sidebar shows which account runs where. Keep it under 26 characters: the sidebar cuts longer names. The name stays what it was at creation, so rename the workspace ("Rename workspace" in the table) when it stops being true: when its task moves to another profile (section 5), or when you give its worker a different task. Keep the same <short task> · <profile label> form.

  1. Trust.
    • Claude Code profiles: before starting, run H trust --config-dir <profile configDir> --path <worktree path>, wait 3 seconds, then run it again with --check. If trusted is false, repeat. Never skip this: a worker that meets the trust question sits there, and Enter picks "No, exit".
    • A Claude Code that is starting rewrites that file and can drop an entry written just before. So start workers on the same profile one at a time, each after the previous one shows its first output.
    • Codex profiles: after starting, read the worker's screen. If it asks "Trust this folder?" about this repository, send Enter with H terminals send --workspace <id> --terminal <terminal> --text '': the highlighted answer is "Trust and continue".
  2. The brief. Write it to a file, as fleet-core section 5 says, and start the worker with it.
  3. Record in the table: the workspace id, the terminal id (sessionId), the branch and the profile. The terminals listing shows each running agent with account.directory, the config dir it really runs on; check that it is the profile you chose.

The user can open any worker's tab in Superset, read along and type into it at any time.

4. Waiting

After starting the workers, and after handling each event, run H terminals wait with a --workspace and a --terminal for every worker whose task is not finished. After a hand-over, use the new terminal's id. A shell tab or an agent the user opened in the same workspace then does not count. In Claude Code, run it as a background task. In Codex, run it in the foreground with --timeout 180.

It returns as soon as one worker needs you. It judges this from Superset's record of each agent's last hook event, not from the screen, for Claude Code and Codex workers alike:

  • stopped: its turn ended. reply holds the worker's last message, or its last 8000 characters when it is longer, from the transcript. Look for the envelope there first. When there is no reply, or no envelope in it, read the transcript. If its source is not harness, use fleet-core's last-reply.mjs for a Claude Code worker. Then read the screen (fleet-core section 8). A worker that compacts while idle reports stopped once more; its reply is still the message it ended its turn with.
  • quiet: no event for 5 minutes. Read its screen. It is often a permission prompt or a startup question: never answer a permission prompt yourself.
  • gone: its terminal exited.
  • timeout: nothing for the whole timeout. Read the screens, then wait again.

Each stopped and quiet result carries a seen mark. Pass back every mark you have handled, as --seen <mark>, in every later wait. Otherwise a worker waiting at a prompt, or one that has not yet picked up your follow-up, makes each wait return at once.

5. When an account runs out

Pick another profile by fleet-core section 3.

  • Same tool: make the worktree trusted for the new profile (section 3), then hand the task over in the same workspace ("Hand a task over" in the table). Use that profile's config and the stopped worker's terminal.
  • Other tool: start a new worker in the same workspace with the brief and the hand-over paragraph from fleet-core section 9.

Then close the old terminal, and rename the workspace for the new profile (section 3), for example to Paths · side (Opus 5.5). Record the new terminal id, and wait on it from now on.

6. Retiring

Retiring a worker deletes its Superset workspace. That stops the agent, closes its terminals and removes its worktree, even when it holds uncommitted work. Delete only with H workspaces delete <id>, on both paths. Right before it deletes, it checks fleet-core section 11's conditions 2 and 3 itself, and refuses when either fails. superset ws delete checks nothing. After deleting, confirm the worktree directory is gone.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Superset Fleet AI skill do?

Run several coding agents in parallel in Superset workspaces, each under its own clausona profile (another Claude Code or Codex account, or an API model such as GLM or DeepSeek), then watch them, check their work and retire them. Use when the user wants work spread across accounts or models in Superset, when one account's limits would slow a fan-out, or says "split this across my accounts", "run these on GLM in Superset", "my account is near its limit, keep the workers going". Builds on superset:orchestrate.

Why use Superset Fleet on TypingMind?

Because you install it once and use it with any model. Superset Fleet is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Superset Fleet in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/larcane97/clausona/tree/main/plugins/superset-fleet/skills/superset-fleet. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Superset Fleet?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Superset Fleet?

As many as you like. As long as a model supports skills, you can use Superset Fleet with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Superset Fleet AI skill free?

Yes. It is published on GitHub by larcane97 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇