Skip to content
Agent Orchestration
Command

/metaswarm-setup

Interactive, Claude-guided setup for metaswarm in your project. Detects your stack, asks targeted questions, and customizes everything automatically.

BOOST
From plugin
metaswarm
42116 skills19 agents16 commands2 hooks
Install
$ npx -y skills add dsifry/metaswarm --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/metaswarm-setup

Context preview

What this command does when you run it.

Interactive, Claude-guided setup for metaswarm in your project. Detects your stack, asks targeted questions, and customizes everything automatically.

Command definition

metaswarm-setup.md

Metaswarm Guided Setup

Interactive, Claude-guided setup for metaswarm in your project. Detects your stack, asks targeted questions, and customizes everything automatically.

Usage

/metaswarm-setup

---

Phase 1: Bootstrap Check

Before anything else, verify that metaswarm components are installed.

Step 1.1 — Check for plugin directory

Use the Glob tool to check if `.claude/plugins/metaswarm/` exists:

Glob: .claude/plugins/metaswarm/**/*
  • If files are found, metaswarm components are installed. Proceed to Step 1.2.
  • If NO files are found, tell the user: "Metaswarm components aren't installed yet. Let me install them now." Then run via Bash:
npx metaswarm install

Wait for the command to complete. If it fails, tell the user to check their Node.js installation and try `npm install -g metaswarm` manually.

Step 1.2 — Check for existing project profile

Use the Glob tool to check if `.metaswarm/project-profile.json` exists.

  • If it exists, read it and present the current configuration summary to the user. Use AskUserQuestion to ask:
  • "You already have a metaswarm project profile. What would you like to do?"
  • Options: "Re-run setup (Recommended)" / "Skip setup"
  • If user chooses "Skip setup", stop here with: "Setup skipped. Your existing configuration is unchanged."
  • If user chooses "Re-run setup", continue to Phase 2.
  • If it does NOT exist, continue to Phase 2.

---

Phase 2: Project Detection

You MUST detect all of the following automatically by scanning the project directory. Use the Glob and Read tools — do NOT ask the user for any of this information. Detect everything silently, then present the results.

2.1 — Language Detection

Check for these marker files using Glob at the project root:

| Marker File | Language | |---|---| | `package.json` | Node.js / JavaScript | | `tsconfig.json` | TypeScript (refines Node.js to TypeScript) | | `pyproject.toml` OR `setup.py` OR `requirements.txt` | Python | | `go.mod` | Go | | `Cargo.toml` | Rust | | `pom.xml` OR `build.gradle` OR `build.gradle.kts` | Java | | `Gemfile` | Ruby |

If multiple languages are detected, note all of them but use the primary one (the one with the most infrastructure) for command generation.

If `tsconfig.json` exists alongside `package.json`, the language is "TypeScript" (not just "Node.js").

2.2 — Framework Detection

If `package.json` exists, Read it and check `dependencies` and `devDependencies` for:

| Dependency | Framework | |---|---| | `next` | Next.js | | `nuxt` OR `nuxt3` | Nuxt | | `@angular/core` | Angular | | `svelte` OR `@sveltejs/kit` | SvelteKit | | `react` (without next/nuxt) | React | | `vue` (without nuxt) | Vue | | `express` | Express | | `fastify` | Fastify | | `hono` | Hono | | `@nestjs/core` | NestJS |

If `pyproject.toml` or `requirements.txt` exists, check for:

| Dependency | Framework | |---|---| | `fastapi` | FastAPI | | `django` | Django | | `flask` | Flask |

If `go.mod` exists, Read it and check for:

| Module | Framework | |---|---| | `github.com/gin-gonic/gin` | Gin | | `github.com/labstack/echo` | Echo | | `github.com/gofiber/fiber` | Fiber |

If no framework is detected, set framework to `null`.

2.3 — Package Manager Detection (Node.js only)

If the language is Node.js or TypeScript, check for lock files:

| Lock File | Package Manager | |---|---| | `pnpm-lock.yaml` | pnpm | | `yarn.lock` | yarn | | `bun.lockb` | bun | | `package-lock.json` | npm |

If no lock file is found, default to `npm`.

For non-Node.js languages, set package_manager to `null`.

2.4 — Test Runner Detection

Check in this order (first match wins per ecosystem):

**Node.js / TypeScript:** 1. Glob for `vitest.config.*` — if found, test runner is `vitest` 2. Read `package.json` → if `vitest` in `devDependencies`, test runner is `vitest` 3. Glob for `jest.config.*` — if found, test runner is `jest` 4. Read `package.json` → if `jest` in `devDependencies`, test runner is `jest` 5. Read `package.json` → if `mocha` in `devDependencies`, test runner is `mocha`

**Python:** 1. Read `pyproject.toml` → if `[tool.pytest]` section exists, test runner is `pytest` 2. Check Python dependencies for `pytest` → test runner is `pytest` 3. Default: `pytest` (standard for Python)

**Go:**

  • If `go.mod` exists → test runner is `go test` (built-in)

**Rust:**

  • If `Cargo.toml` exists → test runner is `cargo test` (built-in)

**Java:**

  • If `pom.xml` exists → test runner is `maven` (mvn test)
  • If `build.gradle` exists → test runner is `gradle` (gradle test)

2.5 — Linter Detection

| Marker | Linter | |---|---| | `.eslintrc*` OR `eslint.config.*` files exist, OR `eslint` in devDependencies | eslint | | `biome.json` OR `@biomejs/biome` in devDependencies | biome | | `[tool.ruff]` section in `pyproject.toml` OR `ruff.toml` exists | ruff | | `.golangci.yml` OR `.golangci.yaml` exists | golangci-lint | | `clippy` section in Cargo.toml or `.clippy.toml` exists | clippy |

2.6 — Formatter Detection

| Marker | Formatter | |---|---| | `.prettierrc*` files exist OR `prettier` in devDependencies | prettier | | `biome.json` exists (biome also formats) | biome | | `black` in Python dependencies | black | | `[tool.ruff.format]` section in `pyproject.toml` | ruff format | | `rustfmt.toml` OR `.rustfmt.toml` exists | rustfmt |

Note: If biome is detected as both linter and formatter, report it once as "Biome (lint + format)".

2.7 — Type Checker Detection

| Marker | Type Checker | |---|---| | `tsconfig.json` exists | tsc | | `mypy` in Python deps OR `[tool.mypy]` in `pyproject.toml` | mypy | | `pyright` in Python deps OR `pyrightconfig.json` exists | pyright |

For Go (`go vet`) and Rust (`cargo check`), type checking is built-in — note this but don't list as a separate tool.

2.8 — CI Detection

| Marker | CI System | |---|---| | `.github/workflows/` directory exists (with .yml files inside) | GitHub Actions | | `.gitlab-ci.yml` exists | GitLab CI

Read more
Ships withmetaswarm

A self-improving multi-agent orchestration framework for Claude Code, Gemini CLI, and Codex CLI.

Get the whole plugin

Other commands on metaswarm.