Agent skill

Brigade Node Connection Diagnostics

by spinabot in spinabot/brigade

Diagnoses why a Brigade companion app can't pair or connect, by first identifying the real node-to-gateway route and then fixing auth.

MITAuto-check passedDevOps & Cloud

Install Brigade Node Connection Diagnostics

skills CLI
$ npx skills add spinabot/brigade --skill node-connect -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install spinabot/brigade node-connect --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/spinabot/brigade.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/node-connect .claude/skills/node-connect && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
node-connect
GitHub stars
11k
Token cost
~1.2k tokens
SKILL.md length
510 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

Diagnoses why a Brigade companion app can't pair or connect, by first identifying the real node-to-gateway route and then fixing auth.

  • Diagnosing a failed QR or setup-code pairing for a Brigade companion app
  • SKILL.md covers Topology first, If ambiguous, ask first, Canonical checks and Read the result, not guesses, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Figuring out why local Wi-Fi works but a Tailscale or public connection doesn't

What it does

This skill separates four topologies, same machine, same LAN, same Tailscale tailnet, and a public URL through a reverse proxy, and refuses to mix fixes across them, for example never switching to Tailscale for a plain local Wi-Fi problem. When the setup or failure report is vague it asks short clarifying questions, including whether a pending pairing request shows up in the device list, rather than guessing from a bare can't-connect report.

It reads a canonical status check as the source of truth, since it returns the exact gateway URL the app should use along with which config path won, among a bind mode, a Tailscale mode, a configured public URL, or a remote gateway URL. A result saying the gateway is bound only to loopback means the remote node genuinely cannot connect yet, and the fix is to correct the bind setting and generate a fresh setup code rather than retry the old one.

When your agent uses it

  • Diagnosing a failed QR or setup-code pairing for a Brigade companion app
  • Figuring out why local Wi-Fi works but a Tailscale or public connection doesn't
  • Fixing an unauthorized or expired bootstrap token error

Example prompts

  • “My Android app can't pair with Brigade over Tailscale, what's wrong?”
  • “Local Wi-Fi connects fine but the public URL doesn't, diagnose this.”
  • “Check why the gateway status says it's bound to loopback only.”

Requirements

  • Brigade CLI access
  • Tailscale, when diagnosing a tailnet route

What it can do on your machine

Read from SKILL.md and the folder at commit 4c2a18f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Brigade Node Connection Diagnostics loads about 1.2k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 510 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from spinabot/brigade at commit 4c2a18f, republished under its MIT licence (© spinabot). 510 words, ~1,157 tokens.

