关于 fiddler-download-setup
fiddler-download-setup 是指导用户下载、安装并启动 Fiddler Everywhere 的技能,面向尚未安装该应用或需要升级的用户。它会检测系统、架构和版本,并在安装后提供 MCP 设置选项。
主要功能
- 01检查安装状态与版本
- 02识别操作系统和架构
- 03从清单解析最新版本
- 04下载并安装应用
- 05启动 Fiddler Everywhere
- 06提供 MCP 配置后续步骤
适用场景
- 01在新设备上安装 Fiddler Everywhere
- 02检查现有安装是否需要升级
- 03按系统类型执行下载与安装
- 04安装后配置 Fiddler MCP 连接
MCP 相关
该技能本身不提供 MCP 服务,而是在安装并启动 Fiddler Everywhere 后,引导用户配置 Fiddler MCP 服务连接。接受后会调用 fiddler-mcp-setup 技能完成配置。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ telerik/ fiddler-agent-tools --skill fiddler-download-setup安装后在 Claude Code 中输入/fiddler-download-setup确认已加载。
详细介绍
Fiddler 下载与设置
指导用户下载、安装并启动 Fiddler Everywhere。
操作规则
- 此技能以 shell 为先。尚未安装 Fiddler,因此没有可用的 MCP 工具。
- 构造任何下载 URL 前,先从清单中解析当前版本。 切勿硬编码版本号。
- 在 Windows 上,检测已打开的终端。只有在终端不是 PowerShell 时,才使用以下命令封装并运行脚本:powershell.exe -Command 'script'。使用单引号封装脚本!
阶段 1 — 检查是否已安装 Fiddler
下载前,检查是否已安装 Fiddler Everywhere。 如果已安装,还要读取已安装的版本,并与最新可用版本比较。仅当应用未安装,或有可用更新且用户希望升级时,才继续阶段 2。
macOS — 检测并检查版本
if [ -d "/Applications/Fiddler Everywhere.app" ]; then
INSTALLED_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" \
"/Applications/Fiddler Everywhere.app/Contents/Info.plist" 2>/dev/null)
echo "INSTALLED: $INSTALLED_VERSION"
else
echo "NOT_INSTALLED"
fi
如果为 INSTALLED,则获取检测到的架构对应的最新版本并进行比较:
ARCH=$(uname -m)
if [ "$ARCH" = "arm64" ]; then
MANIFEST_URL="https://downloads.getfiddler.com/mac-arm64/latest-mac.yml"
else
MANIFEST_URL="https://downloads.getfiddler.com/mac/latest-mac.yml"
fi
LATEST_VERSION=$(curl -s "$MANIFEST_URL" | grep '^version:' | awk '{print $2}')
echo "Installed: $INSTALLED_VERSION | Latest: $LATEST_VERSION"
if [ "$INSTALLED_VERSION" = "$LATEST_VERSION" ]; then
echo "UP_TO_DATE"
else
echo "UPDATE_AVAILABLE"
fi
Linux — 检测并检查版本
APPIMAGE=$(ls ~/Downloads/fiddler-everywhere-*.AppImage 2>/dev/null | sort -V | tail -1)
if command -v fiddler-everywhere &>/dev/null || [ -n "$APPIMAGE" ]; then
# Extract version from AppImage filename as the most reliable source
INSTALLED_VERSION=$(echo "$APPIMAGE" | grep -oP '[\d]+\.[\d]+\.[\d]+')
echo "INSTALLED: $INSTALLED_VERSION"
LATEST_VERSION=$(curl -s "https://downloads.getfiddler.com/linux/latest-linux.yml" \
| grep '^version:' | awk '{print $2}')
echo "Installed: $INSTALLED_VERSION | Latest: $LATEST_VERSION"
if [ "$INSTALLED_VERSION" = "$LATEST_VERSION" ]; then
echo "UP_TO_DATE"
else
echo "UPDATE_AVAILABLE"
fi
else
echo "NOT_INSTALLED"
fi
Windows(PowerShell)— 检测并检查版本
$installed = Get-ItemProperty `
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
"HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" `
-ErrorAction SilentlyContinue |
Where-Object { $_.DisplayName -like "*Fiddler Everywhere*" }
if ($installed) {
$installedVersion = $installed.DisplayVersion
Write-Host "INSTALLED: $installedVersion"
$manifest = Invoke-WebRequest "https://downloads.getfiddler.com/win/latest.yml" -UseBasicParsing
$text = [System.Text.Encoding]::UTF8.GetString($manifest.RawContentStream.ToArray())
$latestVersion = ($text | Select-String '(?m)^version:\s*(.+)').Matches.Groups[1].Value.Trim()
Write-Host "Installed: $installedVersion | Latest: $latestVersion"
if ($installedVersion -eq $latestVersion) { "UP_TO_DATE" } else { "UPDATE_AVAILABLE" }
} else {
"NOT_INSTALLED"
}
结果说明:
NOT_INSTALLED— 继续阶段 2,下载并安装。UP_TO_DATE— 告知用户其 Fiddler Everywhere 已是最新版本,并停止执行此技能。UPDATE_AVAILABLE— 告知用户已安装的版本和最新版本,然后询问是否要升级。如果是,继续阶段 2(新的安装程序会替换现有版本)。如果否,则停止。
阶段 2 — 检测操作系统并解析版本
同时运行这两条命令。清单探测还会确认网络连接。
uname -s && uname -m
VERSION=$(curl -s "https://downloads.getfiddler.com/mac-arm64/latest-mac.yml" \
| grep '^version:' | awk '{print $2}')
echo "Latest Fiddler Everywhere: $VERSION"
在 Windows(PowerShell)上:
$env:PROCESSOR_ARCHITECTURE # AMD64 or ARM64
$manifest = Invoke-WebRequest "https://downloads.getfiddler.com/win/latest.yml" -UseBasicParsing
$text = [System.Text.Encoding]::UTF8.GetString($manifest.RawContentStream.ToArray())
$VERSION = ($text | Select-String '(?m)^version:\s*(.+)').Matches.Groups[1].Value.Trim()
Write-Host "Latest Fiddler Everywhere: $VERSION"
uname -s | uname -m | 平台 |
|---|---|---|
Darwin | arm64 | macOS Apple Silicon |
Darwin | x86_64 | macOS Intel |
Linux | 任意值 | Linux |
| — | — | Windows — 使用上面的 PowerShell 路径 |
阶段 3 — 下载
使用阶段 2 中解析的 $VERSION 构造直接的版本化 URL。
在 macOS 上优先使用 .pkg 格式。
macOS
# Apple Silicon (arm64)
curl -L \
"https://agent-downloads.getfiddler.com/mac-arm64/Fiddler%20Everywhere%20${VERSION}.pkg" \
-o ~/Downloads/FiddlerEverywhere.pkg
# Intel (x86_64)
curl -L \
"https://agent-downloads.getfiddler.com/mac/Fiddler%20Everywhere%20${VERSION}.pkg" \
-o ~/Downloads/FiddlerEverywhere.pkg
Linux
VERSION=$(curl -s "https://downloads.getfiddler.com/linux/latest-linux.yml" \
| grep '^version:' | awk '{print $2}')
curl -L \
"https://agent-downloads.getfiddler.com/linux/fiddler-everywhere-${VERSION}.AppImage" \
-o ~/Downloads/FiddlerEverywhere.AppImage
Windows(PowerShell)
Invoke-WebRequest `
"https://agent-downloads.getfiddler.com/win/Fiddler%20Everywhere%20$VERSION.exe" `
-OutFile "$env:USERPROFILE\Downloads\FiddlerEverywhere.exe"
阶段 4 — 安装
macOS — PKG(无界面,无向导)
不要直接使用 sudo installer — sudo 会在 Agent 的隐藏 shell 中等待输入密码,用户无法输入。改用 osascript,它会弹出用户可以在屏幕上看到的 macOS 原生身份验证对话框。
do shell script with administrator privileges 以 root 身份运行,由于 macOS 沙盒限制,无法访问 ~/Downloads。请先将安装包复制到 /tmp(所有用户均可读取),然后从那里安装。
通过 bash 工具调用运行这两条命令:
cp ~/Downloads/FiddlerEverywhere.pkg /tmp/FiddlerEverywhere.pkg
然后,在运行下一条命令前告知用户:
“屏幕上会弹出 macOS 密码对话框。请在其中输入您的登录密码以授权安装,之后我会自动继续。”
osascript -e 'do shell script "installer -pkg /tmp/FiddlerEverywhere.pkg -target /" with administrator privileges'
osascript 会一直阻塞,直到用户批准对话框且安装完成。退出代码为 0 后,进行清理。
rm /tmp/FiddlerEverywhere.pkg
macOS — DMG(如果用户更喜欢拖放安装)
hdiutil attach ~/Downloads/FiddlerEverywhere.dmg -nobrowse
cp -R "/Volumes/Fiddler Everywhere/Fiddler Everywhere.app" /Applications/
hdiutil detach "/Volumes/Fiddler Everywhere"
Linux
chmod +x ~/Downloads/FiddlerEverywhere.AppImage
~/Downloads/FiddlerEverywhere.AppImage &
Windows — 静默安装
Start-Process "$env:USERPROFILE\Downloads\FiddlerEverywhere.exe" -ArgumentList "/S" -Wait
启动 Fiddler:
macOS:
open -a "Fiddler Everywhere" && sleep 15
Linux:
(nohup fiddler-everywhere &>/dev/null &); sleep 15
Windows: 重要提示:在 Windows 上,如果当前使用的终端是 bash,请使用专用的 GitBash 脚本。
PowerShell
$candidates = @(
"$env:LOCALAPPDATA\Programs\Fiddler Everywhere\Fiddler Everywhere.exe",
"C:\Program Files\Fiddler Everywhere\Fiddler Everywhere.exe",
"C:\Program Files (x86)\Fiddler Everywhere\Fiddler Everywhere.exe"
)
$fiddlerExe = $candidates | Where-Object { Test-Path $_ } | Select-Object -First 1
if ($fiddlerExe) {
$cmdLine = '"' + $fiddlerExe + '"'
Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @{ CommandLine = $cmdLine } | Out-Null
Start-Sleep 15
}
Git Bash
FIDDLER_EXE=""
for dir in "$LOCALAPPDATA/Programs/Fiddler Everywhere" \
"/c/Program Files/Fiddler Everywhere" \
"/c/Program Files (x86)/Fiddler Everywhere"; do
if [ -f "$dir/Fiddler Everywhere.exe" ]; then
FIDDLER_EXE="$dir/Fiddler Everywhere.exe"
break
fi
done
if [ -n "$FIDDLER_EXE" ]; then
"$FIDDLER_EXE" &
sleep 15
fi
阶段 5 — 建议设置 MCP
安装并启动 Fiddler Everywhere 后,告知用户有一个自动 MCP 设置技能,可以配置 Fiddler MCP 服务连接。
显示以下消息:
Fiddler Everywhere 已安装并正在运行。
有一个自动 MCP 设置技能,可以为你的 AI Agent 配置 Fiddler MCP 服务连接。这将允许 Agent 工具直接与 Fiddler 交互——捕获流量、检查会话、创建规则等,所有操作都可以在编辑器中完成。
是否要我现在自动配置 MCP?
使用提问工具让用户选择:
- 是,自动配置 MCP(推荐)
- 否,我稍后手动设置
如果用户接受
从远程位置安装 fiddler-mcp-setup 技能并调用它:
远程技能 URL: https://github.com/telerik/fiddler-agent-tools/tree/master/skills/fiddler-mcp-setup
按照 fiddler-mcp-setup 技能说明完成端到端的 MCP 配置。
如果用户拒绝
表示理解,并告知他们随时可以稍后下载 MCP 设置技能。
故障排除
| 问题 | 解决方案 |
|---|---|
| macOS 密码对话框被取消 / 安装中止 | 重新运行 osascript 命令——/tmp 中的 pkg 文件仍然存在 |
hdiutil: attach failed | 文件可能尚未完全下载——重新运行 curl 命令 |
| Windows EXE 被 SmartScreen 拦截 | 右键单击 → 以管理员身份运行 |
| 应用在 macOS 上无法打开 | 运行 xattr -cr "/Applications/Fiddler Everywhere.app" 清除隔离属性 |