[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C67AYFQB9RJB424VDS0F4F":3,"skill-same:01M6C67AYFQB9RJB424VDS0F4F":211},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6C67AYFQB9RJB424VDS0F4F","network-diagnostics",null,"Network connectivity and latency diagnostics. Use when tracing routes, comparing ping latency across endpoints, or inspecting local socket\u002Fport usage.","laurigates\u002Fclaude-plugins","laurigates","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13014001?v=4","01M6C59YHWS9C7KMXKSRX1YXNP","Lauri Gates","01M6C59YP2APG9YAM4DWYQYGFJ",59,"MIT","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fnetworking-plugin\u002Fskills\u002Fnetwork-diagnostics\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"network","network diagnostics","diagnostics","latency","2026","when","socket","traceroute","netstat","usage","port","gping","false","ip","local","across","use","read","grep","Bash","tracing","2026-11-10 10:12:30",false,"---\ncreated: 2026-01-01\nmodified: 2026-10-12\nreviewed: 2026-04-25\nname: network-diagnostics\ndescription: Network connectivity and latency diagnostics. Use when tracing routes, comparing ping latency across endpoints, or inspecting local socket\u002Fport usage.\nuser-invocable: false\nallowed-tools: Bash(trip *), Bash(gping *), Bash(ss *), Bash(netstat *), Bash(ping *), Bash(traceroute *), Bash(mtr *), Bash(ip *), Read, Grep, Glob, TodoWrite\n---\n\n# Network Diagnostics\n\n## When to Use This Skill\n\n| Scenario | Use this skill | Alternative |\n|----------|---------------|-------------|\n| Trace the route to a remote host | Yes (trippy) | |\n| Diagnose packet loss or high latency on a path | Yes (trippy) | |\n| Compare ping latency across multiple endpoints | Yes (gping) | |\n| Find what process is listening on a port | Yes (ss) | |\n| Count established connections to a service | Yes (ss) | |\n| Inspect local socket states (TIME_WAIT, etc.) | Yes (ss) | |\n| Scan all open ports on a remote host | | network-discovery (RustScan, nmap) |\n| Look up DNS records or check propagation | | dns-tools (dog, dig) |\n| Enumerate hosts on the local L2 segment | | layer2-discovery (ARP\u002FLLDP) |\n| Inspect or configure the host's own IPs, links, or routes | | interface-state (ip) |\n| Benchmark HTTP endpoint throughput | | http-load-testing (oha) |\n| See real-time per-process bandwidth consumption | | network-monitoring (bandwhich) |\n\nExpert knowledge for network connectivity troubleshooting using modern diagnostic tools that provide richer output than legacy alternatives.\n\n## Core Expertise\n\n### Tool Selection\n\n| Use Case | Tool | Why |\n|----------|------|-----|\n| Path analysis with latency | trippy | Combines traceroute + ping with TUI |\n| Multi-host latency comparison | gping | Visual graphs, parallel pings |\n| Local socket inspection | ss | Modern netstat replacement |\n| Quick single-hop latency | gping | Faster feedback than trippy |\n| Network path + ASN info | trippy | Built-in ASN\u002Fgeo lookups |\n\n### Advantages Over Legacy Tools\n\n| Modern | Legacy | Improvements |\n|--------|--------|--------------|\n| trippy | traceroute, mtr | TUI, jitter stats, ASN\u002Fgeo, world map |\n| gping | ping | Visual graphs, multi-host parallel |\n| ss | netstat | Faster, more info, better filtering |\n\n## Trippy - Modern Traceroute\u002FMTR\n\nRust-based network path analyzer combining traceroute and ping with a rich TUI.\n\n### Essential Commands\n\n```bash\n# Basic traceroute with TUI\ntrip example.com\n\n# Specify protocol mode\ntrip -m icmp example.com    # ICMP (default, needs root\u002Fcaps)\ntrip -m udp example.com     # UDP (no root needed)\ntrip -m tcp example.com     # TCP\n\n# TCP to specific port\ntrip -m tcp -p 443 example.com\ntrip -m tcp -p 80 example.com\n\n# Specify source interface\ntrip -i en0 example.com\ntrip -i eth0 example.com\n\n# Enable ASN lookups in TUI\ntrip --tui-as-mode asn example.com\ntrip --tui-as-mode prefix example.com\n\n# Geo-location in TUI\ntrip --tui-geoip-mode short example.com\ntrip --tui-geoip-mode long example.com\n```\n\n### Non-Interactive Output\n\n```bash\n# JSON output for parsing\ntrip example.com --mode json -c 10\n\n# Dot format (Graphviz)\ntrip example.com --mode dot -c 10\n\n# CSV format\ntrip example.com --mode csv -c 10\n\n# Flows (path changes)\ntrip example.com --mode flows -c 10\n\n# Silent mode (summary only)\ntrip example.com --mode silent -c 10\n\n# Pretty print (no TUI)\ntrip example.com --mode pretty -c 10\n```\n\n### Advanced Options\n\n```bash\n# Set packet count\ntrip example.com -c 100\n\n# Set max TTL (hops)\ntrip example.com -t 30\n\n# Set packet size\ntrip example.com -S 64\n\n# First TTL to start from\ntrip example.com -f 5\n\n# Parallel probes per hop\ntrip example.com -N 16\n\n# Grace period after target reached\ntrip example.com -g 100ms\n```\n\n## gping - Graphical Ping\n\nVisual latency graphs with multi-host parallel ping support.\n\n### Essential Commands\n\n```bash\n# Basic ping with graph\ngping example.com\n\n# Multiple hosts (parallel comparison)\ngping google.com cloudflare.com amazon.com\n\n# Force IPv4\u002FIPv6\ngping -4 example.com\ngping -6 example.com\n\n# Specify interface\ngping -i en0 example.com\n\n# Simple graphics (ASCII, for terminals without unicode)\ngping -s example.com\n\n# Set buffer size (number of pings to display)\ngping -b 100 example.com\n```\n\n### Command Execution Mode\n\n```bash\n# Ping a command's execution time instead of host\ngping --cmd \"curl -s https:\u002F\u002Fapi.example.com\u002Fhealth\"\ngping --cmd \"dig example.com\"\ngping --cmd \"http https:\u002F\u002Fapi.example.com\u002Fstatus\"\n\n# Compare multiple commands\ngping --cmd \"curl -s localhost:3000\" --cmd \"curl -s localhost:8080\"\n```\n\n### Customization\n\n```bash\n# Set ping interval (seconds)\ngping -n 0.5 example.com\n\n# Watch specific timeout\ngping -w 2 example.com\n\n# Clear screen before starting\ngping --clear example.com\n```\n\n## ss - Socket Statistics\n\nModern replacement for netstat, faster and more informative.\n\n### Essential Commands\n\n```bash\n# All TCP connections\nss -t\n\n# All UDP sockets\nss -u\n\n# Listening sockets only\nss -l\n\n# Show process info (requires root for other users' processes)\nss -p\n\n# Numeric output (no DNS resolution)\nss -n\n\n# Combined: listening TCP with process info, numeric\nss -tlnp\n\n# Combined: all TCP\u002FUDP listening sockets with processes\nss -tulnp\n```\n\n### Filtering\n\n```bash\n# Filter by state\nss -t state established\nss -t state listening\nss -t state time-wait\nss -t state close-wait\n\n# Filter by port\nss -t sport = :22\nss -t dport = :443\nss -t 'sport = :80 or dport = :80'\n\n# Filter by address\nss -t src 192.168.1.0\u002F24\nss -t dst 10.0.0.1\n\n# Combined filters\nss -t 'sport = :443 and dst 10.0.0.0\u002F8'\n```\n\n### Statistics and Summary\n\n```bash\n# Socket summary statistics\nss -s\n\n# Extended info (memory, congestion)\nss -e\n\n# Timer info (retransmits, keepalives)\nss -o\n\n# Memory usage\nss -m\n\n# Full detail\nss -i\n```\n\n### Common Investigations\n\n```bash\n# Find what's using a port\nss -tlnp | grep :8080\nss -tlnp 'sport = :8080'\n\n# Count connections by state\nss -t state established | wc -l\n\n# Find connections to specific host\nss -tn dst 192.168.1.100\n\n# Monitor established connections to a service\nwatch -n 1 'ss -tn state established dport = :443 | wc -l'\n```\n\n## Common Patterns\n\n### Connectivity Troubleshooting Workflow\n\n```bash\n# Step 1: Check if host responds\ngping target.example.com\n\n# Step 2: Analyze network path\ntrip target.example.com\n\n# Step 3: Check local listening services\nss -tlnp\n\n# Step 4: Verify outbound connectivity\nss -tn state established | grep target.example.com\n```\n\n### Latency Comparison\n\n```bash\n# Compare multiple endpoints\ngping primary.example.com secondary.example.com backup.example.com\n\n# Compare DNS providers\ngping 8.8.8.8 1.1.1.1 9.9.9.9\n\n# Compare API endpoints\ngping --cmd \"curl -s api1.example.com\" --cmd \"curl -s api2.example.com\"\n```\n\n### Port Availability Check\n\n```bash\n# What's listening on common ports\nss -tlnp 'sport = :80 or sport = :443 or sport = :8080 or sport = :3000'\n\n# Find all listening ports in a range\nss -tlnp 'sport >= :8000 and sport \u003C= :9000'\n```\n\n### Network Path Analysis\n\n```bash\n# Compare paths to different regions\ntrip us-east.example.com &\ntrip eu-west.example.com &\ntrip ap-southeast.example.com\n\n# Analyze with ASN information\ntrip --tui-as-mode asn cdn.example.com\n```\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| Quick latency check | `gping -b 10 HOST 2>&1 \\| head -20` |\n| Path analysis (JSON) | `trip HOST --mode json -c 5` |\n| Listening ports | `ss -tlnp` |\n| Connection count | `ss -tn state established \\| wc -l` |\n| Port in use | `ss -tlnp 'sport = :PORT'` |\n| Multi-host compare | `gping HOST1 HOST2 HOST3 -b 5` |\n| TCP path check | `trip -m tcp -p 443 HOST --mode pretty -c 3` |\n\n## Quick Reference\n\n### Trippy Flags\n\n| Flag | Long | Description |\n|------|------|-------------|\n| `-m` | `--mode` | Protocol: icmp, udp, tcp |\n| `-p` | `--port` | Target port (tcp\u002Fudp mode) |\n| `-i` | `--interface` | Source interface |\n| `-c` | `--count` | Number of probes |\n| `-t` | `--max-ttl` | Maximum TTL\u002Fhops |\n| `-f` | `--first-ttl` | Starting TTL |\n| `-S` | `--packet-size` | Packet size in bytes |\n| | `--tui-as-mode` | ASN display: asn, prefix |\n| | `--tui-geoip-mode` | Geo display: short, long |\n| | `--mode` | Output: tui, json, csv, dot, flows, silent, pretty |\n\n### gping Flags\n\n| Flag | Long | Description |\n|------|------|-------------|\n| `-4` | | Force IPv4 |\n| `-6` | | Force IPv6 |\n| `-i` | `--interface` | Source interface |\n| `-s` | `--simple-graphics` | ASCII-only output |\n| `-b` | `--buffer` | Number of pings to display |\n| `-n` | `--interval` | Ping interval (seconds) |\n| `-w` | `--watch-interval` | Watch timeout |\n| | `--cmd` | Ping command execution time |\n| | `--clear` | Clear screen before starting |\n\n### ss Flags\n\n| Flag | Description |\n|------|-------------|\n| `-t` | TCP sockets |\n| `-u` | UDP sockets |\n| `-l` | Listening only |\n| `-a` | All sockets |\n| `-p` | Show process |\n| `-n` | Numeric (no DNS) |\n| `-e` | Extended info |\n| `-o` | Timer info |\n| `-m` | Memory usage |\n| `-i` | Internal TCP info |\n| `-s` | Summary statistics |\n\n### ss State Filters\n\n| State | Description |\n|-------|-------------|\n| `established` | Active connections |\n| `listening` | Listening sockets |\n| `time-wait` | Waiting for timeout |\n| `close-wait` | Waiting for local close |\n| `syn-sent` | Connection initiating |\n| `syn-recv` | Connection received |\n\n## Installation\n\n```bash\n# macOS\nbrew install trippy gping\n\n# ss is part of iproute2 on Linux (usually pre-installed)\n# On macOS, use netstat instead (ss not available)\n\n# Cargo (cross-platform)\ncargo install trippy\ncargo install gping\n\n# Verify installations\ntrip --version\ngping --version\nss --version  # Linux only\n```\n\n## Platform Notes\n\n- **trippy**: ICMP mode requires root or `CAP_NET_RAW` capability; UDP\u002FTCP modes work without elevation\n- **gping**: Works without elevation on all platforms\n- **ss**: Linux only; use `netstat -an` on macOS for similar functionality\n\n## Resources\n\n- **Trippy**: https:\u002F\u002Ftrippy.cli.rs\u002F | https:\u002F\u002Fgithub.com\u002Ffujiapple852\u002Ftrippy\n- **gping**: https:\u002F\u002Fgithub.com\u002Forf\u002Fgping\n- **ss man page**: https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman8\u002Fss.8.html\n","# Network Diagnostics\n\n## When to Use This Skill\n\n| Scenario | Use this skill | Alternative |\n|----------|---------------|-------------|\n| Trace the route to a remote host | Yes (trippy) | |\n| Diagnose packet loss or high latency on a path | Yes (trippy) | |\n| Compare ping latency across multiple endpoints | Yes (gping) | |\n| Find what process is listening on a port | Yes (ss) | |\n| Count established connections to a service | Yes (ss) | |\n| Inspect local socket states (TIME_WAIT, etc.) | Yes (ss) | |\n| Scan all open ports on a remote host | | network-discovery (RustScan, nmap) |\n| Look up DNS records or check propagation | | dns-tools (dog, dig) |\n| Enumerate hosts on the local L2 segment | | layer2-discovery (ARP\u002FLLDP) |\n| Inspect or configure the host's own IPs, links, or routes | | interface-state (ip) |\n| Benchmark HTTP endpoint throughput | | http-load-testing (oha) |\n| See real-time per-process bandwidth consumption | | network-monitoring (bandwhich) |\n\nExpert knowledge for network connectivity troubleshooting using modern diagnostic tools that provide richer output than legacy alternatives.\n\n## Core Expertise\n\n### Tool Selection\n\n| Use Case | Tool | Why |\n|----------|------|-----|\n| Path analysis with latency | trippy | Combines traceroute + ping with TUI |\n| Multi-host latency comparison | gping | Visual graphs, parallel pings |\n| Local socket inspection | ss | Modern netstat replacement |\n| Quick single-hop latency | gping | Faster feedback than trippy |\n| Network path + ASN info | trippy | Built-in ASN\u002Fgeo lookups |\n\n### Advantages Over Legacy Tools\n\n| Modern | Legacy | Improvements |\n|--------|--------|--------------|\n| trippy | traceroute, mtr | TUI, jitter stats, ASN\u002Fgeo, world map |\n| gping | ping | Visual graphs, multi-host parallel |\n| ss | netstat | Faster, more info, better filtering |\n\n## Trippy - Modern Traceroute\u002FMTR\n\nRust-based network path analyzer combining traceroute and ping with a rich TUI.\n\n### Essential Commands\n\n```bash\n# Basic traceroute with TUI\ntrip example.com\n\n# Specify protocol mode\ntrip -m icmp example.com    # ICMP (default, needs root\u002Fcaps)\ntrip -m udp example.com     # UDP (no root needed)\ntrip -m tcp example.com     # TCP\n\n# TCP to specific port\ntrip -m tcp -p 443 example.com\ntrip -m tcp -p 80 example.com\n\n# Specify source interface\ntrip -i en0 example.com\ntrip -i eth0 example.com\n\n# Enable ASN lookups in TUI\ntrip --tui-as-mode asn example.com\ntrip --tui-as-mode prefix example.com\n\n# Geo-location in TUI\ntrip --tui-geoip-mode short example.com\ntrip --tui-geoip-mode long example.com\n```\n\n### Non-Interactive Output\n\n```bash\n# JSON output for parsing\ntrip example.com --mode json -c 10\n\n# Dot format (Graphviz)\ntrip example.com --mode dot -c 10\n\n# CSV format\ntrip example.com --mode csv -c 10\n\n# Flows (path changes)\ntrip example.com --mode flows -c 10\n\n# Silent mode (summary only)\ntrip example.com --mode silent -c 10\n\n# Pretty print (no TUI)\ntrip example.com --mode pretty -c 10\n```\n\n### Advanced Options\n\n```bash\n# Set packet count\ntrip example.com -c 100\n\n# Set max TTL (hops)\ntrip example.com -t 30\n\n# Set packet size\ntrip example.com -S 64\n\n# First TTL to start from\ntrip example.com -f 5\n\n# Parallel probes per hop\ntrip example.com -N 16\n\n# Grace period after target reached\ntrip example.com -g 100ms\n```\n\n## gping - Graphical Ping\n\nVisual latency graphs with multi-host parallel ping support.\n\n### Essential Commands\n\n```bash\n# Basic ping with graph\ngping example.com\n\n# Multiple hosts (parallel comparison)\ngping google.com cloudflare.com amazon.com\n\n# Force IPv4\u002FIPv6\ngping -4 example.com\ngping -6 example.com\n\n# Specify interface\ngping -i en0 example.com\n\n# Simple graphics (ASCII, for terminals without unicode)\ngping -s example.com\n\n# Set buffer size (number of pings to display)\ngping -b 100 example.com\n```\n\n### Command Execution Mode\n\n```bash\n# Ping a command's execution time instead of host\ngping --cmd \"curl -s https:\u002F\u002Fapi.example.com\u002Fhealth\"\ngping --cmd \"dig example.com\"\ngping --cmd \"http https:\u002F\u002Fapi.example.com\u002Fstatus\"\n\n# Compare multiple commands\ngping --cmd \"curl -s localhost:3000\" --cmd \"curl -s localhost:8080\"\n```\n\n### Customization\n\n```bash\n# Set ping interval (seconds)\ngping -n 0.5 example.com\n\n# Watch specific timeout\ngping -w 2 example.com\n\n# Clear screen before starting\ngping --clear example.com\n```\n\n## ss - Socket Statistics\n\nModern replacement for netstat, faster and more informative.\n\n### Essential Commands\n\n```bash\n# All TCP connections\nss -t\n\n# All UDP sockets\nss -u\n\n# Listening sockets only\nss -l\n\n# Show process info (requires root for other users' processes)\nss -p\n\n# Numeric output (no DNS resolution)\nss -n\n\n# Combined: listening TCP with process info, numeric\nss -tlnp\n\n# Combined: all TCP\u002FUDP listening sockets with processes\nss -tulnp\n```\n\n### Filtering\n\n```bash\n# Filter by state\nss -t state established\nss -t state listening\nss -t state time-wait\nss -t state close-wait\n\n# Filter by port\nss -t sport = :22\nss -t dport = :443\nss -t 'sport = :80 or dport = :80'\n\n# Filter by address\nss -t src 192.168.1.0\u002F24\nss -t dst 10.0.0.1\n\n# Combined filters\nss -t 'sport = :443 and dst 10.0.0.0\u002F8'\n```\n\n### Statistics and Summary\n\n```bash\n# Socket summary statistics\nss -s\n\n# Extended info (memory, congestion)\nss -e\n\n# Timer info (retransmits, keepalives)\nss -o\n\n# Memory usage\nss -m\n\n# Full detail\nss -i\n```\n\n### Common Investigations\n\n```bash\n# Find what's using a port\nss -tlnp | grep :8080\nss -tlnp 'sport = :8080'\n\n# Count connections by state\nss -t state established | wc -l\n\n# Find connections to specific host\nss -tn dst 192.168.1.100\n\n# Monitor established connections to a service\nwatch -n 1 'ss -tn state established dport = :443 | wc -l'\n```\n\n## Common Patterns\n\n### Connectivity Troubleshooting Workflow\n\n```bash\n# Step 1: Check if host responds\ngping target.example.com\n\n# Step 2: Analyze network path\ntrip target.example.com\n\n# Step 3: Check local listening services\nss -tlnp\n\n# Step 4: Verify outbound connectivity\nss -tn state established | grep target.example.com\n```\n\n### Latency Comparison\n\n```bash\n# Compare multiple endpoints\ngping primary.example.com secondary.example.com backup.example.com\n\n# Compare DNS providers\ngping 8.8.8.8 1.1.1.1 9.9.9.9\n\n# Compare API endpoints\ngping --cmd \"curl -s api1.example.com\" --cmd \"curl -s api2.example.com\"\n```\n\n### Port Availability Check\n\n```bash\n# What's listening on common ports\nss -tlnp 'sport = :80 or sport = :443 or sport = :8080 or sport = :3000'\n\n# Find all listening ports in a range\nss -tlnp 'sport >= :8000 and sport \u003C= :9000'\n```\n\n### Network Path Analysis\n\n```bash\n# Compare paths to different regions\ntrip us-east.example.com &\ntrip eu-west.example.com &\ntrip ap-southeast.example.com\n\n# Analyze with ASN information\ntrip --tui-as-mode asn cdn.example.com\n```\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| Quick latency check | `gping -b 10 HOST 2>&1 \\| head -20` |\n| Path analysis (JSON) | `trip HOST --mode json -c 5` |\n| Listening ports | `ss -tlnp` |\n| Connection count | `ss -tn state established \\| wc -l` |\n| Port in use | `ss -tlnp 'sport = :PORT'` |\n| Multi-host compare | `gping HOST1 HOST2 HOST3 -b 5` |\n| TCP path check | `trip -m tcp -p 443 HOST --mode pretty -c 3` |\n\n## Quick Reference\n\n### Trippy Flags\n\n| Flag | Long | Description |\n|------|------|-------------|\n| `-m` | `--mode` | Protocol: icmp, udp, tcp |\n| `-p` | `--port` | Target port (tcp\u002Fudp mode) |\n| `-i` | `--interface` | Source interface |\n| `-c` | `--count` | Number of probes |\n| `-t` | `--max-ttl` | Maximum TTL\u002Fhops |\n| `-f` | `--first-ttl` | Starting TTL |\n| `-S` | `--packet-size` | Packet size in bytes |\n| | `--tui-as-mode` | ASN display: asn, prefix |\n| | `--tui-geoip-mode` | Geo display: short, long |\n| | `--mode` | Output: tui, json, csv, dot, flows, silent, pretty |\n\n### gping Flags\n\n| Flag | Long | Description |\n|------|------|-------------|\n| `-4` | | Force IPv4 |\n| `-6` | | Force IPv6 |\n| `-i` | `--interface` | Source interface |\n| `-s` | `--simple-graphics` | ASCII-only output |\n| `-b` | `--buffer` | Number of pings to display |\n| `-n` | `--interval` | Ping interval (seconds) |\n| `-w` | `--watch-interval` | Watch timeout |\n| | `--cmd` | Ping command execution time |\n| | `--clear` | Clear screen before starting |\n\n### ss Flags\n\n| Flag | Description |\n|------|-------------|\n| `-t` | TCP sockets |\n| `-u` | UDP sockets |\n| `-l` | Listening only |\n| `-a` | All sockets |\n| `-p` | Show process |\n| `-n` | Numeric (no DNS) |\n| `-e` | Extended info |\n| `-o` | Timer info |\n| `-m` | Memory usage |\n| `-i` | Internal TCP info |\n| `-s` | Summary statistics |\n\n### ss State Filters\n\n| State | Description |\n|-------|-------------|\n| `established` | Active connections |\n| `listening` | Listening sockets |\n| `time-wait` | Waiting for timeout |\n| `close-wait` | Waiting for local close |\n| `syn-sent` | Connection initiating |\n| `syn-recv` | Connection received |\n\n## Installation\n\n```bash\n# macOS\nbrew install trippy gping\n\n# ss is part of iproute2 on Linux (usually pre-installed)\n# On macOS, use netstat instead (ss not available)\n\n# Cargo (cross-platform)\ncargo install trippy\ncargo install gping\n\n# Verify installations\ntrip --version\ngping --version\nss --version  # Linux only\n```\n\n## Platform Notes\n\n- **trippy**: ICMP mode requires root or `CAP_NET_RAW` capability; UDP\u002FTCP modes work without elevation\n- **gping**: Works without elevation on all platforms\n- **ss**: Linux only; use `netstat -an` on macOS for similar functionality\n\n## Resources\n\n- **Trippy**: https:\u002F\u002Ftrippy.cli.rs\u002F | https:\u002F\u002Fgithub.com\u002Ffujiapple852\u002Ftrippy\n- **gping**: https:\u002F\u002Fgithub.com\u002Forf\u002Fgping\n- **ss man page**: https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman8\u002Fss.8.html\n",{"name":5,"created":45,"modified":46,"reviewed":47,"description":7,"allowed-tools":48,"user-invocable":41},1767225600000,1791763200000,1777075200000,"Bash(trip *), Bash(gping *), Bash(ss *), Bash(netstat *), Bash(ping *), Bash(traceroute *), Bash(mtr *), Bash(ip *), Read, Grep, Glob, TodoWrite","main","bdd0582f1a2ba53d21061835bfd72d45f2f954f4","networking-plugin\u002Fskills\u002Fnetwork-diagnostics",6,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins","https:\u002F\u002Fgithub.com\u002Flaurigates","Linux enthusiast, cloud engineer, neovim addict, electronics hobbyist.","2026-11-12 03:43:32",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add laurigates\u002Fclaude-plugins --skill network-diagnostics",{"tool":63,"command":64},"bunx","bunx skills add laurigates\u002Fclaude-plugins --skill network-diagnostics",{"tool":66,"command":67},"pnpm","pnpm dlx skills add laurigates\u002Fclaude-plugins --skill network-diagnostics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fnetworking-plugin\u002Fskills\u002Fnetwork-diagnostics\u002FSKILL.md",true,[71,77,83,87,91,97,101,105,109,113,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,183,187,191,195,199,203,207],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"evals\u002Fevals.json","REFERENCE","参考文档",12307,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Fevals.json",{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"evals\u002Ffiles\u002Ffallback-noise-fixture\u002Fdiffs\u002Fpatch.diff","OTHER","其他",106,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffallback-noise-fixture\u002Fdiffs\u002Fpatch.diff",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"evals\u002Ffiles\u002Ffallback-noise-fixture\u002Flogs\u002Fretry.log",387,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffallback-noise-fixture\u002Flogs\u002Fretry.log",{"path":88,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":89,"sourceHtmlUrl":90},"evals\u002Ffiles\u002Ffallback-noise-fixture\u002Fsession_notes.md",616,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffallback-noise-fixture\u002Fsession_notes.md",{"path":92,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":95,"sourceHtmlUrl":96},"evals\u002Ffiles\u002Ffallback-noise-fixture\u002Fsrc\u002Fsync_retry.py","SCRIPT","脚本",57,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffallback-noise-fixture\u002Fsrc\u002Fsync_retry.py",{"path":98,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":99,"sourceHtmlUrl":100},"evals\u002Ffiles\u002Ffallback-noise-fixture\u002Ftests\u002Ftest_sync_retry.py",114,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffallback-noise-fixture\u002Ftests\u002Ftest_sync_retry.py",{"path":102,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":103,"sourceHtmlUrl":104},"evals\u002Ffiles\u002Ffeature-update-fixture\u002F.agents\u002Fscratchpad\u002Fpayments\u002Fhandoff.md",175,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffeature-update-fixture\u002F.agents\u002Fscratchpad\u002Fpayments\u002Fhandoff.md",{"path":106,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":107,"sourceHtmlUrl":108},"evals\u002Ffiles\u002Ffeature-update-fixture\u002Freports\u002Fbenchmark.txt",93,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffeature-update-fixture\u002Freports\u002Fbenchmark.txt",{"path":110,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":111,"sourceHtmlUrl":112},"evals\u002Ffiles\u002Ffeature-update-fixture\u002Fsession_notes.md",592,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffeature-update-fixture\u002Fsession_notes.md",{"path":114,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":95,"sourceHtmlUrl":115},"evals\u002Ffiles\u002Ffeature-update-fixture\u002Fsrc\u002Fpayment_retry.py","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffeature-update-fixture\u002Fsrc\u002Fpayment_retry.py",{"path":117,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":118,"sourceHtmlUrl":119},"evals\u002Ffiles\u002Ffeature-update-fixture\u002Ftests\u002Ftest_payment_retry.py",101,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Ffeature-update-fixture\u002Ftests\u002Ftest_payment_retry.py",{"path":121,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":122,"sourceHtmlUrl":123},"evals\u002Ffiles\u002Fguidance-edges-fixture\u002F.agents\u002Fscratchpad\u002Fbilling\u002Fhandoff.md",159,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fguidance-edges-fixture\u002F.agents\u002Fscratchpad\u002Fbilling\u002Fhandoff.md",{"path":125,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":126,"sourceHtmlUrl":127},"evals\u002Ffiles\u002Fguidance-edges-fixture\u002F.agents\u002Fscratchpad\u002Fretries\u002Fhandoff.history-2026-10-07.md",195,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fguidance-edges-fixture\u002F.agents\u002Fscratchpad\u002Fretries\u002Fhandoff.history-2026-10-07.md",{"path":129,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":130,"sourceHtmlUrl":131},"evals\u002Ffiles\u002Fguidance-edges-fixture\u002F.agents\u002Fscratchpad\u002Fretries\u002Fhandoff.md",536,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fguidance-edges-fixture\u002F.agents\u002Fscratchpad\u002Fretries\u002Fhandoff.md",{"path":133,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":134,"sourceHtmlUrl":135},"evals\u002Ffiles\u002Fguidance-edges-fixture\u002Freports\u002Flocal-check.md",274,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fguidance-edges-fixture\u002Freports\u002Flocal-check.md",{"path":137,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":138,"sourceHtmlUrl":139},"evals\u002Ffiles\u002Fguidance-edges-fixture\u002Fsession_notes.md",1328,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fguidance-edges-fixture\u002Fsession_notes.md",{"path":141,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":142,"sourceHtmlUrl":143},"evals\u002Ffiles\u002Fhistory-resume-fixture\u002F.agents\u002Fscratchpad\u002Fsearch\u002Fhandoff.md",624,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fhistory-resume-fixture\u002F.agents\u002Fscratchpad\u002Fsearch\u002Fhandoff.md",{"path":145,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":146,"sourceHtmlUrl":147},"evals\u002Ffiles\u002Fhistory-resume-fixture\u002Flogs\u002Fpurge-run-history.log",232,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fhistory-resume-fixture\u002Flogs\u002Fpurge-run-history.log",{"path":149,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":150,"sourceHtmlUrl":151},"evals\u002Ffiles\u002Fhistory-resume-fixture\u002Fsession_notes.md",999,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fhistory-resume-fixture\u002Fsession_notes.md",{"path":153,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":154,"sourceHtmlUrl":155},"evals\u002Ffiles\u002Fhistory-resume-fixture\u002Fsrc\u002Fcdn_purge.py",104,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fhistory-resume-fixture\u002Fsrc\u002Fcdn_purge.py",{"path":157,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":158,"sourceHtmlUrl":159},"evals\u002Ffiles\u002Fhistory-resume-fixture\u002Ftests\u002Ftest_cdn_purge.py",188,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fhistory-resume-fixture\u002Ftests\u002Ftest_cdn_purge.py",{"path":161,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":162,"sourceHtmlUrl":163},"evals\u002Ffiles\u002Fowner-action-fixture\u002F.agents\u002Fscratchpad\u002Freleases\u002Fhandoff.md",211,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fowner-action-fixture\u002F.agents\u002Fscratchpad\u002Freleases\u002Fhandoff.md",{"path":165,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":166,"sourceHtmlUrl":167},"evals\u002Ffiles\u002Fowner-action-fixture\u002Fsession_notes.md",679,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fowner-action-fixture\u002Fsession_notes.md",{"path":169,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":170,"sourceHtmlUrl":171},"evals\u002Ffiles\u002Fowner-action-fixture\u002Fsrc\u002Ftenant_purge.py",108,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fowner-action-fixture\u002Fsrc\u002Ftenant_purge.py",{"path":173,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":174,"sourceHtmlUrl":175},"evals\u002Ffiles\u002Fowner-action-fixture\u002Ftests\u002Ftest_tenant_purge.py",235,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Fowner-action-fixture\u002Ftests\u002Ftest_tenant_purge.py",{"path":177,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":178,"sourceHtmlUrl":179},"evals\u002Ffiles\u002Froot-create-fixture\u002Flogs\u002Ftest-failure.txt",283,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Froot-create-fixture\u002Flogs\u002Ftest-failure.txt",{"path":181,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":122,"sourceHtmlUrl":182},"evals\u002Ffiles\u002Froot-create-fixture\u002Fplans\u002Frefresh-plan.md","https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Froot-create-fixture\u002Fplans\u002Frefresh-plan.md",{"path":184,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":185,"sourceHtmlUrl":186},"evals\u002Ffiles\u002Froot-create-fixture\u002Fsession_notes.md",814,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Froot-create-fixture\u002Fsession_notes.md",{"path":188,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":189,"sourceHtmlUrl":190},"evals\u002Ffiles\u002Froot-create-fixture\u002Fsrc\u002Fauth_refresh.py",55,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Froot-create-fixture\u002Fsrc\u002Fauth_refresh.py",{"path":192,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":193,"sourceHtmlUrl":194},"evals\u002Ffiles\u002Froot-create-fixture\u002Ftests\u002Ftest_auth_refresh.py",141,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ffiles\u002Froot-create-fixture\u002Ftests\u002Ftest_auth_refresh.py",{"path":196,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":197,"sourceHtmlUrl":198},"evals\u002Fgrade_benchmark.py",26813,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Fgrade_benchmark.py",{"path":200,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":201,"sourceHtmlUrl":202},"evals\u002Fguidance-scenarios.json",2847,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Fguidance-scenarios.json",{"path":204,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":205,"sourceHtmlUrl":206},"evals\u002FREADME.md",1529,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002FREADME.md",{"path":208,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":209,"sourceHtmlUrl":210},"evals\u002Ftest_grade_benchmark.py",18241,"https:\u002F\u002Fgithub.com\u002Fjapurcell\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdefault\u002Fhandoff\u002Fevals\u002Ftest_grade_benchmark.py",[212,239,259,275,298,328],{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":223,"publishedAt":40},"01M70PFHMH9ADY0CRE6047Y4B2","kitty-show-image","Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no \u002Fdev\u002Ftty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-show-image\u002FSKILL.md",[218],{"categoryNo":219,"categoryName":220,"taxonomyType":221,"taxonomyTypeDesc":222},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[224,225,226,227,228,229,230,231,232,233,35,24,38,234,235,236,237,238,23,36],"show","kitty show image","image","kitty","show image","ls","get","send","open","dev","file","text","with","xdg","via",{"skillNo":240,"name":241,"nameZh":6,"description":242,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":243,"categories":244,"keywords":245,"publishedAt":40},"01M70PFEN18HKQ4RCQ1VPGMPTB","kitty-session-persistence","Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-session-persistence\u002FSKILL.md",[],[227,246,247,248,31,249,24,38,250,251,252,23,36,253,254,255,256,257,258,35],"kitty session persistence","session","persistence","snapshots","uname","reboot","terminal","write","edit","snapshot","macos","sessions","restore",{"skillNo":260,"name":261,"nameZh":6,"description":262,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":263,"categories":264,"keywords":265,"publishedAt":40},"01M70PFC77XGXCVQ1543VGZHYR","kitty-remote-control","Safe kitty remote control from an agent — read panes with kitty @ ls\u002Fget-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-remote-control\u002FSKILL.md",[],[266,267,227,268,269,229,270,271,230,272,273,35,24,274,38,235,236,252,23,36],"kitty remote control","remote","control","remote control","running","never","panes","notify","query",{"skillNo":276,"name":277,"nameZh":6,"description":278,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":279,"categories":280,"keywords":281,"publishedAt":40},"01M70P6WVMCT5JG4SACTM69AF9","docs-reference-check","Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved\u002Fdeleted files, or wiring a doc-drift lint.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fdocumentation-plugin\u002Fskills\u002Fdocs-reference-check\u002FSKILL.md",[],[282,283,284,285,286,287,288,289,290,291,35,24,38,292,234,293,294,295,296,297],"docs reference check","check","reference check","reference","docs","links","python3","repo","files","auto","drift","lint","wiring","chezmoi","references","cp",{"skillNo":299,"name":300,"nameZh":6,"description":301,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":302,"categories":303,"keywords":313,"publishedAt":40},"01M6C6NDE7DAQGNWSF22J5CJ0Z","youtube-upload","Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-upload\u002FSKILL.md",[304,307,308],{"categoryNo":305,"categoryName":306,"taxonomyType":221,"taxonomyTypeDesc":222},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":219,"categoryName":220,"taxonomyType":221,"taxonomyTypeDesc":222},{"categoryNo":309,"categoryName":310,"taxonomyType":311,"taxonomyTypeDesc":312},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[314,315,316,317,288,318,36,319,254,320,321,322,35,38,234,323,324,24,325,326,327,238,23],"youtube upload","upload","youtube","Video","run","uv run","publishing","data","uv","api","v3","tags","id","title",{"skillNo":329,"name":330,"nameZh":6,"description":331,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":332,"categories":333,"keywords":337,"publishedAt":40},"01M6C6NABWW1X58KJJM4F6GQMQ","youtube-studio-share","Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-studio-share\u002FSKILL.md",[334],{"categoryNo":335,"categoryName":336,"taxonomyType":221,"taxonomyTypeDesc":222},"01JBSEEDCAT000000000000023","Skill与智能体开发",[338,339,340,341,316,317,342,343,344,345,346,36,347,348,349,350,35,351,24,236,352,23],"youtube studio share","share","youtube studio","studio","browser","javascript","scripting","google workspace","workspace","tool","google","only","MCP","chrome","organization"]