Download SKILL.mdSave it as .claude/skills/node-connect/SKILL.md (or your agent's skills folder).
name
node-connect
description
Diagnose Brigade node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.

Node Connect

Goal: find the one real route from node -> gateway, verify Brigade is advertising that route, then fix pairing/auth.

Topology first

Decide which case you are in before proposing fixes:

  • same machine / emulator / USB tunnel
  • same LAN / local Wi-Fi
  • same Tailscale tailnet
  • public URL / reverse proxy

Do not mix them.

  • Local Wi-Fi problem: do not switch to Tailscale unless remote access is actually needed.
  • VPS / remote gateway problem: do not keep debugging localhost or LAN IPs.

If ambiguous, ask first

If the setup is unclear or the failure report is vague, ask short clarifying questions before diagnosing.

Ask for:

  • which route they intend: same machine, same LAN, Tailscale tailnet, or public URL
  • whether they used QR/setup code or manual host/port
  • the exact app text/status/error, quoted exactly if possible
  • whether brigade devices list shows a pending pairing request

Do not guess from can't connect.

Canonical checks

Prefer brigade qr --json. It uses the same setup-code payload Android scans.

bash
brigade config get gateway.mode
brigade config get gateway.bind
brigade config get gateway.tailscale.mode
brigade config get gateway.remote.url
brigade config get gateway.auth.mode
brigade config get gateway.auth.allowTailscale
brigade config get plugins.entries.device-pair.config.publicUrl
brigade qr --json
brigade devices list
brigade nodes status

If this Brigade instance is pointed at a remote gateway, also run:

bash
brigade qr --remote --json

If Tailscale is part of the story:

bash
tailscale status --json

Read the result, not guesses

brigade qr --json success means:

  • gatewayUrl: this is the actual endpoint the app should use.
  • urlSource: this tells you which config path won.

Common good sources:

  • gateway.bind=lan: same Wi-Fi / LAN only
  • gateway.bind=tailnet: direct tailnet access
  • gateway.tailscale.mode=serve or gateway.tailscale.mode=funnel: Tailscale route
  • plugins.entries.device-pair.config.publicUrl: explicit public/reverse-proxy route
  • gateway.remote.url: remote gateway route

Root-cause map

If brigade qr --json says Gateway is only bound to loopback:

  • remote node cannot connect yet
  • fix the route, then generate a fresh setup code
  • gateway.bind=auto is not enough if the effective QR route is still loopback
  • same LAN: use gateway.bind=lan
  • same tailnet: prefer gateway.tailscale.mode=serve or use gateway.bind=tailnet
  • public internet: set a real plugins.entries.device-pair.config.publicUrl or gateway.remote.url

If gateway.bind=tailnet set, but no tailnet IP was found:

  • gateway host is not actually on Tailscale

If qr --remote requires gateway.remote.url:

  • remote-mode config is incomplete

If the app says pairing required:

  • network route and auth worked
  • approve the pending device
bash
brigade devices list
brigade devices approve --latest

If the app says bootstrap token invalid or expired:

  • old setup code
  • generate a fresh one and rescan
  • do this after any URL/auth fix too

If the app says unauthorized:

  • wrong token/password, or wrong Tailscale expectation
  • for Tailscale Serve, gateway.auth.allowTailscale must match the intended flow
  • otherwise use explicit token/password
Show full SKILL.md (133 more words)Show less

Fast heuristics

  • Same Wi-Fi setup + gateway advertises 127.0.0.1, localhost, or loopback-only config: wrong.
  • Remote setup + setup/manual uses private LAN IP: wrong.
  • Tailnet setup + gateway advertises LAN IP instead of MagicDNS / tailnet route: wrong.
  • Public URL set but QR still advertises something else: inspect urlSource; config is not what you think.
  • brigade devices list shows pending requests: stop changing network config and approve first.

Fix style

Reply with one concrete diagnosis and one route.

If there is not enough signal yet, ask for setup + exact app text instead of guessing.

Good:

  • The gateway is still loopback-only, so a node on another network can never reach it. Enable Tailscale Serve, restart the gateway, run brigade qr again, rescan, then approve the pending device pairing.

Bad:

  • Maybe LAN, maybe Tailscale, maybe port forwarding, maybe public URL.

© spinabot, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/node-connect of spinabot/brigade.

Open the folder on GitHubat commit 4c2a18f

Compare with similar skills

Brigade Node Connection Diagnostics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Brigade Node Connection Diagnostics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Brigade Node Connection Diagnostics this skillspinabot/brigade11k—~1.2kAutomated safety check: PassMIT
Frb Dev Envfzyzcjy/flutter_rust_bridge5.4k—~5.5kAutomated safety check: PassMIT
Godot Export Buildsthedivergentai/GD-Agentic-Skills803—~3kAutomated safety check: PassLGPL-3.0
Mdm Device ManagementBagelHole/DevOps-Security-Agent-Skills1.1k—~5.7kAutomated safety check: NotesMIT
App Store Screenshots GeneratorParthJadhav/app-store-screenshots7.2k—~14kAutomated safety check: PassMIT
Phoneagentrounak/PhoneAgent798—~2.2kAutomated safety check: PassMIT

Similar skills

  • Frb Dev Env

    fzyzcjy/flutter_rust_bridge

    A skill your agent uses when the user wants Docker-based FRB development or Tart-based iOS Simulator validation.

    5.4k GitHub stars~5.5k tokensUpdated yesterday
    MobileAuto-check passed
  • Godot Export Builds

    thedivergentai/GD-Agentic-Skills

    Expert patterns for multi-platform exports including export templates (Windows/Linux/macOS/Android/iOS/Web), command-line exports (headless mode), platform-specific settings (codesign, notarization…

    803 GitHub stars~3k tokensUpdated 28 days ago
    DevOps & CloudAuto-check passed
  • Mdm Device Management

    BagelHole/DevOps-Security-Agent-Skills

    Manage and secure company devices with MDM solutions — enroll macOS, Windows, iOS, and Android devices, enforce security policies, and automate software deployment.

    1.1k GitHub stars~5.7k tokensUpdated 4 mo ago
    DevOps & CloudAuto-check: notes
  • App Store Screenshots Generator

    ParthJadhav/app-store-screenshots

    Scaffolds a Next.js editor for designing App Store and Google Play screenshots as ads and exporting them at every required size, for iOS, Mac and Android.

    7.2k GitHub stars~14k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Phoneagent

    rounak/PhoneAgent

    Control a connected iPhone, iOS simulator, Android emulator, or Android device from macOS through PhoneAgent's JSON-RPC bridge.

    798 GitHub stars~2.2k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Jetpack Compose

    darriousliu/PiPixiv

    Jetpack Compose expert skill for Android UI development. An agent skill from darriousliu/PiPixiv.

    262 GitHub stars~1.5k tokensUpdated today
    MobileAuto-check passed

More from spinabot/brigade

All 11 skills in this repo
  • Canvas Display

    spinabot/brigade

    Shows HTML content such as games, dashboards, visualizations and demos on a connected Brigade node's canvas, using a local canvas host server and a node bridge.

    11k GitHub stars~1.4k tokensUpdated 4 days ago
    Auto-check passed
  • Word Document Builder

    spinabot/brigade

    Creates and edits Word documents along four paths of rising capability, from a quick tool to the docx library, an OOXML round-trip and pandoc, then verifies the file.

    11k GitHub stars~2.1k tokensUpdated 4 days ago
    Auto-check passed
  • Writes HTML compositions with a GSAP timeline that the render_video tool turns into deterministic MP4 videos from data, text or layouts.

    11k GitHub stars~1.6k tokensUpdated 4 days ago
    Auto-check passed
  • OAuth Account Setup

    spinabot/brigade

    Connects an OAuth 2.0 account such as Gmail with the built-in oauth_authorize tool: an authorization link, automatic code capture and sealed token storage.

    11k GitHub stars~878 tokensUpdated 4 days ago
    Auto-check passed
  • Brigade PDF Toolkit

    spinabot/brigade

    Creates and edits PDFs in Brigade through four paths: a quick content tool, an edit tool for forms and merging, a pdf-lib script for full control, and HTML-to-PDF for styled layouts.

    11k GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Share Skills

    spinabot/brigade

    Explains how a skill folder should be laid out and bundled as a tar archive for sharing, with a checklist covering name, description and eligibility keys.

    11k GitHub stars~759 tokensUpdated 4 days ago
    Auto-check passed

Works with

Questions about Brigade Node Connection Diagnostics

What does Brigade Node Connection Diagnostics do?

Diagnoses why a Brigade companion app can't pair or connect, by first identifying the real node-to-gateway route and then fixing auth. This skill separates four topologies, same machine, same LAN, same Tailscale tailnet, and a public URL through a reverse proxy, and refuses to mix fixes across them, for example never switching to Tailscale for a plain local Wi-Fi problem. When the setup or failure report is vague it asks short clarifying questions, including whether a pending pairing request shows up in the device list, rather than guessing from a bare can't-connect report.

When should I use Brigade Node Connection Diagnostics?

Brigade Node Connection Diagnostics fits situations like: diagnosing a failed QR or setup-code pairing for a Brigade companion app; figuring out why local Wi-Fi works but a Tailscale or public connection doesn't; fixing an unauthorized or expired bootstrap token error.

How do I install Brigade Node Connection Diagnostics in Claude Code?

Run `npx skills add spinabot/brigade --skill node-connect -a claude-code`. Or copy the skill folder (skills/node-connect in spinabot/brigade) into .claude/skills/node-connect in your project. Claude Code loads it when a task matches its description.

How do I install Brigade Node Connection Diagnostics in Codex?

Run `npx skills add spinabot/brigade --skill node-connect -a codex`. Or copy the skill folder (skills/node-connect in spinabot/brigade) into .agents/skills/node-connect in your project. Codex loads it when a task matches its description.

Can I use Brigade Node Connection Diagnostics in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add spinabot/brigade --skill node-connect -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/node-connect, .gemini/skills/node-connect, .github/skills/node-connect and .opencode/skills/node-connect in your project.

What does Brigade Node Connection Diagnostics need to run?

SKILL.md names no scripts, command-line tools or credentials: Brigade Node Connection Diagnostics is instructions for the agent only. Our summary lists: Brigade CLI access; Tailscale, when diagnosing a tailnet route.

Does Brigade Node Connection Diagnostics access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Brigade Node Connection Diagnostics safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Brigade Node Connection Diagnostics use?

Brigade Node Connection Diagnostics is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Brigade Node Connection Diagnostics use?

About 1.2k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Brigade Node Connection Diagnostics?

Skills that share tags, products or a category with Brigade Node Connection Diagnostics: Frb Dev Env (fzyzcjy/flutter_rust_bridge, 5.4k stars), Godot Export Builds (thedivergentai/GD-Agentic-Skills, 803 stars), Mdm Device Management (BagelHole/DevOps-Security-Agent-Skills, 1.1k stars) and App Store Screenshots Generator (ParthJadhav/app-store-screenshots, 7.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Brigade Node Connection Diagnostics?

spinabot (a GitHub organization) maintains it in spinabot/brigade, which has 11,276 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 3, 2026.

Source: spinabot/brigade on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.