Skip to content
◼️ Supercharge curl with history, collections and more.
Branch: master
Clone or download
Latest commit b441cfb Jul 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets readme v1.4 Mar 25, 2019
bin update package.json and more Mar 14, 2019
cmds Handle curl exception scenario Jul 2, 2019
prompts removed logs and unused deps Mar 14, 2019
utils Improve pretty print handling of string Jul 2, 2019
.gitignore
README.md readme v1.5 Mar 26, 2019
index.js move helpers to utils Jul 1, 2019
output.js move helpers to utils Jul 1, 2019
package.json new version Jul 15, 2019
storage.js multiple minor improvements and refactor Mar 13, 2019

README.md

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.

Getting Started

Install curlx

npm install curlx -g

Make sure to have nodejs version 8.0 or above.

Available options

Help

cx help

Displays help menu with a list of available options

History

cx history

Displays list of recent requests made with cx

Collections

cx collections

Displays an iterable list of created collections. Collections are a group of requests.

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

Delete

cx delete <id>

Deletes request with request_id present in history

cx delete <collection_name:request_id>

Deletes a request with request_id in collection collection_name

cx delete <collection_name> --collection

Deletes the collection and all its requests

Run

cx run <request_id>

Runs the request with id request_id present in history again

cx run <collection_name:request_id>

Runs the request with id request_id present inside collection collection_name

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"
}

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:KvUx9H9t6

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

[{
  "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.

You can’t perform that action at this time.