@medishn/agas
v2.0.3
Published
Agas is a minimal, HTTP client for the Terminal.
Maintainers
Readme
Agas
A fast and simple HTTP client for the terminal and JavaScript. Built with Bun.
Features
- Fast performance with Bun runtime
- Simple command line interface
- Works as a JavaScript library
- Request history and saved requests
- Pretty output and table display
- Docker support
Installation
# npm
npm install -g @medishn/agas
# yarn
yarn global add @medishn/agas
# bun
bun install -g @medishn/agas
# Install script (Linux/Mac)
curl -fsSL https://raw.githubusercontent.com/m-mdy-m/agas/main/scripts/install.sh | sh
# Install script (Windows)
irm https://raw.githubusercontent.com/m-mdy-m/agas/main/scripts/install.ps1 | iex
# Docker
docker pull bitsgenix/agas:latestQuick Start
Command Line
# GET request
agas https://api.github.com/users/octocat
# POST with JSON
agas post https://httpbin.org/post --json name=John
# With headers
agas get https://api.github.com/user -H "Authorization: Bearer token"
# Pretty output
agas get https://api.github.com/users --pretty
# Save request
agas post https://api.example.com/users --json name=Test --save create-user
# Run saved request
agas run create-userJavaScript
import { Agas } from '@medishn/agas';
const client = new Agas({
baseURL: 'https://api.example.com',
headers: { 'Authorization': 'Bearer token' }
});
const response = await client.get('/users');
console.log(response.data);CLI Options
| Option | Description |
|--------|-------------|
| -H, --header | Add request header |
| -q, --query | Add query parameter |
| -d, --data | Request body data |
| --json | Add JSON field |
| -o, --output | Save response to file |
| --pretty | Pretty print JSON |
| -v, --verbose | Show detailed output |
| --silent | Show only response body |
| --timeout | Request timeout in ms |
| --save | Save request for later |
| --table | Display as table |
API Usage
import { Agas } from '@medishn/agas';
const client = new Agas({
baseURL: 'https://api.example.com',
timeout: 10000,
headers: { 'Authorization': 'Bearer token' }
});
// Make requests
await client.get('/users');
await client.post('/users', { name: 'Alice' });
await client.put('/users/123', { name: 'Alice Smith' });
await client.delete('/users/123');
// With options
await client.get('/users', {
params: { page: 1, limit: 10 },
headers: { 'Accept': 'application/json' }
});
// Error handling
try {
const response = await client.get('/users');
} catch (error) {
console.error(error.message);
}
// Events
client.on('request', (data) => {
console.log(`Request: ${data.method} ${data.url}`);
});
client.on('response', (data) => {
console.log(`Response: ${data.status} in ${data.duration}ms`);
});
// Interceptors
client.interceptors.request.use((config) => {
config.headers['X-Custom'] = 'value';
return config;
});Documentation
- User Guide - Complete guide with examples
- Changelog - Version history
- Contributing - How to contribute
- Security - Security policy
- Binary Distribution - Installation details
Links
- NPM: https://www.npmjs.com/package/@medishn/agas
- Docker Hub: https://hub.docker.com/r/bitsgenix/agas
- Issues: https://github.com/m-mdy-m/agas/issues
License
MIT License - Copyright (c) 2024-2025 Mahdi
Made by Mahdi
