Agent skill

Pyats Troubleshoot

by automateyournetwork in automateyournetwork/netclaw

Systematic network troubleshooting - connectivity, routing, interface, protocol, and performance issues using structured OSI-layer and divide-and-conquer methodology, via direct CLI/pyATS access.

Apache-2.0Auto-check passed

Install Pyats Troubleshoot

skills CLI
$ npx skills add automateyournetwork/netclaw --skill pyats-troubleshoot -a claude-code

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

GitHub CLI
$ gh skill install automateyournetwork/netclaw pyats-troubleshoot --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/automateyournetwork/netclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/workspace/skills/pyats-troubleshoot .claude/skills/pyats-troubleshoot && 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
pyats-troubleshoot
GitHub stars
676
Token cost
~4.2k tokens
SKILL.md length
1,335 words
Files
1
Skills in repo
120
Repo updated
First seen
Licence
Apache-2.0

At a glance

Systematic network troubleshooting - connectivity, routing, interface, protocol, and performance issues using structured OSI-layer and divide-and-conquer methodology, via direct CLI/pyATS access.

  • Works in 5 steps: Check Device Resources → Check Interface Utilization and Errors → Check QoS Policy → …
  • Something is broken
  • SKILL.md covers Troubleshooting Principles, Symptom: "I Can't Reach X"…, Symptom: "Routing Protocol… and Symptom: "Slow Performance /…, plus 6 more sections
  • Calls python3

What it does

Pyats Troubleshoot is an agent skill from automateyournetwork/netclaw. Systematic network troubleshooting - connectivity, routing, interface, protocol, and performance issues using structured OSI-layer and divide-and-conquer methodology, via direct CLI/pyATS access. Use when something is broken, a device is unreachable, a link is flapping, users report slow performance, or an OSPF/BGP adjacency is down. For a device managed by Catalyst Center, start with catc-troubleshoot's controller/assurance view instead. Once a fault is isolated to routing specifically, pyats-routing covers…

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: An AI agent that claws through your network. The licence is Apache-2.0.

When your agent uses it

  • Something is broken
  • A device is unreachable
  • A link is flapping
  • Users report slow performance

Example prompts

  • “/pyats-troubleshoot”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Check Device Resources
  2. Check Interface Utilization and Errors
  3. Check QoS Policy
  4. Verify Routing Path
  5. Check for Routing Loops

What it can do on your machine

Read from SKILL.md and the folder at commit aa90e7d. 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

    Shell commands in SKILL.md call:

    • python3

    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

Pyats Troubleshoot loads about 4.2k tokens when it runs. Until then it costs about 148 tokens; SKILL.md has 1,335 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~148
When it runs · the whole SKILL.md, loaded when a task matches
~4.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 automateyournetwork/netclaw at commit aa90e7d, republished under its Apache-2.0 licence (© automateyournetwork). 1,335 words, ~4,181 tokens.

