Production-grade interactive terminal for API orchestration, developer tooling, and concurrent workloads.
Built with zero external dependencies โ pure Go standard library.
Install โข Features โข Usage โข Pipelines โข Colors โข Build from Source
- Go to Releases โ Latest
- Download
indus-setup-vX.Y.Z-windows-amd64.exe - Run it โ wizard installs INDUS and adds it to your PATH
- Open any new terminal and type
indus
The download link above always points to the latest version โ no manual URL updates needed.
| Files | %LOCALAPPDATA%\INDUS\indus.exe |
| PATH | Added at user level (no admin needed) |
| Desktop shortcut | INDUS Terminal |
| Start Menu | INDUS Terminal |
| Right-click | "Open INDUS Terminal here" on any folder |
| Uninstall | Registered in Apps & Features |
Download indus.exe from Releases and double-click. Done.
- Indian flag ASCII banner (Saffron โ White โ Green)
- Smart prompt:
INDUS ~/Documents > - Full Windows shell fallback โ every system command works
- ANSI color support auto-enabled on startup
Change the prompt accent color any time:
color r โ Red color m โ Magenta
color g โ Green color w โ White
color b โ Blue color o โ Orange
color y โ Yellow color p โ Pink
color c โ Cyan color d โ Default (Cyan)
Run color with no argument to see all swatches with a live preview.
Pipe INDUS commands together with | โ no OS shell, no subprocesses.
Each command's stdout streams byte-by-byte into the next command's stdin via io.Pipe.
All stages share the same context; one failure cancels the entire chain.
# Pipe run results as HTTP POST body
run --tasks 10 | http post https://httpbin.org/post
# Pipe version info to a logging endpoint
version | http post https://my-log-server.com/log
# Pipe init output anywhere
init --name demo | http post https://httpbin.org/postFull HTTP client with automatic retry + exponential back-off (idempotent methods only):
http get https://api.github.com/users/hari7261
http post https://api.example.com/users '{"name":"John"}'
http put https://api.example.com/users/1 '{"name":"Jane"}'
http delete https://api.example.com/users/1
# Custom headers
http get https://api.example.com --headers 'Authorization:Bearer token,X-App:indus'Retry policy:
GET,HEAD,PUT,OPTIONSโ up to 3 retries with back-offPOST,DELETEโ single attempt (no duplicate side effects)- 5xx responses are surfaced as errors, not silently swallowed
init --name my-api --dir ~/projectsCreates: cmd/, internal/, pkg/, config/, README.md
run --workers 8 --tasks 100Fan-out / fan-in worker pool. Progress to stderr, machine-readable results to stdout (so it pipes cleanly).
version
# version=1.3.0
# commit=77cccb8
# build_time=2026-02-28T...| Command | Description |
|---|---|
cd <path> |
Change directory (~ supported) |
pwd |
Print working directory |
clear / cls |
Clear screen + redraw banner |
color <letter> |
Change prompt accent color |
help |
Show all commands + color grid |
exit / quit |
Exit terminal |
All unrecognised commands fall through to the Windows host shell โ git, docker, npm, python, ipconfig, ping, etc. all work normally.
# API testing
http get https://api.github.com/users/hari7261
# Pipeline: fetch + forward
http get https://jsonplaceholder.typicode.com/todos/1 | http post https://httpbin.org/post
# Change prompt to orange
color o
# Init a project
init --name my-service --dir C:\projects
# Concurrent workload โ forward results
run --workers 4 --tasks 20 | http post https://httpbin.org/post
# Any Windows command
git log --oneline -5
docker ps
ipconfig /allINDUS reads ~/.config/indus/config.yaml (or %USERPROFILE%\.config\indus\config.yaml on Windows).
api_timeout = 30 # HTTP timeout in seconds
max_retries = 3 # Retry count for idempotent HTTP methodsOverride path:
set INDUS_CONFIG=C:\path\to\config.yamluser input: run --tasks 10 | http post https://example.com
โ
splitPipeline() โ quotes-aware | splitter
โ
app.RunPipeline() โ internal/cli/pipeline.go
โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโ
โ โ
[run.RunStream] [http.RunStream]
in = os.Stdin in = pipe reader
out = pipe writer out = os.Stdout
โ goroutine 1 โ goroutine 2
โโโโโโโโโ io.Pipe() โโโโโโโโ
(zero OS processes)
- Every command in a pipeline must implement
StreamCommand(RunStream(ctx, args, in, out)) - Diagnostic/progress lines always go to stderr โ they never pollute the pipe
- Cancelling (Ctrl+C) stops all stages immediately
POST/PUTread the pipe as the request body when no inline data arg is given
| Command | Single | Pipeline | Can read in |
|---|---|---|---|
version |
โ | โ | โ |
run |
โ | โ | โ |
init |
โ | โ | โ |
http get |
โ | โ | โ |
http post |
โ | โ | โ body from pipe |
http put |
โ | โ | โ body from pipe |
http delete |
โ | โ | โ |
color r # Red prompt
color g # Green prompt
color b # Blue prompt
color y # Yellow prompt
color c # Cyan prompt (default)
color m # Magenta prompt
color w # White prompt
color o # Orange prompt
color p # Pink prompt
color d # Reset to default
color # Show all options with swatchesColor persists for the session. Not yet saved across restarts (planned).
indus/
โโโ cmd/
โ โโโ indus-terminal/ # Binary entrypoint, terminal REPL
โโโ internal/
โ โโโ cli/
โ โ โโโ app.go # Command registry + help
โ โ โโโ command.go # Command + StreamCommand interfaces
โ โ โโโ pipeline.go # RunPipeline โ io.Pipe engine
โ โ โโโ context.go # Context helpers
โ โ โโโ errors.go # Error types + exit codes
โ โโโ commands/
โ โ โโโ http.go # HTTP client command
โ โ โโโ init.go # Project initializer
โ โ โโโ run.go # Concurrent workload runner
โ โ โโโ version.go # Version printer
โ โโโ config/
โ โ โโโ loader.go # Config file parser
โ โโโ httpclient/
โ โโโ client.go # Retry + back-off HTTP client
โโโ installer/
โ โโโ indus-setup.iss # Inno Setup installer script
โโโ .github/workflows/
โ โโโ release.yml # Auto-build + GitHub Release on tag push
โโโ build.bat # Local build + installer builder
# 1. Clone
git clone https://github.com/hari7261/INDUS.git
cd INDUS
# 2. Build binary only
go build -o indus.exe ./cmd/indus-terminal
# 3. Build binary + installer (requires Inno Setup 6)
build.bat
# โ dist\indus.exe
# โ dist\indus-setup.exegit tag v1.4.0
git push --tags
# GitHub Actions builds indus-setup-v1.4.0-windows-amd64.exe and publishes automatically| Feature | INDUS | PowerShell | Git Bash | CMD |
|---|---|---|---|---|
| Built-in HTTP client | โ | โ | โ | โ |
| Internal pipelines (no shell) | โ | โ | โ | โ |
| Project scaffolding | โ | โ | โ | โ |
| Concurrent workload runner | โ | โ | โ | โ |
| Prompt color themes | โ 10 | โ | ||
| System command fallback | โ | โ | โ | โ |
| Zero external dependencies | โ | โ | โ | โ |
| One-click installer | โ | โ | โ | โ |
| Right-click "Open here" | โ | โ | โ | โ |
- HTTP client (GET / POST / PUT / DELETE)
- Retry + exponential back-off (idempotent only)
- Internal streaming pipelines (
|) - 10 prompt color themes
- One-click Inno Setup installer
- Auto GitHub Releases via CI
- Command history (โ / โ)
- Tab completion
-
grepbuilt-in for pipeline filtering - Script file execution (
.indusfiles) - Plugin system
- Cross-platform support (Linux / macOS)
- Fork โ branch โ code โ PR
go build ./...must pass with zero errors- Diagnostic output โ
stderr, machine output โstdout - New commands should implement both
CommandandStreamCommand
| Problem | Fix |
|---|---|
indus not found |
Open a new terminal after install (PATH loads on start) |
| Colors broken | Run inside Windows Terminal for full ANSI support |
| Installer blocked by Windows | Click More info โ Run anyway (SmartScreen on unsigned exe) |
MIT โ see LICENSE
Made with โฅ by hari7261
Namaste! ๐ ย |ย Made in India ๐ฎ๐ณ โฌ Back to top

