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 默认关闭,不会占用端口。要让命令可用:

  1. 打开 ApiCatcher。
  2. 在侧栏打开 CLI,打开开关。
  3. 完全退出应用,再重新打开。这次启动才会在本机接受命令。

关掉开关后,同样要到下次启动才停止。

应用没打开、开关没打开,或者改完开关还没重新启动时,命令会失败。


命令

查看当前版本的工具和参数。以这条命令的输出为准,不要手写过期参数。

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_targeturl、host、req_header、resp_header、req_body、resp_body
method例如 GET、POST
host主机名
status_codeHTTP 状态码
file_typeall、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、令牌和请求体。不要把输出发到公开场合。