Hack from the terminal.
安装 •
用法 •
文档 •
贡献
**gori**(고리 —— 韩语中的*环、链接、循环*)位于你的客户端与其目标之间的循环中,
将每一个请求和响应捕获为一个*flow*,你可以跨 HTTP/1.1、HTTP/2、WebSocket、gRPC 和 SSE 对其进行拦截、
重放、模糊测试和扫描。每一个操作也是一个 `gori run` 子命令和一个 MCP 工具,
因此脚本和 AI agent 可以驱动相同的交互。
功能
### 捕获与拦截
- 适用于 HTTP/1.1、HTTP/2、WebSocket、gRPC 和 SSE 的拦截代理
- 保留、编辑、转发或丢弃传输中的流量
- 可搜索的 History,包含用于过滤的查询语言
- Scope 规则、主机名覆盖以及匹配与替换
### 重放、模糊测试与转换
- 用于构建和重新发送请求(包括 WebSocket 和 gRPC)的 Replay 工作台
- 具有四种攻击模式的 Intruder 风格 Fuzzer
- 用于链式编码 / 解码 / 哈希的 Convert 流水线
- 用于对比两个 flow 差异的并排 Comparer
- 内联 JWT / SAML / GraphQL 解码、十六进制视图和美化打印
### 发现与扫描
- Prism 被动与轻度主动漏洞扫描器
- 用于发现隐藏参数的 Param Miner
- 支持 Markdown / JSON 导出的 Findings 分类筛选
### 键盘优先的工作流
- 命令面板(`Ctrl-P`)和上下文空间菜单(`Space`)可触达每一个操作
- 可重新绑定的热键和可切换的颜色主题
- 支持鼠标、多行编辑和转到行导航
### 无头模式与可脚本化
- `gori run` 映射每个 TUI 操作以供非交互式使用
- MCP server(`gori mcp`)向 AI agent 公开相同的交互
## 安装说明
### 快速安装(macOS / Linux)
```
curl -fsSL https://gori.hahwul.com/install.sh | bash
```
之后可以使用 `gori update` 进行更新(支持二进制安装的自更新;针对 Homebrew / Snap / AUR 提供包管理器指导)。
### Homebrew
```
brew tap hahwul/gori
brew install gori
```
### 从源码构建
需要 [Crystal](https://crystal-lang.org/) `>= 1.20.2` 和 `pkg-config`。
```
git clone https://github.com/hahwul/gori.git
cd gori
shards build --release
```
二进制文件将写入 `bin/gori`。
## 用法
gori 通过三个入口点运行一个引擎和一个项目。你可以自己控制、将其交给 AI agent,或者编写脚本,选择最适合当前操控者的方式即可。
### 适合人类:`gori`(TUI)
启动代理并打开交互式终端 UI。无需子命令:
```
gori
```
代理默认监听 `127.0.0.1:8070`,简短的首次运行向导会选择 **全局默认** 绑定和主题(项目之后可以固定自己的设置)。要拦截 HTTPS,请信任 gori 的根 CA。最快的方法是使用面板上的 **打开浏览器**(`Ctrl-P`),它会启动一个已受信任且配置好代理的浏览器。捕获的流量会进入 **History**;按 `Ctrl-P` 打开命令面板,或按 `Space` 查看上下文操作。
```
gori --listen 0.0.0.0 --port 8080 # global bind for this run only (not persisted)
```
### 适合 AI agent:`gori mcp`(MCP server)
`gori mcp` 是一个 [Model Context Protocol](https://modelcontextprotocol.io) server。AI 客户端通过 stdio 启动它,读取你的流量,并驱动与你相同的工具。让 gori 为你的 agent 编写配置,然后重启客户端:
```
gori mcp --install-claude-code # Claude Code (~/.claude.json)
gori mcp --install-claude # Claude Desktop
gori mcp --install-codex # OpenAI Codex
gori mcp --install-agy # Antigravity CLI
gori mcp --install-grok # Grok
```
添加 `--read-only` 以将项目交给不受信任的 agent(仅包含读取工具,不能发送实时请求)。[AI 设置指南](https://gori.hahwul.com/getting-started/ai-setup/) 将引导你连接 agent 并运行你的第一个请求。
### 适合脚本:`gori run`(无头模式 CLI)
`gori run` 映射每个 TUI 操作以供非交互式使用。它是为脚本和 CI 构建的,但也同样适用于手动操作或从 agent 的 shell 中运行:
```
gori run history --format json # dump captured flows as JSON
gori run sitemap # endpoints seen so far
gori run --help # every subcommand
```
所有三个入口点共享同一个项目数据库。请参阅 [文档](https://gori.hahwul.com) 获取完整指南,或在应用程序中打开 **Help** 标签页。
## 开发
```
shards build # release binary at bin/gori
shards run gori # run without installing
```
如果在链接时因未定义的 `BrotliDecoder*` 符号而失败,说明缺少 `libbrotlidec` 或者 `pkg-config` 找不到它 —— 请参阅
[安装指南](https://gori.hahwul.com/getting-started/installation/) 了解有关系统库和
`-Dwithout_native_codecs` 离线构建的信息。
## 为什么叫“gori”?
gori(고리)是韩语中**环、链接或循环**的意思 —— 这正是该工具所处的位置:在客户端与其目标之间的循环中,捕获并重塑每一个通过的请求。
*置身于循环之中。*