Install
$ agentstack add skill-dotnet-arcade-skills-maestro-cli ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Maestro CLI
Query Maestro/BAR data via the mstro CLI tool instead of loading MCP tools into context. Same data, same caching, zero context tax — agents discover capabilities progressively through --help and mstro guide.
When to Use This Skill
Use this skill when:
- You need Maestro/BAR data but the maestro MCP server isn't configured
- You're scripting or chaining commands with
jq,grep, or other CLI tools - You want structured JSON output for downstream processing
- The task is one-shot (not a multi-turn conversational investigation)
Prefer MCP-based skills (flow-analysis, flow-tracing) when:
- The maestro MCP server is already loaded in your tool list
- You're doing multi-turn conversational investigation
- You need markdown-formatted output with visual indicators
Installation
dotnet tool install -g lewing.maestro.mcp
After installation, mstro is available globally. Verify: mstro --help
> Note: The same package (lewing.maestro.mcp) serves as both a .NET global tool (providing the mstro CLI) and an MCP server (via dotnet dnx). The CLI is what this skill uses.
Authentication
Three-tier cascade (automatic fallback):
MAESTRO_BAR_TOKENenv var — explicit PAT- Cached Entra ID — reuses
darc authenticatecredentials from~/.darc/.auth-record-* - Anonymous — read-only fallback (may be rate-limited)
Run darc authenticate once for persistent credentials.
Progressive Discovery
Don't memorize commands. Discover them:
mstro --help # All commands, one line each
mstro --help # Parameters for a specific command
mstro --schema # JSON response field names (for jq pipelines)
mstro guide # Workflow-organized guide (~3KB)
Before writing jq queries, run --schema to see the response shape:
mstro subscription-health --schema # → shows StaleSubs[].Id, .BuildsBehind, etc.
mstro latest-build --schema # → shows Id, Repository, Commit, etc.
Common Patterns
All query commands support --json (structured output) and --no-cache (fresh data).
Check subscription health
mstro subscription-health --target-repository https://github.com/dotnet/dotnet --json
Find latest build
mstro latest-build https://github.com/dotnet/runtime --channel-name ".NET 10.0.1xx SDK" --json
Check codeflow status
mstro codeflow-statuses --json
Trace a build graph
mstro build-graph --json
Trigger a stale subscription
# Provide --source-repository + --channel-name (auto-resolves latest build)
mstro trigger-subscription --source-repository https://github.com/dotnet/runtime --channel-name ".NET 10.0.1xx SDK"
# Or provide --build-id directly. Add --force to overwrite stale PR branch.
Chaining with jq
Use mstro --schema to see all response fields before writing jq queries.
# Count stale subscriptions (StaleSubs[].Id, .BuildsBehind, .SourceRepository, .ChannelName)
mstro subscription-health --target-repository https://github.com/dotnet/dotnet --json | jq '.StaleSubs | length'
# Filter channels by name
mstro channels --json | jq '.[] | select(.Name | contains("10.0"))'
# Get build ID then trace graph
BUILD_ID=$(mstro latest-build https://github.com/dotnet/runtime --json | jq -r '.Id')
mstro build-graph $BUILD_ID --json
Cache
Shared SQLite cache at ~/.mstro/cache.db (WAL mode). Cache is shared between CLI and MCP server instances — using the CLI warms the cache for MCP and vice versa.
mstro cache status— show cache statsmstro cache clear— clear all cached data--no-cacheon any command bypasses cache
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: dotnet
- Source: dotnet/arcade-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.