Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shivkanthb/curlx
◼️ Supercharge curl with history, collections and more.
https://github.com/shivkanthb/curlx
api cli-app curl curl-commands postman runner-script
Last synced: 30 days ago
JSON representation
◼️ Supercharge curl with history, collections and more.
- Host: GitHub
- URL: https://github.com/shivkanthb/curlx
- Owner: shivkanthb
- Created: 2019-01-15T22:33:43.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-07-16T23:35:38.000Z (over 5 years ago)
- Last Synced: 2024-12-27T01:07:16.582Z (about 1 month ago)
- Topics: api, cli-app, curl, curl-commands, postman, runner-script
- Language: JavaScript
- Homepage: https://curlx.dev
- Size: 178 KB
- Stars: 261
- Watchers: 7
- Forks: 5
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![](assets/intro-banner.png)
`curlx` is a simple command line HTTP client that keeps track of request history, helps you organize your requests into collections, run and test frequent calls faster and more.
![](assets/small-clear.png)
### Getting Started
Install curlx
```
npm install curlx -g
```
Make sure to have nodejs version 8.0 or above.![](assets/small-clear.png)
### Available options
![](assets/tiny-clear.png)
**Help**
```
cx help
```
Displays help menu with a list of available options![](assets/tiny-clear.png)
**History**
```
cx history
```
Displays list of recent requests made with cx![](assets/tiny-clear.png)
**Collections**```
cx collections
```
Displays an iterable list of created collections. Collections are a group of requests.![](assets/tiny-clear.png)
**New**
```
cx new collection
```
Walks you through a prompt for creating a new collection.
```
cx new request
```
Walks you through saving a new request to an existing collection. If the collection does not exist already, create using `cx new collection` command![](assets/tiny-clear.png)
**Delete**
```
cx delete
```
Deletes request with `request_id` present in history
```
cx delete
```
Deletes a request with `request_id` in collection `collection_name`
```
cx delete --collection
```
Deletes the collection and all its requests![](assets/tiny-clear.png)
**Run**
```
cx run
```
Runs the request with id `request_id` present in history again```
cx run
```
Runs the request with id `request_id` present inside collection `collection_name`![](assets/small-clear.png)
### Make requests
Use `cx` or `curlx` just like how you would use cURL.Here's a simple GET call:
```
$ cx -X GET "https://httpbin.org/get"HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Content-Type: application/json
Date: Mon, 25 Mar 2019 06:02:02 GMT
Server: nginx
Content-Length: 202
Connection: keep-alive{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.54.0"
},
"origin": "73.222.138.87, 73.222.138.87",
"url": "https://httpbin.org/get"
}
```![](assets/small-clear.png)
### Sharing
All your collections and history are stored locally in your machine. Navigate to `cxdb` in your root folder.
Example:
```
$ cd ~/cxdb$ ls
collections.json history.json$ cat collections.json
{
"collections": {
"Test": [
{
"id": "ANRfSkWYU",
"name": "Post test call",
"method": "post",
"command": "curl -i \"-X\" \"POST\" \"https://httpbin.org/post\"",
"url": "https://httpbin.org/post"
}
],
"mycoolapp": [
{
"id": "KvUx9H9t6",
"name": "users",
"method": "get",
"command": "curl -i 'http://localhost:3000/api/users',
"url": "http://localhost:3000/api/users"
}
]
}
}
```
In this example, There are two collections `Test` and `mycoolapp` with 1 request each. To run, say, the `users` request in `mycoolapp`,
```
$ cx run mycoolapp:KvUx9H9t6HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Content-Type: application/json
Date: Mon, 25 Mar 2019 06:02:02 GMT
Server: nginx
Content-Length: 202
Connection: keep-alive[{
"userId": 1,
"id": 1,
"name": "Richard Hendricks",
"company": "Pied Piper"
}, {
"userId": 2,
"id": 2,
"name": "Gavin Belson",
"company": "Hooli"
}]
```Since since are just json files, you can easily share these with another user. Simple add the collections to an existing collection and they will be available via the CLI.