| Crates.io | blueline |
| lib.rs | blueline |
| version | 0.2.0 |
| created_at | 2025-07-20 03:01:30.85719+00 |
| updated_at | 2025-07-20 03:01:30.85719+00 |
| description | A lightweight, profile-based HTTP client with REPL interface |
| homepage | https://github.com/samwisely75/blueline |
| repository | https://github.com/samwisely75/blueline |
| max_upload_size | |
| id | 1760718 |
| size | 282,629 |
A lightweight, profile-based HTTP client with REPL interface.
Blueline is a modern command-line HTTP client featuring:
git clone https://github.com/samwisely75/blueline
cd blueline
cargo build --release
Note: Package manager releases coming soon
# Start blueline with default profile
blueline
# Start with specific profile
blueline -p staging
# Start with verbose output
blueline -v
Create ~/.blueline/profile with your API configurations:
[default]
host = https://api.example.com
@content-type = application/json
@accept = application/json
[staging]
host = https://staging-api.example.com
@authorization = Bearer your-token-here
user = username
password = secret
[local]
host = http://localhost:8080
@content-type = application/json
insecure = true
Once in the REPL interface:
h, j, k, l) to move aroundi to enter insert mode for editingEsc to return to normal modeEnter to send the HTTP request:q or Ctrl+C to exitblueline [OPTIONS]
Options:
-p, --profile <PROFILE> Use specified profile from ~/.blueline/profile [default: default]
-v, --verbose Enable verbose output showing connection details
-h, --help Print help information
-V, --version Print version information
host - Base URL for API endpoints (required)insecure - Skip TLS certificate verification (true/false)ca_cert - Path to custom CA certificate fileproxy - HTTP/HTTPS proxy URLuser - Username for Basic Authenticationpassword - Password for Basic AuthenticationPrefix header names with @:
@authorization - Authorization header@content-type - Content-Type header@accept - Accept header@user-agent - User-Agent header[production]
host = https://api.production.com
@authorization = Bearer prod-token-here
@content-type = application/json
@accept = application/json
user = api-user
password = secure-password
ca_cert = /etc/ssl/certs/production-ca.pem
proxy = http://corporate-proxy:8080
insecure = false
┌─────────────────────────────────┐
│ Request Pane │
│ │
│ Method: GET │
│ Path: /api/users │
│ Body: {"name": "John"} │
│ │
├─────────────────────────────────┤
│ Response Pane │
│ │
│ Status: 200 OK │
│ { │
│ "users": [...] │
│ } │
└─────────────────────────────────┘
h - Move cursor leftj - Move cursor downk - Move cursor upl - Move cursor rightw - Move to next wordb - Move to previous word0 - Move to beginning of line$ - Move to end of linei - Enter insert mode at cursora - Enter insert mode after cursoro - Insert new line below and enter insert modex - Delete character under cursordd - Delete current lineu - Undo last changeWhen using -v flag, blueline displays detailed information:
> connection:
> host: https://api.example.com
> port: 443
> scheme: https
> ca-cert: <none>
> insecure: false
> headers:
> content-type: application/json
> authorization: Bearer token
> proxy: <none>
> request:
> method: POST
> path: /api/users
> body: {"name": "John", "email": "john@example.com"}
> response:
> status: 201 Created
> headers:
> content-type: application/json
> location: /api/users/123
Blueline uses the bluenote HTTP client library for profile-based HTTP requests. The bluenote library provides reusable HTTP client functionality with configuration management that can be used independently in other Rust projects.
# Build entire workspace
cargo build
# Build specific crate (now just blueline)
cargo build --package blueline
# Run tests
cargo test
blueline/
├── blueline/ # REPL application crate
│ ├── src/
│ │ ├── main.rs # Application entry point
│ │ ├── cmd.rs # Command line parsing
│ │ └── repl.rs # REPL interface
│ └── tests/ # Integration tests
└── Cargo.toml # Workspace configuration
Licensed under the Elastic License 2.0. See LICENSE file for details.
Contributions are welcome! Please: