gopull

command module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2026 License: MIT Imports: 6 Imported by: 0

README

gopull

CI Release Go License

A terminal HTTP client. Send requests, manage collections, inspect responses - keyboard-driven, single binary, no Electron.


Install

go install github.com/d0mkaaa/gopull@latest

Or grab a binary from releases - Linux, macOS, Windows all covered.

Build from source:

git clone https://github.com/d0mkaaa/gopull
cd gopull
go build -o gopull .

Features

  • Collections - save and organise requests, run them in sequence
  • Environments - named variable sets with {{VAR}} substitution in URLs, headers, and body
  • History - last 500 requests, diffable against current response
  • Streaming - SSE responses arrive live line by line
  • Themes - dark, light, nord, gruvbox - or create your own
  • Curl import - paste a curl command, get a saved request
  • Postman import/export - collections round-trip cleanly
  • Search - / to search the response body, n/N to jump between matches
  • Assertions - write tests that run after every response

Usage

gopull

Three panels: sidebar (collections), editor (request builder), response. tab / shift+tab moves focus.

Editor

[ and ] cycle tabs: URL, headers, body, auth, options, tests.

  • Method cycles with space or enter
  • Headers: Key: Value, one per line
  • Body: raw by default, alt+m toggles form encoding
  • Auth: bearer token or basic auth under their own tab
  • ctrl+r sends
Collections

ctrl+s saves the current request. From the sidebar: navigate, open, delete (d twice). r runs all requests in sequence.

Environments

ctrl+e opens the picker. {{VAR_NAME}} anywhere in the URL, headers, or body gets substituted at send time.

Response

j/k scroll, / search, y copy body, w save to file, D diff against history.

Command palette

alt+p - fuzzy search over all actions and saved requests.

Assertions

Write assertions in the Tests tab of the editor. Results appear in the Tests tab on the response side after each send.


Keybindings

Key Action
ctrl+r Send request
ctrl+s Save request
alt+n New request
alt+p Command palette
alt+b Toggle sidebar
alt+o Settings
ctrl+e Environment picker
ctrl+i Import Postman collection
ctrl+x Export collection
alt+j Format JSON body
alt+m Toggle body mode
[ / ] Switch editor tabs
tab / shift+tab Move focus between panels
/ Search response
y Copy response to clipboard
w Save response to file
D Diff response against history
alt+q Quit

Custom bindings go in ~/.config/gopull/keybindings.json.


Config

~/.config/gopull/
  collections/      one JSON file per collection
  environments/     named variable sets
  history.json      last 500 requests
  config.json       theme, timeout
  keybindings.json  key overrides
  themes/           custom theme files

Themes

Built-in: dark (catppuccin mocha), light (catppuccin latte), nord, gruvbox. Switch in settings (alt+o), previews live.

Drop a JSON file in ~/.config/gopull/themes/ to add your own - a starter template gets written there on first run.


License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
plugins
Package plugins runs lifecycle hooks against external executables.
Package plugins runs lifecycle hooks against external executables.
tui

Jump to

Keyboard shortcuts

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