restless

module
v0.9.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2026 License: MIT

README

restless

Your API workbench lives in the terminal.

A full-featured HTTP client that runs entirely in your terminal. Uses .http files — the same plain-text format supported by JetBrains IDEs and VS Code REST Client. No Electron. No cloud sync. No account required.

CI Go Report Card Latest Release


Install

# Homebrew
brew tap shahadulhaider/tap && brew install restless

# Go
go install github.com/shahadulhaider/restless/cmd/restless@latest

# Binary — download from Releases

Quick Start

# Create a request file
cat > api.http << 'EOF'
@baseUrl = https://httpbin.org

# @name health
GET {{baseUrl}}/get
Accept: application/json

###

# @name echo
POST {{baseUrl}}/post
Content-Type: application/json

{"message": "hello from restless", "time": "{{$isoTimestamp}}"}

# @assert status == 200
# @assert body.$.json.message == "hello from restless"
EOF

# Launch the TUI
restless .

# Or run headless (CI/CD)
restless run api.http

Features

  • Interactive TUI — browse collections, send requests, inspect responses with collapsible accordion view
  • .http files — plain text, Git-friendly, JetBrains-compatible
  • Request/Response toggler/s to switch views, both with fold/scroll/search/yank
  • Environmentsrestless.env.json with $shared + per-env variables, switch with Ctrl+E
  • Inline variables@baseUrl = http://localhost:8000 right in your .http file
  • Dynamic variables{{$uuid}}, {{$timestamp}}, {{$randomInt}}, {{$date}}, and more
  • Request chaining{{login.response.body.token}} passes data between requests
  • Response assertions# @assert status == 200 for CI/CD testing
  • Collection runner--data users.csv to run requests with parameterized data from CSV/JSON
  • Code generationyg + key to copy as Python, JavaScript, Go, Java, Ruby, HTTPie, curl, PowerShell
  • Import from anywhere — Postman, Insomnia, Bruno, curl commands, OpenAPI/Swagger
  • $EDITOR integration — press e to edit in nvim/vim/code
  • Vim-style commandszo/zc/zR/zM folds, yb/yh/ya/yc yank
  • Cookie jar — cookies persist per environment automatically
  • Response history — browse past responses with h, diff with d
  • Pre-request & post-response scripting — JavaScript (ES5.1) via # @pre-request { ... } and # @post-response { ... } with crypto builtins (hmac, sha256, base64)
  • Proxy & SSL# @insecure, # @proxy, --insecure, --proxy flags
  • Readline/emacs editingCtrl+A/E/W/U/K, arrow keys, word navigation in editor

Keyboard Shortcuts

Press ? in the TUI for the full reference. Press F1 for context-sensitive help.

Key Action
j/k Navigate
Enter Send request / select
e Edit in $EDITOR
r/s Request / Response view
1/2/3/4 Toggle sections
Space Fold/unfold section
yb/yh/ya/yc Copy body/headers/all/curl
yg + key Generate code
p Pretty/raw toggle
f Search in body
? Help

Full keybinding reference →

CLI

restless [directory]                    # Launch TUI
restless run <file> [--env name]        # Run headless (CI/CD)
restless run <file> --data data.csv    # Parameterized run with data file
restless import postman <file>          # Import Postman collection
restless import insomnia <file>         # Import Insomnia export
restless import bruno <dir>             # Import Bruno collection
restless import curl "<command>"        # Import curl command
restless import openapi <spec>          # Import OpenAPI/Swagger

Documentation

Guide Description
Getting Started First collection, environments, CI/CD
.http File Format Full syntax reference, variables, assertions
All Keybindings Complete keyboard reference
Environments Inline vars, env files, dynamic vars
Assertions Response assertions for CI/CD
Scripting Pre-request & post-response JavaScript
Collection Runner Parameterized runs with CSV/JSON data
Importing Collections Postman, Insomnia, Bruno, curl, OpenAPI
Code Generation Python, JS, Go, Java, Ruby, HTTPie, curl, PowerShell
FAQ Common questions and troubleshooting

Contributing

Contributions welcome. Please open an issue first for non-trivial changes.

git clone https://github.com/shahadulhaider/restless.git
cd restless
go build ./cmd/restless
go test ./...

License

MIT — Shahadul Haider

Directories

Path Synopsis
cmd
restless command
internal
tui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL