Build from source:
go build -o indus.exe ./cmd/indusInteractive Mode (REPL):
indusDirect Command Mode:
indus <command> [flags]When you run indus without arguments, you enter an interactive REPL (Read-Eval-Print Loop).
- Beautiful ASCII art banner with Indian flag colors
- Command history
- Tab completion hints
- Colorized output
- Built-in help system
helpor?- Show helpclearorcls- Clear screenexit,quit, orq- Exit REPL- Press
Ctrl+C- Cancel current operation - Press
Ctrl+D- Exit REPL
Create a new project structure with standard directories.
Syntax:
init --name <project-name> [--dir <directory>]Flags:
--name(required) - Project name--dir(optional) - Target directory (default: current directory)
Example:
> init --name myapp --dir ~/projectsOutput:
project_dir=~/projects/myapp
project_name=myapp
Created Structure:
myapp/
├── cmd/
├── internal/
├── pkg/
├── config/
└── README.md
Simulate a workload with bounded concurrency using worker pools.
Syntax:
run [--workers <n>] [--tasks <n>]Flags:
--workers(optional) - Number of concurrent workers (default: 4)--tasks(optional) - Total tasks to process (default: 20)
Example:
> run --workers 8 --tasks 50Output:
Starting run with 8 workers processing 50 tasks...
Progress: 5/50 tasks completed
Progress: 10/50 tasks completed
...
completed=50
failed=0
total=50
Use Cases:
- Testing concurrent processing
- Benchmarking worker pools
- Demonstrating graceful cancellation (Ctrl+C)
Display version information.
Syntax:
versionExample:
> versionOutput:
version=1.0.0
commit=abc123def
build_time=2026-02-26T10:00:00Z
Perform HTTP requests with automatic retry and timeout handling.
Syntax:
http get <url> [--headers 'Key:Value,Key2:Value2']Examples:
> http get https://api.github.com
> http get https://api.example.com/users --headers 'Authorization:Bearer token123'Syntax:
http post <url> <data> [--headers 'Key:Value']Examples:
> http post https://api.example.com/users '{"name":"John","email":"john@example.com"}'
> http post https://httpbin.org/post '{"test":"data"}' --headers 'Content-Type:application/json'Syntax:
http put <url> <data>Example:
> http put https://api.example.com/users/123 '{"name":"Jane"}'Syntax:
http delete <url>Example:
> http delete https://api.example.com/users/123# Start REPL
indus
# Test GitHub API
> http get https://api.github.com/users/octocat
# Check rate limit
> http get https://api.github.com/rate_limit# Initialize project
> init --name my-api-client --dir ~/dev
# Test concurrent processing
> run --workers 10 --tasks 100
# Check version
> version# POST data
> http post https://jsonplaceholder.typicode.com/posts '{"title":"Test","body":"Content","userId":1}'
# GET the created resource
> http get https://jsonplaceholder.typicode.com/posts/1
# DELETE resource
> http delete https://jsonplaceholder.typicode.com/posts/1# Run commands directly from shell
indus version
indus init --name testapp
indus http get https://api.github.com
indus run --workers 4 --tasks 20Default: ~/.config/indus/config.yaml
Override with environment variable:
set INDUS_CONFIG=C:\custom\path\config.yaml
indusapi_timeout: 30
max_retries: 3INDUS_CONFIG- Custom config file path
Press Ctrl+C to gracefully cancel any running operation. The CLI will clean up and return to the prompt.
Use arrow keys (↑/↓) to navigate through command history in the REPL.
Type clear or cls to clear the screen and redisplay the banner.
Type q for quick exit instead of typing exit.
In direct command mode, pipe output to files:
indus http get https://api.github.com > response.json
indus version > version.txtIn shell (not REPL):
indus init --name myapp && cd myapp && indus versionSolution: Make sure indus.exe is in your PATH or use the full path:
C:\path\to\indus.exeSolution: Increase timeout in config file or check network connection.
Solution: Run with appropriate permissions or choose a different directory.
| Shortcut | Action |
|---|---|
Ctrl+C |
Cancel current operation |
Ctrl+D |
Exit REPL |
↑ / ↓ |
Navigate command history |
Tab |
Auto-complete (future) |
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Internal error |
| 2 | User error (bad flags, invalid input) |
| 130 | Canceled (Ctrl+C) |
For issues or feature requests, refer to the project repository.
Happy coding with INDUS! 🇮🇳