Awesome
⚠️⚠️⚠️⚠️⚠️⚠️
This project is now archived. If you want to use Hoppscotch as a CLI client for CI/CD purposes, please use the new Hoppscotch CLI.
⚠️⚠️⚠️⚠️⚠️⚠️
Hoppscotch CLI
Send HTTP requests from terminal and Generate API Docs. An alternative to cURL, httpie ⚡️
Installation
From Script
$ sh -c "$(curl -sL https://git.io/getpwcli)"
From Source
- Clone the repo
$ git clone https://github.com/hoppscotch/hopp-cli.git
- Build and install
$ make
$ sudo make install
From Binary
- You can download prebuilt binaries from the Releases page.
- Supported platforms:
- Linux (x64, x86)
- Mac (x64)
- Windows (x64, x86)
IMPORTANT: Not tested on Windows, please leave your feedback/bugs in the Issues section
Arch GNU/Linux
- You can install from AUR
- There are three different packages available
Name | Link | Description |
---|---|---|
hopp-cli-bin | https://aur.archlinux.org/packages/hopp-cli-bin/ | Pre-built binary |
hopp-cli | https://aur.archlinux.org/packages/hopp-cli/ | Compiled from latest release |
hopp-cli-git | https://aur.archlinux.org/packages/hopp-cli-git/ | Compiled from latest commit |
Homebrew
Install by
brew install athul/tap/hopp-cli
Windows
You can download pre-built binaries from the Releases page.
Alternatively, you can install hopp-cli
via Scoop:
scoop install hopp-cli
Usages
Putting Simply: Just pass the URL to the request method
Basic Commands
- GET :
$ hopp-cli get <url>
- POST:
$ hopp-cli post <url>
- PATCH:
$ hopp-cli patch <url>
- PUT :
$ hopp-cli put <url>
- DELETE:
$ hopp-cli delete <url>
Example for a POST request:
$ hopp-cli post https://reqres.in/api/users/2 -c js -b '{"name": "morp","job": "zion resident"}'
Extra Commands
send
for testing multiple endpointsgen
for generating API docs from Collection
SEND
This can be used to test multiple endpoints from the hoppscotch-collection.json
file.
The output will only be the
statuscode
Example:
$ hopp-cli send <PATH to hoppscotch-collection.json>
Sample output:
GEN
The gen
command generates the API documentation from hoppscotch-collection.json
file and serves it as a static page on port 1341
.
Example:
$ hopp-cli gen <PATH to hoppscotch-collection.json>
Sample Hosted site: https://hopp-docsify.surge.sh/
Powered by Doscify
Flags:
browser
orb
to toggle whether the browser should open automatically [Boolean]port
orp
for specifying the port where the server should listen to [Integer]
There are 3 Authentication Flags
(optional)
-t
or--token
for a Bearer Token for Authentication-u
for theUsername
in Basic Auth-p
for thepassword
in Basic Auth
There are 2 flags especially for the data management requests like POST, PUT, PATCH and DELETE
-c
or--ctype
for the Content Type-b
or--body
for the Data Body, this can be of json, html or plain text based on the request.
Enclose the body in Single Quotes(')
Content Types can be of
Short Code | Content Type |
---|---|
js | application/json |
html | text/html |
xml | application/xml |
plain | text/plain |
Include Arbitrary Headers
-H
or--header
may be specified multiple times to include headers with the request.
Example:
$ hopp-cli get -H 'X-Api-Key: foobar' -H 'X-Api-Secret: super_secret' https://example.com/api/v1/accounts
Providing a Request Body via stdin
In addition to -b
/--body
, you may provide a request body via stdin.
If you combine this method with the -b
flag, the body provided with -b
will be ignored.
Example with Pipes
$ echo '{"foo":"bar"}' | hopp-cli post -c js http://example.com
Example with Redirection
$ cat myrequest.json
{
"foo": "bar"
}
$ hopp-cli post -c js http://example.com <myrequest.json
Providing a Request Body via text-editor
In addition to providing request body via -b / --body
flag and stdin,
you can also use -e / --editor
flag which opens default text-editor in your system.
Example:
$ hopp-cli post https://reqres.in/api/users/2 -c js -e
It will preferrably open editor based on $EDITOR
environment variable.
For example:
If the environment variable is $EDITOR=code
it will open VSCode for request-body input. Else, it will use default editor value based on the OS.
OS | Default Editor |
---|---|
Linux | nano |
macOS | nano |
Windows | notepad |