{"id":28769474,"url":"https://github.com/monsterxx03/gospy","last_synced_at":"2026-01-16T19:56:14.009Z","repository":{"id":57496710,"uuid":"205302576","full_name":"monsterxx03/gospy","owner":"monsterxx03","description":"Non-Invasive goroutine inspector","archived":false,"fork":false,"pushed_at":"2025-06-13T13:56:42.000Z","size":5535,"stargazers_count":90,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-13T14:51:48.996Z","etag":null,"topics":["aider","golang","goroutine","mcp-server","profiling"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monsterxx03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-08-30T04:10:17.000Z","updated_at":"2025-06-13T13:55:47.000Z","dependencies_parsed_at":"2024-06-20T11:58:18.052Z","dependency_job_id":"f35cc14e-b3eb-4d0c-96db-f2a9c0d5414e","html_url":"https://github.com/monsterxx03/gospy","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/monsterxx03/gospy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monsterxx03%2Fgospy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monsterxx03%2Fgospy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monsterxx03%2Fgospy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monsterxx03%2Fgospy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monsterxx03","download_url":"https://codeload.github.com/monsterxx03/gospy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monsterxx03%2Fgospy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28482136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aider","golang","goroutine","mcp-server","profiling"],"created_at":"2025-06-17T13:03:57.465Z","updated_at":"2026-01-16T19:56:14.002Z","avatar_url":"https://github.com/monsterxx03.png","language":"Go","funding_links":[],"categories":["Go","Embedded System","Monitoring and Logging"],"sub_categories":["How to Submit"],"readme":"# Go Process Inspector\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/monsterxx03/gospy)](https://goreportcard.com/report/github.com/monsterxx03/gospy)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=gospy\u0026config=eyJ1cmwiOiJodHRwOi8vbG9jYWxob3N0Ojg5NzQvbWNwIn0%3D)\n\nA tool for inspecting and analyzing running Go processes, including goroutine states, memory statistics, and binary information.\n\n## Features\n\n- View detailed goroutine information (status, scheduling info)\n- Analyze process memory statistics\n- Cross-platform support (Linux and macOS)\n- Terminal UI for interactive inspection\n- HTTP API for programmatic access\n- mcp server\n\n## Installation\n\n```bash\ngo install github.com/monsterxx03/gospy@latest\n```\n\n## Usage\n\n### CLI Interface\n\n```bash\n# Interactive terminal UI\nsudo gospy top --pid \u003cpid\u003e\n\n# HTTP API server\nsudo gospy serve --port 8974\n\n# Get process summary\nsudo gospy summary --pid \u003cpid\u003e\n\n# Get process summary in JSON format\nsudo gospy summary --pid \u003cpid\u003e --json\n```\n\n#### Summary Command Options\n- `--pid/-p` - Target process ID (required)\n- `--bin/-b` - Path to binary file (optional)\n- `--json/-j` - Output results in JSON format\n\n### API Endpoints\n\n- `GET /goroutines?pid=\u003cpid\u003e` - List all goroutines\n- `GET /memstats?pid=\u003cpid\u003e` - Get memory statistics\n- `GET /runtime?pid=\u003cpid\u003e` - Get runtime version info\n\n### MCP Server\n\nThe MCP server provides an http (streamableHTTP) endpoint. To enable:\n\n```bash\n\u003e\u003e\u003e sudo gospy serve --enable-mcp --port 8974\n\nStarting API server on port 8974\nEndpoints:\n  GET /runtime?pid=\u003cPID\u003e     - Get runtime info\n  GET /goroutines?pid=\u003cPID\u003e - Get goroutines list\n  GET /memstats?pid=\u003cPID\u003e   - Get memory stats\n  GET /mcp   - MCP http endpoint\n\n```\n\nAvailable MCP tools:\n- `goroutines` - Dump goroutines for a go process\n- `gomemstats` - Dump memory stats for a go process\n- `goruntime`  - Dump runtime info for a go process\n- `pgrep`      - Find pid from process name\n\nConfig in cursor\n\n![](screenshots/mcp-config.png)\n\n\n### Terminal UI Controls\n\n- `q` - Quit\n- `r` - Refresh data\n- `s` - Suspend/Resume top view\n- `/` - Search/filter goroutines\n\n### Terminal UI Screenshot\n\n![Terminal UI Screenshot](screenshots/top.gif)\n\n## Building from Source\n\n```bash\ngit clone https://github.com/monsterxx03/gospy.git\ncd gospy\nmake\n```\n\n## Requirements\n\n- Go 1.20+\n- Linux or macOS (Apple Silicon only)\n- Root privileges (required for memory access)\n\n## Root Privileges\n\ngospy requires root privileges to:\n- Read process memory (/proc/\u003cpid\u003e/mem on Linux)\n- Access Mach APIs on macOS\n\nRun with sudo:\n```bash\nsudo gospy top --pid \u003cpid\u003e\n```\n\nFor development/debugging, you may want to:\n1. Build the binary first: `make`\n2. Run with sudo: `sudo ./gospy [command]`\n\n## Credits\n\nVersion 0.7.0 was completely rewritten from scratch with [aider](https://aider.chat), which wrote \u003e90% of the code. Additional assistance from:\n- [DeepSeek](https://deepseek.com) (R1 + V3 models) - AI coding assistant\n\nTotal AI compute cost: ~$2 USD\n\n## License\n\nMIT - See [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonsterxx03%2Fgospy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonsterxx03%2Fgospy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonsterxx03%2Fgospy/lists"}