oha CLI
The CLI sends bounded HTTP load to your service and gives agents response-time and request-success measurements.
- 10,657 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Runs create real HTTP load and can cause slowdown or errors if limits are excessive.
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/ohaDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Runs create real HTTP load and can cause slowdown or errors if limits are excessive.
This is third-party code. Review the repository files before installing.
What it does
oha sends HTTP requests to a selected service and reports load-test results. Users set request count or duration, concurrency and a total request-rate limit. An agent can prepare a bounded run and analyze its summary. A live terminal view is available alongside JSON and CSV output. URL files support several targets, and latency correction can include time waiting for a free connection.
Who it is for. Performance engineers measuring their own HTTP service under an agreed load budget.
Good fit when
- A release needs latency comparison under identical test load.
- An optimization needs a repeatable short measurement.
- An agent should analyze a JSON result without an interactive display.
- Several authorized URLs belong in one load scenario.
Not a fit when
- The service owner has not authorized a load test.
- Request rate and duration cannot be bounded beforehand.
- The task needs full-browser user interactions.
Example request
Prepare a short oha test for our staging service with an explicit rate limit, show parameters before running and analyze its JSON output.Limitations
The first Cargo installation route needs stable Rust, make and cmake. Load requests consume service resources and can affect users; use only authorized targets with explicit limits. Slow servers can leave requests waiting for connections; without latency correction that wait is omitted. End-of-duration handling of outstanding requests differs by HTTP version and options, so account for it when comparing runs.
How to disable. Stop oha and check the service after the load. Saved JSON or CSV results remain locally.
FAQ
Is `-q` a per-connection limit?
No. It limits the overall request rate.
How do I get JSON?
Use `--output-format json`.
What does latency correction do?
With rate scheduling, `--latency-correction` includes the scheduled request’s waiting time.
Can I specify duration?
Yes. Use `-z` for a duration instead of a fixed request count.
Can I inspect individual requests?
CSV mode emits a line for each request result.
Discussion
No questions or reviews yet.
Related
CLI toolsThe CLI runs HTTP request chains from plain-text files and checks response status, headers and body content.
A Rust HTTP load-testing tool with an MCP server: an agent runs a benchmark and gets latency percentiles and status breakdowns.
The CLI runs Node.js tests concurrently and shows expected-versus-actual differences for an agent to investigate.
An MCP server from the AWS load testing solution: an agent reads scenarios and runs and starts JMeter, K6 and Locust tests
The interactive HTTP client lets you inspect a browser request, change parameters and explore its response in the terminal.
aimock is a test-API CLI that validates local fixture files before starting a server or exercising the application.
README in short
The terminal display can be disabled for batch use. Global rate limits and burst scheduling are supported.