返回市场
间谍-go

间谍-go

作者:monsterxx0393 星标更新:2025-08-08

项目介绍

Go 进程检查器

Go 报告卡 许可证 安装 MCP 服务器

一个用于检查和分析正在运行的 Go 进程的工具,包括协程状态、内存统计信息和二进制信息。

功能

  • 查看详细的协程信息(状态、调度信息)
  • 分析进程内存统计信息
  • 跨平台支持(Linux 和 macOS)
  • 终端界面进行交互式检查
  • HTTP API 以编程方式访问
  • MCP 服务器

安装

go install github.com/monsterxx03/gospy@latest

使用

命令行界面

# 交互式终端界面
sudo gospy top --pid <pid>

# HTTP API 服务器
sudo gospy serve --port 8974

# 获取进程概要
sudo gospy summary --pid <pid>

# 以 JSON 格式获取进程概要
sudo gospy summary --pid <pid> --json

概要命令选项

  • --pid/-p - 目标进程ID(必需)
  • --bin/-b - 二进制文件路径(可选)
  • --json/-j - 输出结果为 JSON 格式

API 端点

  • GET /goroutines?pid=<pid> - 列出所有协程
  • GET /memstats?pid=<pid> - 获取内存统计信息
  • GET /runtime?pid=<pid> - 获取运行时版本信息

MCP 服务器

MCP 服务器提供了一个 HTTP(流式 HTTP)端点。启用方法:

>>> sudo gospy serve --enable-mcp --port 8974

正在端口 8974 启动 API 服务器
端点:
  GET /runtime?pid=<PID>     - 获取运行时信息
  GET /goroutines?pid=<PID> - 获取协程列表
  GET /memstats?pid=<PID>   - 获取内存统计信息
  GET /mcp   - MCP HTTP 端点

可用的 MCP 工具:

  • goroutines - 导出 Go 进程的协程
  • gomemstats - 导出 Go 进程的内存统计信息
  • goruntime - 导出 Go 进程的运行时信息
  • pgrep - 从进程名查找 PID

在 cursor 中的配置

终端界面控制

  • q - 退出
  • r - 刷新数据
  • s - 暂停/恢复顶部视图
  • / - 搜索/过滤协程

终端界面截图

终端界面截图

从源码构建

git clone https://github.com/monsterxx03/gospy.git
cd gospy
make

需求

  • Go 1.20+
  • Linux 或 macOS(仅限 Apple Silicon)
  • 根权限(需要访问内存)

根权限

gospy 需要根权限来:

  • 读取进程内存(Linux 上的 /proc/<pid>/mem)
  • 访问 macOS 上的 Mach API

使用 sudo 运行:

sudo gospy top --pid <pid>

对于开发/调试,您可能希望:

  1. 先构建二进制文件:make
  2. 使用 sudo 运行:sudo ./gospy [command]

致谢

版本 0.7.0 完全重写,由 aider 编写了超过 90% 的代码。额外的帮助来自:

  • DeepSeek (R1 + V3 模型) - AI 编码助手

总计 AI 计算成本:约 $2 美元

许可证

MIT - 详情见 LICENSE 文件。