
resterm v1.10.2
用于 HTTP、GraphQL、gRPC、WebSocket 和 SSE 的终端 API 客户端。可进行差异比较和版本控制的纯 .http 文件,支持脚本化测试、工作流、模拟、录制器,以及用于 CI 的 CLI 运行器。
Resterm
面向终端的 API 即代码工作台。
resterm.app · 文档
Resterm 是一个以纯 .http/.rest 文件为核心的代码优先 API 客户端。一个请求就是几行可读、可 diff、可纳入 git 的文本,工作流和本地 mock 也是如此。工作时你从终端 UI 发送它们,而 resterm run 会在 CI 中运行同样的文件。如果你的 API 位于 SSH 堡垒机之后或 Kubernetes 集群内部,Resterm 会为你打开隧道或端口转发。
功能特性
- HTTP、GraphQL、gRPC(支持反射与流式)、WebSocket 和 SSE
- 环境文件、分组环境、dotenv 文件和操作系统变量
- bearer token、OAuth 2.0(客户端凭证、密码,以及带 PKCE 的授权码),以及来自你已在使用的 CLI 的 token,例如
gh auth token - TLS 客户端证书、自定义根 CA、代理、HTTP/2,以及每个环境独立的 cookie jar
- 使用
@capture和@assert进行捕获与校验,另有@poll和@retry - 将请求串联为步骤的工作流,支持
@if和@for-each - 用于逻辑的 RestermScript 和
@rts test块 - 支持 Vim 动作的编辑器,具备语法高亮、指令/请求头/文件路径补全,以及内联诊断
@compare可将同一请求发送到多个环境并对比结果- 带各阶段预算的时间线追踪,并可导出到 OpenTelemetry
@profile提供延迟统计、直方图、P95 和 P99- Resterm 为请求打开的 SSH 隧道和 Kubernetes 端口转发
- 基于你的
.http文件的本地 mock 服务器,以及可将真实流量转换为请求或 mock 的录制代理 - 用于 CI 的
resterm run,支持文本、JSON 或 JUnit 输出,并通过退出码区分校验失败与 TLS 或隧道错误 - 无头 Go API,可从你自己的 Go 代码运行同样的文件
- 从 curl 和 OpenAPI 导入,并将集合以 bundle 或 zip 文件分享
- 自定义按键绑定和主题
- 在
$EDITOR中打开文件,或用默认应用打开响应体
无需账号,无遥测。
[!NOTE] Resterm 没有 MCP 服务器或内置 AI 功能。如果你想让 LLM 理解 Resterm,请让它阅读
docs/中的 Markdown 文档,或访问 resterm.app/docs。
截图
追踪与时间线
点击查看更多 UI
工作流
性能分析器
解释
RestermScript
安装
macOS 和 Linux:
brew install resterm
# or
curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
Windows:
iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
使用 Go 1.25 或更新版本:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
macOS、Linux 和 Windows 的预编译二进制文件位于 releases 页面。macOS 二进制文件需要 macOS 13 Ventura 或更高版本,Linux 二进制文件需要 glibc 2.32 或更高版本。
要更新 Homebrew 安装,请运行 brew upgrade resterm。对于发布版二进制文件或使用脚本完成的安装,请运行 resterm --update。如果你使用 Go 安装,请重新运行上面的 go install 命令。更多内容请参阅安装指南。
快速开始
mkdir my-api && cd my-api
resterm init
resterm
resterm init 会创建一个 requests.http 文件,其中包含几个示例请求和用于响应这些请求的本地 mock,因此你无需真实 API 即可试用。按 g Shift+M 启动 mock 服务器,将光标移到某个请求上并按 Ctrl+Enter 发送它。随时按 ? 获取帮助。
你也不需要 init。运行 resterm,输入 URL 或粘贴 curl 命令,然后按 Ctrl+Enter。
同一个文件也可以在没有 UI 的情况下运行。在一个终端中启动 mock,在另一个终端中运行请求:
resterm mock requests.http # terminal 1
resterm run --request CreateUser requests.http # terminal 2
请求文件
Resterm 读取标准的 .http 格式,并在其基础上添加 # @ 指令,用于设置和自动化:
# @setting base-url https://api.example.com/v1/
### Create users
// Send this request once for each name in the list.
# @for-each ["david", "tom"] as name
# @when env.meta.name == "dev"
# @assert response.statusCode == 201
POST users
Content-Type: application/json
{"name":"{{= name }}"}
第一个请求之前的 @setting 会应用于整个文件。### 开始一个新请求。请求上方的指令可以重复该请求、跳过该请求或检查响应。
更多示例见 _examples/,所有指令都列在请求文件参考中。
文档
完整文档位于 resterm.app/docs。推荐的入门内容包括工作流、模拟服务器、录制、CLI 和 RestermScript。
在 TUI 中,:help <topic> 会打开内置手册,:docs <topic> 会在网站上打开同一页面。
如需从你自己的 Go 代码中运行请求文件,请参阅 headless 包。
赞助
Resterm 现在是并将永远是免费且开源的。如果你喜欢我的工作,可以在 GitHub 上赞助。