CLI 使用指南
文档版本:20261024
适用于 macOS / Windows 桌面端。iOS 与 Android 没有这个命令。使用前请先打开 ApiCatcher。
CLI 可以让 AI 调用 ApiCatcher 已有的功能,例如搜索和分析 HTTP 请求、管理脚本和重写规则。
命令在哪里
打开系统自带的终端来运行。macOS 是「终端」,Windows 是「命令提示符」或 PowerShell。
macOS 的命令在已经安装的应用里面:
/Applications/ApiCatcher.app/Contents/MacOS/apicatcher-cli tools
如果 ApiCatcher 不在「应用程序」文件夹,把 /Applications/ApiCatcher.app 换成你的 ApiCatcher.app。
可以给当前这个终端窗口起一个短名字,后面就能直接输入 apicatcher:
alias apicatcher="/Applications/ApiCatcher.app/Contents/MacOS/apicatcher-cli"
Windows 到 ApiCatcher 的安装文件夹里,运行里面的 apicatcher-cli.exe。默认位置是:
%LOCALAPPDATA%\Programs\ApiCatcher\apicatcher-cli.exe tools
桌面上的 ApiCatcher 图标是窗口程序,不是这条命令。
后面的例子都写成 apicatcher。请换成你电脑上的实际路径。
应用必须已经打开,并且打开了 CLI
CLI 默认关闭,不会占用端口。要让命令可用:
- 打开 ApiCatcher。
- 在侧栏打开 CLI,打开开关。
- 完全退出应用,再重新打开。这次启动才会在本机接受命令。
关掉开关后,同样要到下次启动才停止。
应用没打开、开关没打开,或者改完开关还没重新启动时,命令会失败。
命令
查看当前版本的工具和参数。以这条命令的输出为准,不要手写过期参数。
apicatcher tools
调用一个工具。--args 是一个 JSON 对象。
apicatcher call search_requests --args '{"host":"api.example.com","limit":10}'
也可以从标准输入读参数:
printf '%s' '{"host":"api.example.com"}' | apicatcher call search_requests
没有传 --args,并且标准输入是终端时,参数是 {}。没有参数的工具可以直接调用:
apicatcher call get_capture_status
查看帮助:
apicatcher --help
输出
标准输出只有一个 JSON 对象。成功还是失败,看里面的 ok。
成功时,工具结果如果本身是 JSON,会放进 result;否则 result 是字符串。
{"ok":true,"tool":"search_requests","result":[{"id":"...","url":"https://api.example.com/v1/users","method":"GET","status":200}]}
失败时:
{"ok":false,"error":"ApiCatcher is not running"}
常用工具
| 工具 | 作用 |
|---|---|
get_capture_status | 抓包是否在运行、当前 Session、请求数量 |
start_capture / stop_capture | 开始或停止抓包 |
list_capture_sessions | 列出抓包 Session,新的在前 |
search_requests | 按 host、method、状态码、关键字搜索请求 |
get_request_detail | 按请求 ID 取 HAR 详情 |
export_curl | 把一条请求导出成 cURL |
host_list | 列出抓到的主机 |
api_list | 列出某个主机上识别出的接口 |
search_logs | 搜索系统和脚本日志 |
get_filter_rules / set_filter_rules / delete_filter_rule | 查看或修改 Host 黑白名单 |
list_scripts / get_script_docs / create_script / update_script / delete_script | 管理脚本。写脚本前先调用 get_script_docs |
list_rewrite_rules / create_rewrite_rule / update_rewrite_rule / delete_rewrite_rule | 管理重写规则 |
list_dns_rules / create_dns_rule / delete_dns_rule | 管理 DNS 映射 |
list_tasks / create_task / get_task_results | 管理定时任务并查看执行记录 |
replay_request | 重放一条已捕获的请求,可改参数、Header 或 Body |
export_api | 把接口导出到 Postman 或 Apifox |
clear_history / clear_hosts | 清空抓包历史,或清空主机和接口记录 |
sleep | 等待若干秒。适合等用户先触发一次请求,再搜索 |
search_requests 常用参数:
| 参数 | 说明 |
|---|---|
keyword | 搜索关键字 |
search_target | url、host、req_header、resp_header、req_body、resp_body |
method | 例如 GET、POST |
host | 主机名 |
status_code | HTTP 状态码 |
file_type | all、json、html、image、video、js、css、text |
session_id | 来自 list_capture_sessions 或 get_capture_status,按原样传回 |
limit | 最多返回多少条,默认 20 |
skip | 跳过多少条,用来翻页 |
示例
先搜索请求,再取其中一条的详情:
apicatcher call search_requests --args '{"host":"api.example.com","limit":5}'
apicatcher call get_request_detail --args '{"request_id":"这里换成上一步返回的 id"}'
安全
- 命令只在这台电脑上可用,局域网里的其他设备连不上。
- 命令读到的是真实抓包内容,可能包含 Cookie、令牌和请求体。不要把输出发到公开场合。