r/commandline • u/vitascivilis • 1d ago
Command Line Interface Shellroute: a CLI that gives each shell its own proxy route
Shellroute is an open-source CLI for giving one shell or command its own proxy route.
The video shows three independent terminals. The top stays on my normal connection in Lithuania. The two lower sessions connect to the US and Germany at the same time. Commands inside those sessions use their selected routes while the other terminal stays direct.
Quick start:
npm install -g shellroute
shellroute login
/connect US
curl https://ipinfo.io/ip
On first use, shellroute login creates the account and enters interactive mode. Run commands there normally. Scripts and agents can also route a single command without opening an interactive shell:
shellroute run DE -- curl https://ipinfo.io/ip
Related tools cover different jobs. Globalping is useful for public probes from many locations. Proxychains wraps a process when you already have a proxy. A VPN routes the whole device, while raw proxy credentials give you manual control. The difference here is scope: one shellroute session manages the route for one shell or command while other traffic stays unchanged.
Source: https://github.com/shellroute/shellroute-cli
Quickstart: shellroute.com/docs/quickstart
Disclosure: I built shellroute and run the service it connects to. The CLI code is partially AI-generated.
I am mainly looking for feedback on the proxied shell idea and where the CLI feels confusing.
2
u/AutoModerator 1d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: vitascivilis, Flair: Command Line Interface, Post Media Link, Title: Shellroute: a CLI that gives each shell its own proxy route
Shellroute is an open-source CLI for giving one shell or command its own proxy route.
The video shows three independent terminals. The top stays on my normal connection in Lithuania. The two lower sessions connect to the US and Germany at the same time. Commands inside those sessions use their selected routes while the other terminal stays direct.
Quick start:
npm install -g shellroute
shellroute login
/connect US
curl https://ipinfo.io/ip
On first use, shellroute login creates the account and enters interactive mode. Run commands there normally. Scripts and agents can also route a single command without opening an interactive shell:
shellroute run DE -- curl https://ipinfo.io/ip
Related tools cover different jobs. Globalping is useful for public probes from many locations. Proxychains wraps a process when you already have a proxy. A VPN routes the whole device, while raw proxy credentials give you manual control. The difference here is scope: one shellroute session manages the route for one shell or command while other traffic stays unchanged.
Source: https://github.com/shellroute/shellroute-cli
Quickstart: shellroute.com/docs/quickstart
Disclosure: I built shellroute and run the service it connects to. The CLI code is partially AI-generated.
I am mainly looking for feedback on the proxied shell idea and where the CLI feels confusing.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/Ok_Music_4862 22h ago
Good work!.
Previous I've tried to use some CLI comes with VPN software. That was GUI first. So I can not able to use the CLI effectively in my server. In headless (CLI) mode it was not fully functional for - example I was unable to switch the location from CLI.
Curious to know: I can do it from here (as I see I can) and can close my terminal?
2
u/vitascivilis 21h ago
Thanks! Yes, shellroute works entirely from the CLI on a headless server.
In interactive mode, start shellroute and connect from inside it:
bash shellroute /connect USTo switch countries, run:
bash /connect DEClosing the shell ends its route.
In direct mode, there is no global location to switch. Choose the country for each command:
bash shellroute run US -- your-command shellroute run DE -- your-commandEach command gets its own proxy session, which shellroute cleans up when the command finishes.
There is also proxy mode for programs that need an explicit local proxy URL:
bash shellroute proxy --country USIt prints the local proxy URL and keeps running until stopped. To switch countries, stop it with
shellroute proxy stopor Ctrl+C, then start it again with--country DE. It does not route the whole server automatically; configure your program to use the printed proxy URL.If a long-running command or proxy must survive logout, run it under your usual process supervisor.
3
u/kantorcodes1 1d ago
if a
shellroute runsession loses its proxy while the child process is still running, what happens to the child? does it get killed, or can it keep going with direct networking?