proxy-toggle
v1.0.0
Published
Toggle HTTP(S) proxy env vars per terminal session (bash/zsh), with no_proxy exceptions
Maintainers
Readme
proxy-toggle
Toggle the HTTP(S) proxy in your terminal (bash/zsh) on a per-tab basis, with no_proxy exceptions.
Proxy settings are plain environment variables (http_proxy, https_proxy, no_proxy) that live inside a single shell process. That means proxy-off in one terminal tab does not affect the proxy in any other tab.
Install
npm install -g proxy-toggle
proxy-toggle init --url http://proxy.example.com:8080 --no-proxy "localhost,127.0.0.1,*.internal.example.com"
source ~/.zshrc # or ~/.bashrcinit creates ~/.proxy-togglerc with your values and appends a managed block to ~/.bashrc and ~/.zshrc (limit to one shell with --shell). Nothing is bundled with the package itself — the proxy URL and exceptions are always supplied by the user.
Usage
After init, these functions are available in every new terminal tab:
proxy-on # enable the proxy in the current session
proxy-off # disable the proxy in the current session
proxy-status # show whether the proxy is on/off in THIS sessionThere's also proxy-toggle config, a CLI command (not a shell function) that prints the saved URL and no_proxy list from ~/.proxy-togglerc, regardless of whether the proxy is currently enabled in your session. Don't confuse it with proxy-status above — one shows what's configured, the other shows what's active right now.
By default the proxy is enabled automatically when a new session starts (see the proxy-on call at the end of the managed block). To disable autostart:
proxy-toggle init --url ... --no-autostartinit options
| Flag | Description |
|---|---|
| --url <url> | proxy address, required |
| --no-proxy <list> | comma-separated exception list (optional) |
| --shell bash\|zsh\|both | which rc files to update (default both) |
| --no-autostart | don't enable the proxy automatically on new sessions |
Re-running init is safe — the managed block in the rc file is marked and fully rewritten in place; the rest of the file is left untouched.
Uninstall
proxy-toggle uninstall # remove the block from bash+zsh rc files, delete ~/.proxy-togglerc
proxy-toggle uninstall --keep-config # remove the block but keep ~/.proxy-togglercCheck
echo $http_proxy
echo $no_proxyLicense
MIT
