🧪 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
❤️ 0
⬇️ 143
👁 1
Share

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:

  1. HTTP method selection
  2. URL input
  3. Headers configuration
  4. Authentication setup
  5. Request body input
  6. Send request and view results

Requirements

  • Python 3.x
  • requests library (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 log
  • config.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)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs