Project

requestkit

0.0
No release in over 3 years
Capture webhooks and send HTTP requests locally. Think webhook.site meets Postman, but living on your machine where it belongs.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 0.90
~> 2.7
 Project Readme

Requestkit

Local HTTP request toolkit for development. Test Stripe webhooks, GitHub hooks or any HTTP endpoint locally. Your data stays private, works offline and runs fast without network latency.

Screenshot of the Requestkit UI, listing POST requests to Stripe, GitHub, Twilio and Shopify

Sponsored By Rails Designer

Rails Designer

Installation

If you have a Ruby environment available, you can install Requestkit globally:

gem install requestkit

Usage

Start the server:

requestkit

This starts Requestkit on http://localhost:4000. Send any HTTP request to test:

curl -X POST http://localhost:4000/stripe/webhook \
  -H "Content-Type: application/json" \
  -d '{"event": "payment.succeeded", "amount": 2500}'

Open http://localhost:4000 in your browser to see all captured requests with headers and body.

Custom Port

requestkit --port 8080

Persistent Storage

By default, requests are stored in memory and cleared when you stop the server. Use file storage to persist across restarts:

requestkit --storage file

Requests are saved to ~/.config/requestkit/requestkit.db.

Custom Database Path

requestkit --storage file --database-path ./my-project.db

Configuration

Create a configuration file to set defaults:

User-wide settings (~/.config/requestkit/config.yml):

port: 5000
storage: file

Project-specific settings (./.requestkit.yml):

storage: memory
default_namespace: my-rails-app

Configuration precedence: CLI flags > project config > user config > defaults

Available Options

Option Description Default
port Server port 4000
storage Storage type: memory or file memory
database_path Database file location ~/.config/requestkit/requestkit.db
default_namespace Default namespace for root requests default

Namespaces

Requestkit automatically organizes requests by namespace using the first path segment:

# Namespace: stripe
curl http://localhost:4000/stripe/payment-webhook

# Namespace: github
curl http://localhost:4000/github/push-event

Filter by namespace in the web UI. Requests to / use the default_namespace from your config.

Help

requestkit help

License

Perron is released under the MIT License.