Download SKILL.mdSave it as .claude/skills/pyats-troubleshoot/SKILL.md (or your agent's skills folder).
name
pyats-troubleshoot
description
Systematic network troubleshooting - connectivity, routing, interface, protocol, and performance issues using structured OSI-layer and divide-and-conquer methodology, via direct CLI/pyATS access. Use when something is broken, a device is unreachable, a link is flapping, users report slow performance, or an OSPF/BGP adjacency is down. For a device managed by Catalyst Center, start with `catc-troubleshoot`'s controller/assurance view instead. Once a fault is isolated to routing specifically, `pyats-routing` covers RIB/FIB, redistribution, and convergence in more depth.
license
Apache-2.0
user-invocable
true

Network Troubleshooting

Troubleshooting Principles

  1. Define the problem — What exactly is broken? Who reported it? What's the expected vs actual behavior?
  2. Gather facts — Run show commands, check logs, verify config. Never assume.
  3. Consider possibilities — Based on facts, list likely causes
  4. Create action plan — Test one variable at a time
  5. Implement and verify — Make one change, verify, document
  6. Document — Record what was found and what fixed it

Symptom: "I Can't Reach X" (Connectivity Loss)

Layer 1: Physical
bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show interfaces"}'

Check:

  • Is the interface up/up? (admin up, line protocol up)
  • If down/down → cable, SFP, or remote end shut
  • If up/down → L2 protocol issue (encapsulation mismatch, keepalive failure)
  • If administratively down → no shutdown needed
  • CRC errors → bad cable, duplex mismatch, faulty optic
  • Input errors → physical layer corruption
  • Resets incrementing → interface flapping
bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show arp"}'

Check:

  • Is there an ARP entry for the next-hop? If not → L2 issue
  • Incomplete ARP entries → destination not responding on the segment
  • For switches: check MAC address table, VLAN assignment, STP state
Layer 3: Network
bash
# Check local interface has correct IP
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip interface brief"}'

# Check routing table for destination
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip route"}'

# Ping the destination
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_ping_from_network_device '{"device_name":"R1","command":"ping 10.0.0.1"}'

L3 troubleshooting decision tree:

  1. Is there a route for the destination? → show ip route <destination>
  2. If no route → routing protocol issue or missing static route
  3. If route exists → what's the next-hop? Is next-hop reachable?
  4. Ping the next-hop → if fails, problem is between this router and next-hop
  5. Ping the destination from progressively closer routers (divide-and-conquer)
  6. Ping with source interface specified to test specific paths

Advanced ping options:

bash
# Ping with specific source
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_ping_from_network_device '{"device_name":"R1","command":"ping 10.0.0.1 source Loopback0"}'

# Ping with larger packet size (test MTU)
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_ping_from_network_device '{"device_name":"R1","command":"ping 10.0.0.1 size 1500 df-bit"}'

# Extended ping with repeat count
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_ping_from_network_device '{"device_name":"R1","command":"ping 10.0.0.1 repeat 100 source Loopback0"}'
Layer 4+: ACLs and NAT
bash
# Check ACLs that might be blocking traffic
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip access-lists"}'

# Check NAT translations
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip nat translations"}'

ACL troubleshooting:

  • Check hit counts on deny statements — is the ACL dropping the traffic?
  • Verify ACL is applied to the correct interface and direction (in vs out)
  • Remember implicit deny any at the end of every ACL
  • Check if ACL is referenced in a route-map or NAT rule

Symptom: "Routing Protocol Adjacency Down"

OSPF Neighbor Down
bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip ospf neighbor"}'

PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip ospf interface"}'

OSPF adjacency troubleshooting checklist:

  1. Can you ping the neighbor? (L1/L2/L3 reachability)
  2. Are hello/dead timers matching? (must match)
  3. Are area IDs matching? (must match)
  4. Is authentication matching? (type and key must match)
  5. Is the network type matching? (broadcast vs point-to-point)
  6. Is MTU matching? (causes EXSTART/EXCHANGE stuck state)
  7. Is the interface in the correct OSPF process and area?
  8. Is the interface passive? (passive interfaces don't form adjacencies)
  9. Is there an ACL blocking OSPF (protocol 89, multicast 224.0.0.5/224.0.0.6)?
BGP Peer Down
bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip bgp summary"}'

PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip bgp neighbors"}'

BGP adjacency troubleshooting checklist:

  1. Can you reach the neighbor IP from the source IP? (TCP port 179)
  2. Is update-source configured correctly? (iBGP typically uses Loopback)
  3. Is ebgp-multihop needed? (if eBGP peer is not directly connected)
  4. Is the neighbor AS number correct?
  5. Is the password matching? (if MD5 authentication configured)
  6. Is there an ACL blocking TCP port 179?
  7. Is neighbor X activate present under the correct address-family?
  8. Is the neighbor administratively shut? (neighbor X shutdown)
  9. Check NOTIFICATION messages in show ip bgp neighbors for error codes

BGP NOTIFICATION error codes:

CodeMeaning
1 - Message Header ErrorMalformed packet
2 - OPEN Message ErrorCapability mismatch, bad AS, bad hold time
3 - UPDATE Message ErrorMalformed UPDATE, invalid path attribute
4 - Hold Timer ExpiredPeer stopped sending KEEPALIVEs
5 - FSM ErrorUnexpected state transition
6 - CeaseAdministrative shutdown, max-prefix exceeded, peer deconfigured

Symptom: "Slow Performance / High Latency"

Step 1: Check Device Resources
bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show processes cpu sorted"}'

PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show processes memory sorted"}'
Step 2: Check Interface Utilization and Errors
bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show interfaces"}'

Look for:

  • High input/output rate relative to interface speed → congestion
  • Output drops → congestion (needs QoS or bandwidth upgrade)
  • Input errors / CRC errors → physical layer issues causing retransmissions
  • Overruns → CPU can't process packets fast enough
Step 3: Check QoS Policy
bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show policy-map interface"}'

Check: Class drops, queue depths, policing rates.

Step 4: Verify Routing Path

Is traffic taking the expected path?

bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip route 10.0.0.1"}'

Is traffic taking a suboptimal path through a slower link? Check metrics, AD values, and path selection.

Step 5: Check for Routing Loops

Symptoms: incrementing TTL-exceeded counters, packets bouncing between two routers.

bash
# Check for TTL exceeded ICMP messages
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_show_logging '{"device_name":"R1"}'

Trace the route: check the next-hop for the destination on each router in the path. If router A points to B and B points back to A → routing loop.


Symptom: "Interface Flapping"

bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_show_logging '{"device_name":"R1"}'

PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show interfaces"}'

Common causes of interface flapping:

  • Bad cable or SFP (CRC errors, input errors)
  • Duplex mismatch (one end auto, other end forced)
  • Speed mismatch
  • Power issues (PoE budget exceeded on switch ports)
  • Carrier/ISP issue on WAN links
  • STP topology change (on switched networks)
  • Aggressive OSPF/BGP timers causing protocol flap on congested links

Logs to look for:

  • %LINEPROTO-5-UPDOWN — interface state transitions with timestamps
  • %LINK-3-UPDOWN — physical link state changes
  • Frequency of flaps: every few seconds = likely physical; every few minutes = possible timer/keepalive issue

NetBox Cross-Reference (MISSION02 Enhancement)

When NetBox is available ($NETBOX_MCP_SCRIPT is set), query the source of truth during investigation to validate expected state vs reality:

Show full SKILL.md (555 more words)Show less
Check Expected Interface State
bash
python3 $MCP_CALL "python3 -u $NETBOX_MCP_SCRIPT" netbox_get_objects '{"object_type":"dcim.interfaces","filters":{"device":"R1"},"brief":true}'

Use during troubleshooting:

  • Connectivity loss → Is the interface supposed to be up? What IP should it have?
  • Interface flapping → What cable/circuit is documented? What's the remote end?
  • Routing issues → What prefix/VLAN is assigned in NetBox vs what the device shows?
Check Expected Cables and Neighbors
bash
python3 $MCP_CALL "python3 -u $NETBOX_MCP_SCRIPT" netbox_get_objects '{"object_type":"dcim.cables","filters":{"device":"R1"}}'

Compare: If CDP/LLDP shows a different neighbor than NetBox documents, the physical topology may have changed without being updated — flag for investigation.

Check Expected IP Assignments
bash
python3 $MCP_CALL "python3 -u $NETBOX_MCP_SCRIPT" netbox_get_objects '{"object_type":"ipam.ip-addresses","filters":{"device":"R1"}}'

Compare: Flag IP_DRIFT if device IP differs from NetBox. This is often the root cause of "can't reach X" tickets when someone changed an IP without updating the source of truth.


Multi-Hop Parallel State Collection (pCall)

When troubleshooting spans multiple devices (e.g., connectivity between R1 and R4 traversing R2 and R3), collect state from ALL suspect hops simultaneously rather than one at a time:

Parallel State Gathering

First, list all devices to identify the path:

bash
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_list_devices

Then run the same show commands on ALL hops concurrently. For example, for a connectivity loss between R1 and R4:

Run these commands on R1, R2, R3, and R4 simultaneously:

  • show ip interface brief — interface state on every hop
  • show ip route <destination> — does each hop have a route?
  • show ip arp — is next-hop reachable at L2?
  • show ip ospf neighbor or show ip bgp summary — adjacency state

Benefit: Instead of spending 4 sequential rounds (one per device), you get the complete picture in a single parallel pass. This lets you immediately identify where in the path the failure occurs.

Parallel Adjacency Check

When an OSPF or BGP adjacency is down, always check BOTH ends simultaneously:

bash
# Run on BOTH peers at the same time
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R1","command":"show ip ospf neighbor"}'
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"R2","command":"show ip ospf neighbor"}'

Compare: timer mismatches, area mismatches, authentication failures, and MTU issues require data from both ends to diagnose.

Severity-Sorted Results

After collecting parallel state, sort findings by severity for triage:

┌──────────┬────────────────────────┬──────────┐
│ Device   │ Finding                │ Severity │
├──────────┼────────────────────────┼──────────┤
│ R2       │ No route to 10.4.0.0/24│ CRITICAL │
│ R3       │ Gi2 down/down          │ CRITICAL │
│ R1       │ ARP incomplete for NH  │ HIGH     │
│ R4       │ All interfaces up      │ HEALTHY  │
└──────────┴────────────────────────┴──────────┘

Root cause: R3 Gi2 is down → R2 lost its route via R3 → R1 can't ARP for an unreachable next-hop.

GAIT Audit Trail

After completing a troubleshooting session, record findings and resolution in GAIT:

bash
python3 $MCP_CALL "python3 -u $GAIT_MCP_SCRIPT" gait_record_turn '{"user_text":"Example only: replace with the actual authorized request.","assistant_text":"Troubleshooting: Connectivity loss R1→R4. Root cause: R3 Gi2 down/down (cable fault). Resolution: Escalated to field team for cable replacement. Verified routing reconverged via alternate path R1→R2→R5→R4.","artifacts":[]}'

General Troubleshooting Commands Quick Reference

What to CheckCommand
Interface statusshow ip interface brief
Interface detailsshow interfaces <name>
Routing tableshow ip route
Specific routeshow ip route <ip>
OSPF neighborsshow ip ospf neighbor
BGP summaryshow ip bgp summary
EIGRP neighborsshow ip eigrp neighbors
ARP tableshow arp
ACLs with hit countsshow ip access-lists
NAT translationsshow ip nat translations
CPU usageshow processes cpu sorted
Memory usageshow processes memory sorted
System logsuse pyats_show_logging tool
Running configuse pyats_show_running_config tool
Connectivity testuse pyats_ping_from_network_device tool

Failure Behavior

  • If a tool call fails with an authentication or connection error, check that GAIT_MCP_SCRIPT, NETBOX_MCP_SCRIPT, PYATS_MCP_SCRIPT, PYATS_TESTBED_PATH are set and valid before assuming a data or device problem.
  • On a tool error (timeout, unreachable host, malformed response), report the failure and its error message directly to the user rather than fabricating or guessing at results.
  • For a confirmed read-only call, check connectivity and retry once if appropriate. For any call that changes state or sends a message, a timeout does not prove the action failed: inspect current state or delivery status before retrying, preserve the required approval/change gates, and do not repeat an action whose outcome is unknown.

Audit examples are illustrative. Replace request, outcomes, identifiers and counts with observed session evidence; do not record these example results as facts. Inspect MCP isError, returned ok, and the recorded turn with gait_show when validating a new client/schema. Follow gait-session-tracking for branch checkout.

© automateyournetwork, Apache-2.0. 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 workspace/skills/pyats-troubleshoot of automateyournetwork/netclaw.

Open the folder on GitHubat commit aa90e7d

Compare with similar skills

Pyats Troubleshoot 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.

Pyats Troubleshoot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pyats Troubleshoot this skillautomateyournetwork/netclaw676—~4.2kAutomated safety check: PassApache-2.0
ConnectComposioHQ/awesome-claude-skills77k3 repos~987Automated safety check: PassNone
Node Connectopenclaw/openclaw392k—~1.6kAutomated safety check: PassMIT
Network Interface Healthaffaan-m/ECC277k1 repos~1.4kAutomated safety check: PassMIT
Openwork Connectdifferent-ai/openwork24k—~370Automated safety check: PassCustom licence
Startup It Troubleshootingsickn33/agentic-awesome-skills47k2 repos~3.6kAutomated safety check: NotesMIT

Similar skills

  • Connect

    ComposioHQ/awesome-claude-skills

    Connect Claude to any app. An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~987 tokens
    Productivity & AutomationAuto-check passed
  • Node Connect

    openclaw/openclaw

    Diagnose OpenClaw Control UI browser and native Android, iOS, or macOS node connection failures across route, auth, pairing, QR/setup-code, and reconnect states.

    392k GitHub stars~1.6k tokensUpdated today
    MobileAuto-check passed
  • Diagnose interface errors, drops, CRCs, duplex mismatches, flapping, speed negotiation issues, and counter trends on routers, switches, and Linux hosts.

    277k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Openwork Connect

    different-ai/openwork

    Search and use the skills, MCP connections, and connected services available through the user's OpenWork organization.

    24k GitHub stars~370 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Startup It Troubleshooting

    sickn33/agentic-awesome-skills

    Practical IT troubleshooting playbooks for small teams without dedicated IT staff.

    47k GitHub starsUsed in 2 repos~3.6k tokens
    Auto-check: notes
  • Connection Auth Rules

    sickn33/agentic-awesome-skills

    Build a Connection Auth Rules for a Monte Carlo connection type.

    47k GitHub starsUsed in 1 repo~2.1k tokens
    Backend & APIsAuto-check passed

More from automateyournetwork/netclaw

All 120 skills in this repo
  • EVE-NG Lab Topology Design

    automateyournetwork/netclaw

    Entry point for designing EVE-NG network labs: classifies the request, gathers missing requirements, proposes options and validates the resulting topology.

    677 GitHub stars~612 tokensUpdated today
    Auto-check passed
  • ACI Policy Change Deployment

    automateyournetwork/netclaw

    Deploys Cisco ACI policy changes only behind an approved ServiceNow Change Request, capturing pre and post-change fault baselines and rolling back automatically on a fault delta.

    677 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Cisco ACI Fabric Health Audit

    automateyournetwork/netclaw

    Runs a phased health audit of a Cisco ACI fabric through MCP tools: node status, links, tenant and policy review, faults and endpoint learning.

    677 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Anta Validation

    automateyournetwork/netclaw

    Validate Arista EOS network state against ANTA's pre-built 208-test catalogue, with structured pass/fail verdicts.

    677 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Arista Cvp

    automateyournetwork/netclaw

    Arista CloudVision Portal (CVP) automation via REST API — device inventory, events, connectivity monitoring, tag management (4 tools).

    677 GitHub stars~2.2k tokensUpdated today
    Auto-check: notes
  • AWS Cloud Monitoring

    automateyournetwork/netclaw

    AWS CloudWatch monitoring — metrics, alarms, log queries, VPC flow log analysis, network performance.

    677 GitHub stars~1k tokensUpdated today
    Auto-check passed

Questions about Pyats Troubleshoot

What does Pyats Troubleshoot do?

Systematic network troubleshooting - connectivity, routing, interface, protocol, and performance issues using structured OSI-layer and divide-and-conquer methodology, via direct CLI/pyATS access. Pyats Troubleshoot is an agent skill from automateyournetwork/netclaw. Systematic network troubleshooting - connectivity, routing, interface, protocol, and performance issues using structured OSI-layer and divide-and-conquer methodology, via direct CLI/pyATS access.

When should I use Pyats Troubleshoot?

Pyats Troubleshoot fits situations like: something is broken; A device is unreachable; A link is flapping; users report slow performance.

How do I install Pyats Troubleshoot in Claude Code?

Run `npx skills add automateyournetwork/netclaw --skill pyats-troubleshoot -a claude-code`. Or copy the skill folder (workspace/skills/pyats-troubleshoot in automateyournetwork/netclaw) into .claude/skills/pyats-troubleshoot in your project. Claude Code loads it when a task matches its description.

How do I install Pyats Troubleshoot in Codex?

Run `npx skills add automateyournetwork/netclaw --skill pyats-troubleshoot -a codex`. Or copy the skill folder (workspace/skills/pyats-troubleshoot in automateyournetwork/netclaw) into .agents/skills/pyats-troubleshoot in your project. Codex loads it when a task matches its description.

Can I use Pyats Troubleshoot 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 automateyournetwork/netclaw --skill pyats-troubleshoot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pyats-troubleshoot, .gemini/skills/pyats-troubleshoot, .github/skills/pyats-troubleshoot and .opencode/skills/pyats-troubleshoot in your project.

What does Pyats Troubleshoot need to run?

Going by SKILL.md and its folder, Pyats Troubleshoot needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Pyats Troubleshoot 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 Pyats Troubleshoot 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 Pyats Troubleshoot use?

Pyats Troubleshoot is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pyats Troubleshoot use?

About 4.2k tokens (SKILL.md is roughly 17k 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 Pyats Troubleshoot?

Skills that share tags, products or a category with Pyats Troubleshoot: Connect (ComposioHQ/awesome-claude-skills, 77k stars), Node Connect (openclaw/openclaw, 392k stars), Network Interface Health (affaan-m/ECC, 277k stars) and Openwork Connect (different-ai/openwork, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pyats Troubleshoot?

automateyournetwork (a GitHub user) maintains it in automateyournetwork/netclaw, which has 676 GitHub stars. The repository holds 120 skills in this directory. The repository was last updated on October 9, 2026.

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