by jcaromiq
Goku is an HTTP load testing application written in Rust
# Add to your Claude Code skills
git clone https://github.com/jcaromiq/gokuGuides for using mcp servers skills like goku.
Last scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T16:11:15.314Z",
"npmAuditRan": true,
"pipAuditRan": true
}See how goku compares with popular alternatives.
goku is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by jcaromiq. Goku is an HTTP load testing application written in Rust. It has 148 GitHub stars.
Yes. goku passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/jcaromiq/goku" and add it to your Claude Code skills directory (see the Installation section above).
goku is primarily written in Rust. It is open-source under jcaromiq on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh goku against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.

Goku is a high-performance, scalable HTTP load-testing tool designed for benchmarking and performance analysis of web services. Inspired by tools like Drill and Vegeta, Goku offers modern features and simplicity for engineers to simulate and analyze traffic efficiently.
--rps) for constant-rate load profiles{{uuid}}, {{seq}}, {{random_int}}, …)compare subcommand to diff two benchmark runs--output-file) and per-request log (--results-log)text, json, csvcurl -sSL https://raw.githubusercontent.com/jcaromiq/goku/v3.0.0/scripts/install.sh | sh
cargo install goku-bench
goku --version
Go to the Goku's GitHub Releases page and download the latest .tar.gz for your system:
cargo build --release
Goku can send the final results of every run to a project in Observability Insight, where you get the history of your performance tests and can compare runs to spot regressions. Enable the Goku connector in your project first.
goku login
Goku opens the browser, you log in and choose the project, and a token for that project's Goku connector
is stored in ~/.config/goku/credentials.json (permissions 0600; on macOS/Windows the OS config
directory is used). Use --no-browser to only print the URL, and --portal-url to point to another portal.
goku -c 50 -d 30 --target https://api.example.com/users --report --report-name "users list" --report-tag nightly
Only the final summary (throughput, latency percentiles, status codes and the test configuration) is sent. Query strings and credentials in target URLs are stripped before sending. If the report cannot be sent, Goku exits with a non-zero status.
Browsers are not available in CI: create a token in the project's Goku connector settings and expose it as
GOKU_OI_TOKEN (optionally GOKU_OI_URL for another portal). Environment variables take precedence over
the credentials file. Commit and branch are detected on GitHub Actions and GitLab CI.
- run: goku -c 20 -d 60 --target https://staging.example.com --report --report-name "staging smoke"
env:
GOKU_OI_TOKEN: ${{ secrets.GOKU_OI_TOKEN }}
goku status # project, connector and token in use
goku logout # removes the local credentials file
goku logout only deletes the local file: revoke the token from the Goku connector settings in the portal
to invalidate it.
Goku integrates with the Model Context Protocol (MCP) — use Goku programmatically from any LLM agent or MCP-aware client.
Once Goku is registered as an MCP tool, you can ask your LLM:
"Run a load test on https://api.example.com/users with 50 concurrent clients for 30 seconds using HTTP/2, and give me the p95 and p99 latency."
The LLM will call the run_benchmark MCP tool and return the full structured report.
# Automatic download
curl -sSL https://raw.githubusercontent.com/jcaromiq/goku/v3.0.0/scripts/install_mcp.sh | sh
# Or via Cargo
cargo install goku-mcp
run_benchmarkThe MCP server exposes a single unified tool with the following parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
target |
string | ✅ | URL with optional method prefix. E.g. "POST http://api.example.com/users" |
clients |
number | ✅ | Number of concurrent workers |
requests |
number | — | Total requests (ignored when duration_secs is set) |
duration_secs |
number | — | Test duration in seconds (alternative to requests) |
body |
string | — | Request body for POST/PUT/PATCH |
headers |
string[] | — | Headers in "Name:Value" format |
http2 |
boolean | — | Use HTTP/2 prior knowledge |
ramp_up |
number | — | Seconds to spread worker start |
timeout_ms |
number | — | Request timeout in ms (default: 30000) |
insecure |
boolean | — | Accept invalid TLS certificates |
rps |
number | — | Max requests per second (rate limiting) |
Returns a full JSON report with all latency percentiles, throughput, and status code breakdown.
CLI is versioned with SemVer v2.0.0.
See CONTRIBUTING.md.
Usage: goku [OPTIONS] --target <TARGET>
goku compare <BASELINE> <CANDIDATE>
goku login | logout | status
Options:
-v, --verbose Runs in verbose mode
-t, --target <TARGET> URL to request. Format: [METHOD] <url> [default: GET]
Example: "POST http://localhost:3000/api"
-r, --request-body <REQUEST_BODY> Path to file to use as request body
-c, --clients <CLIENTS> Number of concurrent workers [default: 1]
-i, --iterations <ITERATIONS> Total number of requests [default: 1]
-d, --duration <DURATION> Duration of the test in seconds (alternative to --iterations)
--headers <HEADERS> Headers in "Name:Value" format (repeatable)
--scenario <SCENARIO> Path to a YAML scenario file
--timeout <timeout_ms> Request timeout in ms [default: 30000]
--http2 Enable HTTP/2 prior knowledge
--ramp-up <seconds> Seconds to spread the start of workers
--rps <RPS> Max requests per second across all clients
--output <text|json|csv> Output format [default: text]
--output-file <PATH> Write results to file instead of stdout
--results-log <PATH> Write per-request CSV log (timestamp, status, latency)
--live-stats <seconds> Print live stats every N seconds during the test
--insecure Accept invalid/self-signed TLS certificates
--auth-bearer <TOKEN> Set Authorization: Bearer <TOKEN> header
--auth-basic <USER:PASS> Set Authorization: Basic <base64> header
--pool-idle-timeout <seconds> Connection pool idle timeout [default: 90]
--disable-keepalive Disable HTTP keep-alive / connection reuse
--report Send the final results to Observability Insight
--report-name <NAME> Name of the run in Observability Insight (requires --report)
--report-tag <TAG> Tag for the run in Observability Insight (repeatable, requires --report)
-h, --help Print help
-V, --version Print version
Subcommands:
compare <BASELINE> <CANDIDATE> Compare two JSON result files and show a diff table
login [--portal-url URL] [--no-browser] Link this machine to an Observability Insight project
logout Remove the stored Observability Insight credentials
status Show the project this machine reports to
--target -tSpecifies the HTTP method and URL. Defaults to GET if no method is provided.
goku --target "GET http://localhost:3000/"
goku --target "POST http://localhost:3000/api"
goku --target http://localhost:3000 # implicit GET
--request-body -r OptionalPath to a file whose contents will be sent as the request body.
--clients -cNumber of concurrent workers. Defaults to 1.
--iterations -iTotal number of requests to perform across all workers. Defaults to 1. Cannot be used together with --duration.
--duration -dRun the test for a fixed number of seconds instead of a fixed request count.
--headers OptionalAdd one or more request headers. Repeatable. Format: Name:Value.
goku --headers Content-Type:application/json --headers X-Api-Key:secret ...
--http2 OptionalForce HTTP/2 prior knowledge (skips HTTP/1.1 upgrade negotiation).
--ramp-up OptionalSpread the start of workers over N seconds to simulate a gradual traffic spike.
--rps OptionalLimit the total requests per second across all clients. Useful for constant-rate load profiles (similar to Vegeta).
goku -c 10 -i 10000 --rps 200 --target http://localhost:3000
--output OptionalOutput format. Val