{
  "$schema": "https://www.raycast.com/schemas/extension.json",
  "name": "curl",
  "title": "cURL",
  "description": "Keyboard-first HTTP client",
  "icon": "app-icon.png",
  "author": "jonathangiardino",
  "contributors": [
    "pernielsentikaer",
    "bkeys818",
    "ridemountainpig",
    "yusifaliyevpro"
  ],
  "categories": [
    "Productivity",
    "Developer Tools"
  ],
  "license": "MIT",
  "commands": [
    {
      "name": "index",
      "title": "Make HTTP Request",
      "subtitle": "cURL",
      "description": "Shortcut to make an HTTP request",
      "mode": "view"
    },
    {
      "name": "requests",
      "title": "Requests History",
      "subtitle": "cURL",
      "description": "HTTP requests history",
      "mode": "view"
    }
  ],
  "tools": [
    {
      "name": "make-http-request",
      "title": "Make HTTP Request",
      "description": "Make curl HTTP Request",
      "input": {
        "type": "object",
        "properties": {
          "command": {
            "type": "string",
            "description": "CURL shell command to execute. Always use `--verbose` flag"
          }
        },
        "required": [
          "command"
        ]
      },
      "confirmation": false
    }
  ],
  "ai": {
    "evals": [
      {
        "input": "@curl fetch https://www.raycast.com/api",
        "mocks": {
          "make-http-request": {
            "stdout": "{}"
          }
        },
        "expected": [
          {
            "callsTool": {
              "arguments": {
                "command": [
                  {
                    "includes": "https://www.raycast.com/api"
                  },
                  {
                    "includes": "curl"
                  },
                  {
                    "includes": "--verbose"
                  },
                  {
                    "not": {
                      "includes": "post"
                    }
                  }
                ]
              },
              "name": "make-http-request"
            }
          }
        ]
      },
      {
        "input": "@curl make post request to localhost:3000/api/sign_in with json user=test and password=123123123",
        "expected": [
          {
            "callsTool": {
              "name": "make-http-request",
              "arguments": {
                "command": [
                  {
                    "includes": "POST"
                  },
                  {
                    "includes": "http://localhost:3000/api/sign_in"
                  },
                  {
                    "includes": "Content-Type: application/json"
                  },
                  {
                    "or": [
                      {
                        "includes": "-d "
                      },
                      {
                        "includes": "--data "
                      }
                    ]
                  },
                  {
                    "includes": "\"user\":\"test\""
                  },
                  {
                    "includes": "\"password\":\"123123123\""
                  }
                ]
              }
            }
          }
        ],
        "mocks": {
          "make-http-request": {
            "stdout": "{}"
          }
        }
      }
    ]
  },
  "dependencies": {
    "@raycast/api": "^1.103.1",
    "@raycast/utils": "^2.2.1",
    "axios": "^0.27.2",
    "curl-string": "^1.1.1",
    "jsonpath-plus": "^10.3.0"
  },
  "devDependencies": {
    "@eslint/eslintrc": "^3.3.1",
    "@eslint/js": "^9.34.0",
    "@raycast/eslint-config": "^2.0.4",
    "@types/node": "^22.18.6",
    "@types/react": "^19.1.13",
    "eslint": "^9.35.0",
    "prettier": "^3.6.2",
    "react": "^19.1.1",
    "react-devtools": "^6.1.1",
    "typescript": "^5.9.2"
  },
  "scripts": {
    "build": "ray build -e dist",
    "dev": "ray develop",
    "fix-lint": "ray lint --fix",
    "lint": "ray lint",
    "publish": "ray publish"
  },
  "platforms": [
    "macOS",
    "Windows"
  ]
}