Getting Started with LazyCurl
January 17, 2026 · View on GitHub
Welcome to LazyCurl! This guide will help you get up and running with your first API requests.
Table of Contents
- Installation
- Your First Workspace
- Creating Your First Request
- Using Environments
- Sending Requests
- Next Steps
Installation
Prerequisites
- Go 1.21+ - Download Go
- Terminal with Unicode support (most modern terminals)
- Git (optional, for cloning)
Install from Source
# Clone the repository
git clone https://github.com/kbrdn1/LazyCurl.git
cd LazyCurl
# Build the application
make build
# The binary is now at ./bin/lazycurl
./bin/lazycurl --version
Install Globally
# Install to your GOPATH/bin
make install
# Now you can run from anywhere
lazycurl
Using Go Install
go install github.com/kbrdn1/LazyCurl/cmd/lazycurl@latest
Your First Workspace
LazyCurl uses a workspace system to organize your API collections and environments.
Automatic Initialization
Simply navigate to your project directory and run LazyCurl:
cd my-api-project
lazycurl
LazyCurl will automatically create the .lazycurl/ directory structure:
my-api-project/
└── .lazycurl/
├── config.yaml # Workspace configuration
├── collections/ # Your API collections
│ └── example.json # Sample collection
└── environments/ # Environment files
└── development.json # Sample environment
Manual Initialization
If you prefer to set up manually:
mkdir -p .lazycurl/{collections,environments}
Workspace Configuration
The config.yaml file contains workspace settings:
name: "My API Project"
description: "REST API for my application"
default_env: "development"
Creating Your First Request
Understanding the Interface
When you launch LazyCurl, you'll see three main panels:
┌─Collections────────┬─Request────────────────────────┐
│ │ │
│ Your collections │ Request builder │
│ and folders │ (method, URL, headers, body) │
│ │ │
│ ├─Response───────────────────────┤
│ │ │
│ │ Response viewer │
│ │ (status, body, headers) │
│ │ │
└────────────────────┴────────────────────────────────┘
Step 1: Create a New Request
- Make sure you're in the Collections panel (press
hto navigate left if needed) - Press
nto create a new request - Fill in the dialog:
- Name: "Get Users"
- Method: GET
- URL:
https://jsonplaceholder.typicode.com/users
- Press
Enterto confirm
Step 2: View Your Request
Your new request appears in the Collections tree. Press Enter or Space to select it.
The Request panel (top-right) now shows:
- The HTTP method (GET)
- The URL
- Tabs for Headers, Body, Params, etc.
Step 3: Add Headers (Optional)
- Press
lto navigate to the Request panel - Press
3or navigate to the "Headers" tab - Press
nto add a new header - Enter header details (e.g.,
Accept: application/json)
Using Environments
Environments let you use variables like {{base_url}} that change based on your context (development, staging, production).
Switch to Environments Tab
- Navigate to the left panel with
h - Press
2to switch to the Environments tab
Create a Variable
- Press
Nto create a new environment (e.g., "Development") - Press
nto add a variable:- Name:
base_url - Value:
https://jsonplaceholder.typicode.com
- Name:
- Press
Enterto confirm
Use Variables in Requests
Now update your request URL to use the variable:
- Navigate to the Request panel
- Edit the URL to:
{{base_url}}/users
The variable will be replaced when you send the request.
Variable Types
| Type | Description | Example |
|---|---|---|
| Regular | Normal variable | base_url |
| Secret | Hidden in UI, for sensitive data | api_token |
| Inactive | Defined but not used | Toggle with a |
System Variables
LazyCurl provides built-in system variables:
| Variable | Description |
|---|---|
{{$timestamp}} | Current Unix timestamp |
{{$datetime}} | Current datetime (RFC3339) |
{{$date}} | Current date (YYYY-MM-DD) |
{{$time}} | Current time (HH:MM:SS) |
{{$uuid}} | Random UUID v4 |
{{$randomInt}} | Random integer (0-999999) |
{{$random}} | Random 10-char string |
Sending Requests
Send a Request
- Select a request in the Collections panel
- Press
Ctrl+Sto send the request - The response appears in the Response panel (bottom-right)
View the Response
The Response panel shows:
- Status Badge: Color-coded status code (200 OK = green)
- Metadata: Response time, size
- Body Tab: Formatted response body
- Headers Tab: Response headers
- Cookies Tab: Cookies set by the server
Navigate Responses
- Press
j/kto scroll through long responses - Press
vto enter VIEW mode for focused reading - Press
Tabto switch between Body/Headers/Cookies tabs
Next Steps
Now that you're familiar with the basics, explore more features:
Learn Keyboard Shortcuts
Press ? at any time to see context-aware keybinding hints.
See the full Keybindings Reference.
Organize with Folders
- Press
Nto create folders in your collections - Drag requests between folders
- Use search (
/) to find requests quickly
See Collections Guide.
Multiple Environments
Create separate environments for different contexts:
development.json- Local developmentstaging.json- Staging serverproduction.json- Production API
See Environments Guide.
Customize Configuration
Edit ~/.config/lazycurl/config.yaml to:
- Customize keybindings
- Change theme colors
- Set default editor
See Configuration Guide.
Import Existing APIs
Import from existing tools:
- cURL: Press
Ctrl+Ito paste a cURL command - OpenAPI: Press
Ctrl+Oto import OpenAPI specs - Postman: Press
Ctrl+Pto import Postman collections
See Import/Export Guide.
External Editor
Edit request bodies in your favorite editor:
- Set
$VISUALenvironment variable - Press
Ctrl+Ein INSERT mode - Edit in vim, VS Code, etc.
Troubleshooting
LazyCurl Won't Start
- Check Go version:
go version(needs 1.21+) - Rebuild:
make clean && make build - Check terminal supports Unicode
Collections Not Loading
- Check
.lazycurl/collections/directory exists - Verify JSON files are valid:
cat .lazycurl/collections/*.json | jq . - Check file permissions
Variables Not Replaced
- Ensure the environment is selected (green badge in status bar)
- Check variable is marked as "active"
- Verify syntax:
{{variable_name}}(double curly braces)
Getting Help
- Press
?for keybinding help - Press
:helpfor command help - Visit GitHub Issues
Quick Reference Card
| Action | Keys |
|---|---|
| Navigate panels | h / l |
| Move in list | j / k |
| New request | n |
| New folder | N |
| Edit | c or i |
| Delete | d |
| Duplicate | D |
| Search | / |
| Send request | Ctrl+S |
| Switch to Environments | 2 |
| Show help | ? |
| Quit | q |
See Also
- Documentation Index - All documentation
- Keybindings - Complete keyboard reference
- Import/Export - Import from cURL, OpenAPI, Postman
- Console - Request history and logging