wsget

module
v0.7.3 Latest Latest
Warning

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

Go to latest
Published: Nov 23, 2025 License: MIT

README

wsget

Tests codecov Go Report Card

wsget is a command-line tool for interacting with a WebSocket server. It supports plain text and JSON messages and can save the output of the session into a file.

Installation

Downloading binaries:

Compiled executables can be downloaded from here.

Install from source code:
go install github.com/ksysoev/wsget/cmd/wsget@latest
Install with homebrew:
brew tap ksysoev/wsget
brew install wsget

Usage

To use wsget, you need to specify the WebSocket URL:

wsget wss://ws.postman-echo.com/raw

You also can pass the initial request as part command line argument by using flag -r

wsget wss://ws.postman-echo.com/raw -r "Hello world!"

By default, wsget will print the data received from the WebSocket server only to the console. You can also save the data to a file using the -o flag:

wsget wss://ws.postman-echo.com/raw  -o output.txt

Example:

wsget "wss://ws.derivws.com/websockets/v3?app_id=1" -r '{"time":1}'
Use Enter to input request and send it, Ctrl+C to exit
->
{
  "time": 1
}
<-
{
  "echo_req": {
    "time": 1
  },
  "msg_type": "time",
  "time": 1698555261
}

Connection Mode Keyboard Shortcuts Documentation

Key/Combination Action
Esc / Ctrl + C / Ctrl + D Discconnect from the server.
Enter Enter request editing mode.
Ctrl + L Clear the terminal and redisplay the welcome message.
: Enter command mode to execute a specific command.

Request/Command Editor Mode Keyboard Shortcuts

General Navigation and Editing Shortcuts
Key/Combination Action
Left Arrow Move the cursor one position to the left.
Right Arrow Move the cursor one position to the right.
Space Insert a space character at the current cursor position.
Enter Adds a newline or completes editing (depends on editor mode).
Backspace Remove the character before the cursor.
Delete Remove the character after the cursor.
Advanced Navigation
Key/Combination Action
Alt + Backspace Delete the word to the left of the cursor.
Alt + Left Arrow Move the cursor to the start of the previous word.
Alt + Right Arrow Move the cursor to the start of the next word.
Alt + Delete Delete the word to the right of the cursor.
Home Move the cursor to the start of the line.
End Move the cursor to the end of the line.
Content Modification
Key/Combination Action
Ctrl + U Clear all content from the editor.
Ctrl + L Clear the terminal's display while retaining content and positioning.
History Navigation
Key/Combination Action
Up Arrow Cycle to the previous request in history.
Down Arrow Cycle to the next request in history.
Miscellaneous Shortcuts
Key/Combination Action
Ctrl + S Complete editing.
Ctrl + C or Ctrl + D or Esc Interrupt the editing process; cancel and terminate editing.

Macros

wsget provides a possibility for customization. You can create your sets of macros with a configuration file. the file should be located at ~/wsget/macro/your_configuration.yaml. wsget will read all files from this directory and use only configuration files that match the WebSocket connection hostname.

version: "1"
domains:
    - example.com
macro:
    ping:
        - |-
          send {
              "ping": 1,
          }
        - wait 5
Primitive commands
  • edit {"ping": 1} opens request editor with provided text
  • send {"ping": 1} sends requests to WebSocket connection
  • wait 5 waits for responses or provided time out, whatever comes first. If the timeout is reached then an error will be returned. if 0 is provided command will wait response without a time limit
  • exit interrupts the program execution
  • repeat 5 send {"ping": 1} repeat provided command or macro defined number of times
  • sleep 1 sleeps for the provided number of seconds
Macros arguments

Macro support Go template language. It provides a possibility to pass arguments to your macro command and substitute or adjust the behavior of your macro commands.

version: "1"
domains:
    - example.com
macro:
    authorize:
        - |-
          send {
              "authorize": "{{index .Args 0}}",
          }
        - wait 2
Macros presets

License

wsget is licensed under the MIT License. See the LICENSE file for more information.

Directories

Path Synopsis
cmd
wsget command
pkg
cmd
ws

Jump to

Keyboard shortcuts

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