shellroute/shellroute-cli

Shellroute gives each shell its own proxy IP. Pick a country and use the terminal normally.

Go

7

13 commits

updated Sep 17, 2026

See the code
automation
cli
command-line-tool
developer-tools
geo-testing
http-proxy
network-debugging
proxy
shell
terminal

See what people are saying (1)

README

shellroute CLI

License

Every terminal can be somewhere else. Open a proxied shell or route one command, then run your terminal workflow normally. Learn more at shellroute.com.

Install

npm install -g shellroute

Or via Homebrew:

brew install shellroute/tap/shellroute

Or via Go:

go install github.com/shellroute/shellroute-cli/cmd/shellroute@latest

Or download binaries from GitHub Releases.

Supports macOS and Linux.

Quick start

# Log in. A new account is created automatically.
shellroute login

# Shellroute opens after login. Run these inside it:
/connect US
curl https://ipinfo.io/json

Or route one command

shellroute run DE -- curl https://ipinfo.io/json

Read the full quickstart.

Commands

Authentication

CommandDescription
shellroute loginLog in with email OTP
shellroute logoutRemove stored credentials
shellroute reveal-keyPrint stored API key

Proxy

CommandDescription
shellrouteInteractive shell with /connect, /rotate, /disconnect
shellroute run <country> -- <cmd>Run one command through the proxy
shellroute proxy --country <code>Persistent proxy (blocks until Ctrl+C)
shellroute proxy stopStop running proxy sessions

Local proxy mode

For tools configured with an explicit proxy URL:

shellroute proxy --country US

# In another terminal
curl -x http://127.0.0.1:41900 https://ipinfo.io/ip

Info

CommandDescription
shellroute statusActive sessions
shellroute balanceCredit balance and rates
shellroute countriesAvailable countries
shellroute cities <country>Cities in a country

All info commands support --format json.

Build from source

git clone https://github.com/shellroute/shellroute-cli.git
cd shellroute-cli
./scripts/rebuild-cli.sh
./shellroute version

Run all checks (lint, tests, audit, cross-compile): ./scripts/run-tests.sh. Requires Go 1.22+.

How it works

Your terminal -> shellroute CLI (local proxy) -> shellroute API -> Gateway -> Exit IP -> Internet

Shellroute implements each active route as a local HTTP proxy and provides standard proxy environment variables to the shell or child process. Clients that use those variables send requests through the selected proxy. Each session remains independent, while shellroute manages credentials, rotation, usage, and cleanup.

See what shellroute proxies.

Important

The shellroute CLI is open source and connects to the shellroute service. The service uses prepaid credits. See pricing and the acceptable use policy.

Privacy

  • Config stored in ~/.shellroute/config.toml (mode 600)
  • API key generated locally, only the hash is sent to the server
  • No analytics or telemetry collected
  • Health probe sends a CONNECT to httpbin.org:443 through the proxy to verify upstream connectivity

Contributing

See CONTRIBUTING.md.

License

Apache 2.0. See LICENSE.

"shellroute" is a trademark. This license covers the code, not the brand. See NOTICE.

Contributors

cvl

10 commits

shellroute/shellroute-cli

Shellroute gives each shell its own proxy IP. Pick a country and use the terminal normally.

Go

7

13 commits

updated Sep 17, 2026

See the code
automation
cli
command-line-tool
developer-tools
geo-testing
http-proxy
network-debugging
proxy
shell
terminal

See what people are saying (1)

README

shellroute CLI

License

Every terminal can be somewhere else. Open a proxied shell or route one command, then run your terminal workflow normally. Learn more at shellroute.com.

Install

npm install -g shellroute

Or via Homebrew:

brew install shellroute/tap/shellroute

Or via Go:

go install github.com/shellroute/shellroute-cli/cmd/shellroute@latest

Or download binaries from GitHub Releases.

Supports macOS and Linux.

Quick start

# Log in. A new account is created automatically.
shellroute login

# Shellroute opens after login. Run these inside it:
/connect US
curl https://ipinfo.io/json

Or route one command

shellroute run DE -- curl https://ipinfo.io/json

Read the full quickstart.

Commands

Authentication

CommandDescription
shellroute loginLog in with email OTP
shellroute logoutRemove stored credentials
shellroute reveal-keyPrint stored API key

Proxy

CommandDescription
shellrouteInteractive shell with /connect, /rotate, /disconnect
shellroute run <country> -- <cmd>Run one command through the proxy
shellroute proxy --country <code>Persistent proxy (blocks until Ctrl+C)
shellroute proxy stopStop running proxy sessions

Local proxy mode

For tools configured with an explicit proxy URL:

shellroute proxy --country US

# In another terminal
curl -x http://127.0.0.1:41900 https://ipinfo.io/ip

Info

CommandDescription
shellroute statusActive sessions
shellroute balanceCredit balance and rates
shellroute countriesAvailable countries
shellroute cities <country>Cities in a country

All info commands support --format json.

Build from source

git clone https://github.com/shellroute/shellroute-cli.git
cd shellroute-cli
./scripts/rebuild-cli.sh
./shellroute version

Run all checks (lint, tests, audit, cross-compile): ./scripts/run-tests.sh. Requires Go 1.22+.

How it works

Your terminal -> shellroute CLI (local proxy) -> shellroute API -> Gateway -> Exit IP -> Internet

Shellroute implements each active route as a local HTTP proxy and provides standard proxy environment variables to the shell or child process. Clients that use those variables send requests through the selected proxy. Each session remains independent, while shellroute manages credentials, rotation, usage, and cleanup.

See what shellroute proxies.

Important

The shellroute CLI is open source and connects to the shellroute service. The service uses prepaid credits. See pricing and the acceptable use policy.

Privacy

  • Config stored in ~/.shellroute/config.toml (mode 600)
  • API key generated locally, only the hash is sent to the server
  • No analytics or telemetry collected
  • Health probe sends a CONNECT to httpbin.org:443 through the proxy to verify upstream connectivity

Contributing

See CONTRIBUTING.md.

License

Apache 2.0. See LICENSE.

"shellroute" is a trademark. This license covers the code, not the brand. See NOTICE.

Contributors

cvl

10 commits

Languages

Go

96.4%

Shell

3.2%