3.3 KiB
3.3 KiB
curl-to-code-cli
Convert curl commands to code in multiple programming languages.
Features
- Multiple Language Support: Generate Python (requests), JavaScript (fetch), Go (net/http), Rust (reqwest), and PHP (cURL) code
- Interactive Mode: Enter multiple curl commands without re-running the CLI
- Syntax Highlighting: Colorful code output for better readability
- Comprehensive Parsing: Supports headers, authentication, JSON data, cookies, and more
Installation
pip install curl-to-code
Or install from source:
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/curl-to-code-cli.git
cd curl-to-code-cli
pip install -e .
Usage
Basic Conversion
Convert a curl command to Python:
curl-to-code "curl https://api.example.com/users"
Convert to a specific language:
curl-to-code "curl https://api.example.com/users" --lang javascript
Supported Languages
| Flag | Language | Library |
|---|---|---|
python / py |
Python | requests |
javascript / js |
JavaScript | fetch |
go / golang |
Go | net/http |
rust |
Rust | reqwest |
php |
PHP | cURL |
Interactive Mode
Enter interactive mode for multiple conversions:
curl-to-code interactive --lang python
Disable Syntax Highlighting
curl-to-code "curl https://api.example.com" --no-highlight
List Supported Languages
curl-to-code languages
Examples
Simple GET Request
Input:
curl-to-code "curl https://api.example.com/users"
Output (Python):
import requests
from requests.auth import HTTPBasicAuth
import json
def make_request():
url = "https://api.example.com/users"
auth = None
headers = {}
response = requests.get(url, headers=headers, auth=auth)
try:
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
except ValueError as e:
print(f"JSON decode error: {e}")
if __name__ == "__main__":
make_request()
POST with JSON Data
Input:
curl-to-code "curl -X POST -H 'Content-Type: application/json' -d '{\"name\":\"test\"}' https://api.example.com/users"
Request with Authentication
Input:
curl-to-code "curl -u user:password https://api.example.com"
Request with Custom Headers
Input:
curl-to-code "curl -H 'Authorization: Bearer token123' https://api.example.com"
Supported curl Options
| Option | Description |
|---|---|
-X, --request |
HTTP method (GET, POST, PUT, PATCH, DELETE, etc.) |
-H, --header |
Custom HTTP header |
-d, --data |
Request body data |
--data-json |
JSON request body |
-u, --user |
Basic authentication |
--bearer |
Bearer token authentication |
-b, --cookie |
Cookies |
-A, --user-agent |
User-Agent header |
--url |
Explicit URL |
-L |
Follow redirects |
--connect-timeout |
Connection timeout in seconds |
Development
Setup
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/curl-to-code-cli.git
cd curl-to-code-cli
pip install -e ".[dev]"
Running Tests
pytest tests/ -v
Linting
ruff check .
License
MIT License