From proxy-troubleshooter
Diagnose and fix local proxy, Clash/Mihomo, VPN-like routing, DNS, TUN, system proxy, app bypass, geo-redirect, and rule matching problems from local evidence. Use when a user says a site or app cannot connect, only some related services fail, traffic is not going through the proxy, a proxy client seems running but routing is wrong, or they want Claude Code, Claude Code Desktop, or Codex to inspect and safely repair local proxy configuration with permission.
How this skill is triggered — by the user, by Claude, or both
Slash command
/proxy-troubleshooter:proxy-troubleshooterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use local evidence first. The user is usually not a network specialist, so do not ask them to self-diagnose DNS, TUN, SNI, rule order, or routing mode before checking what can be checked locally.
agents/openai.yamlreferences/client-detectors.mdreferences/fix-risk-levels.mdreferences/interaction-patterns.mdreferences/local-state-schema.mdreferences/mihomo-clash-notes.mdreferences/playbooks/app-not-using-proxy.mdreferences/playbooks/dns-leak.mdreferences/playbooks/geo-redirect.mdreferences/playbooks/proxy-core-down.mdreferences/playbooks/rule-not-matched.mdreferences/playbooks/tun-not-capturing.mdreferences/playbooks/unknown-gui-client.mdreferences/privacy-and-safety.mdreferences/risk-and-recovery.mdreferences/troubleshooting-flow.mdscripts/apply_scoped_rule_fix.pyscripts/diagnose-proxy.ps1scripts/diagnose_proxy.pyscripts/record_feedback.pyUse local evidence first. The user is usually not a network specialist, so do not ask them to self-diagnose DNS, TUN, SNI, rule order, or routing mode before checking what can be checked locally.
This skill should feel like a local agent with permission, not a support article. Do not send the user to click through a GUI for repetitive low-risk edits after they authorize the agent to perform a narrow fix.
Resolve bundled scripts relative to this SKILL.md.
${CLAUDE_SKILL_DIR}.Read these before action:
references/privacy-and-safety.mdreferences/fix-risk-levels.mdreferences/troubleshooting-flow.mdRead as needed:
references/local-state-schema.md when creating or updating local state.references/interaction-patterns.md when the user's symptom is vague.references/client-detectors.md and references/mihomo-clash-notes.md for Clash/Mihomo or GUI wrapper cases.references/risk-and-recovery.md before any connection-risk or sensitive change.references/playbooks/*.md for symptom-specific diagnosis.%LOCALAPPDATA%\proxy-troubleshooter\~/Library/Application Support/proxy-troubleshooter/${XDG_STATE_HOME:-~/.local/state}/proxy-troubleshooter/references/privacy-and-safety.md, then run only read-only discovery after acceptance.python "${CLAUDE_SKILL_DIR}/scripts/diagnose_proxy.py" --target <hostname>
For initialization or profile refresh, save the redacted profile:
python "${CLAUDE_SKILL_DIR}/scripts/diagnose_proxy.py" --save-profile
For a concrete problem, save both profile and run evidence:
python "${CLAUDE_SKILL_DIR}/scripts/diagnose_proxy.py" --target <hostname> --save-profile --save-run
On Windows, this wrapper is also available:
& "${CLAUDE_SKILL_DIR}/scripts/diagnose-proxy.ps1" -Target <hostname> -SaveProfile -SaveRun
read_only, scoped_low_risk_agent_fix, connection_risk_fix, or sensitive_or_destructive_fix.python "${CLAUDE_SKILL_DIR}/scripts/apply_scoped_rule_fix.py" --config <config.yaml> --domain <domain> --policy <policy>
python "${CLAUDE_SKILL_DIR}/scripts/apply_scoped_rule_fix.py" --config <config.yaml> --domain <domain> --policy <policy> --apply
If diagnosis says a target-related rule exists after MATCH/FINAL, move only that existing rule before the catch-all after authorization:
python "${CLAUDE_SKILL_DIR}/scripts/apply_scoped_rule_fix.py" --config <config.yaml> --domain <domain> --move-existing
python "${CLAUDE_SKILL_DIR}/scripts/apply_scoped_rule_fix.py" --config <config.yaml> --domain <domain> --move-existing --apply
Record the answer with:
python "${CLAUDE_SKILL_DIR}/scripts/record_feedback.py" --run <state-dir>/runs/<run-file>.json --status fixed --solution-summary "Short confirmed fix"
python "${CLAUDE_SKILL_DIR}/scripts/record_feedback.py" --run <state-dir>/runs/<run-file>.json --status unchanged
python "${CLAUDE_SKILL_DIR}/scripts/record_feedback.py" --run <state-dir>/runs/<run-file>.json --status new-symptom --note "Short visible symptom"
Only fixed or --verified promotes an entry into solutions/index.json.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub alexu0317-father/proxy-troubleshooter --plugin proxy-troubleshooter