🧪 Skills
HTTP Request Builder
Build, test, and save HTTP requests from the CLI with custom headers, auth, body, cookies, templates, interactive mode, and request history tracking.
v1.0.0
Description
name: http-request-builder description: Build and test HTTP requests with CLI interface: headers, auth, body, cookies, with history and templates. version: 1.0.0 author: skill-factory metadata: openclaw: requires: bins: - python3 python: - requests
HTTP Request Builder
What This Does
A CLI tool to build, test, and save HTTP requests. Send requests with custom headers, authentication, body, and cookies. Save requests as templates for reuse and maintain a history of your HTTP calls.
Key features:
- Send HTTP requests with GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS methods
- Set custom headers with key-value pairs
- Add authentication (Basic Auth, Bearer tokens)
- Include request body (JSON, form data, raw text)
- Manage cookies for requests
- Save requests as templates (JSON files) for reuse
- Load and execute saved templates
- Interactive mode for building requests step-by-step
- Command-line mode for scripting and automation
- Request history tracks your recent HTTP calls
When To Use
- You need to test REST API endpoints quickly from the terminal
- You want to save and reuse complex API requests
- You prefer a CLI tool over GUI applications like Postman
- You need to automate API testing in scripts
- You want to share API request configurations with team members
- You're debugging API issues and need to replay requests
Usage
Basic commands:
# Send a GET request
python3 scripts/main.py get https://api.example.com/data
# Send a POST request with JSON body
python3 scripts/main.py post https://api.example.com/api \
--header "Content-Type: application/json" \
--body '{"name": "test", "value": 123}'
# Send with Basic authentication
python3 scripts/main.py get https://api.example.com/secure \
--auth basic --username admin --password secret
# Send with Bearer token
python3 scripts/main.py get https://api.example.com/secure \
--auth bearer --token "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
# Save request as template
python3 scripts/main.py post https://api.example.com/api \
--header "Content-Type: application/json" \
--body '{"name": "test"}' \
--save-template my-request
# Load and execute template
python3 scripts/main.py template my-request
# Interactive mode
python3 scripts/main.py interactive
# View request history
python3 scripts/main.py history
# Clear history
python3 scripts/main.py history --clear
Examples
Example 1: Simple GET request
python3 scripts/main.py get https://jsonplaceholder.typicode.com/posts/1
Output:
Response Status: 200 OK
Response Headers:
content-type: application/json; charset=utf-8
...
Response Body:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
Example 2: POST request with JSON body and headers
python3 scripts/main.py post https://jsonplaceholder.typicode.com/posts \
--header "Content-Type: application/json" \
--header "X-API-Key: my-secret-key" \
--body '{
"title": "foo",
"body": "bar",
"userId": 1
}'
Example 3: Save and reuse request template
# Save template
python3 scripts/main.py post https://api.example.com/users \
--header "Content-Type: application/json" \
--header "Authorization: Bearer token123" \
--body '{"name": "New User"}' \
--save-template create-user
# Use template later
python3 scripts/main.py template create-user
# List all templates
python3 scripts/main.py templates
Example 4: Interactive mode
python3 scripts/main.py interactive
Interactive mode guides you through:
- HTTP method selection
- URL input
- Headers configuration
- Authentication setup
- Request body input
- Send request and view results
Requirements
- Python 3.x
requestslibrary (installed automatically or via pip)
Install missing dependencies:
pip3 install requests
Limitations
- This is a CLI tool, not a GUI application
- History and templates stored in simple JSON files in
~/.http-request-builder/ - Limited authentication support (Basic, Bearer tokens only)
- No OAuth, API key in header, or complex authentication flows
- No cookie persistence across sessions (cookies only for single request)
- No proxy configuration support
- No SSL certificate verification controls
- No support for websockets or streaming responses
- No advanced features like response validation or testing assertions
- Request history limited to 100 entries by default
- Templates are simple JSON files without encryption
- No built-in support for environment variables in templates
- Performance limited by Python requests library
- Large response bodies may be truncated for display
- No support for multipart form data file uploads
- No built-in rate limiting or retry logic
- No support for HTTP/2 or HTTP/3 protocols
Directory Structure
The tool stores data in ~/.http-request-builder/:
templates/- Saved request templates (JSON files)history.json- Request history logconfig.json- Configuration (if any)
Error Handling
- Invalid URLs return helpful error messages
- Network timeouts after 30 seconds
- JSON parsing errors show the problematic content
- Missing templates indicate which template wasn't found
- Authentication failures suggest correct format
Contributing
This is a skill built by the Skill Factory. Issues and improvements should be reported through the OpenClaw project.
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!