This post is meant for the local community.
PTCL is the biggest local internet service provider here in Lahore. I have been using PTCL’s internet since the beginning. While there are several other wireless internet providers, in my experience there is simply no better alternative to PTCL at the time of writing this post.
Workflow Is My Thing!#
If you read this blog then you know that I am a workflow optimist. I love building professional workflows via automation scripts mostly related to the command line or web development. Being a command line junkie and all that, I find it very cumbersome to have to log in simply to reboot the PTCL router.
I wanted to use the command line to play around with the router, for things like rebooting, keeping a check at the line parameters and even calculating the signal to noise ratio (SNR). I was earlier looking into phatomJS for building something like that, but one thing led to another and today I got some time to finally open source a simple to use command line interface for PTCL routers.
You can use ptcli
to perform following actions via command line
- Reboot the router
- Check Router’s system info
- Check Router’s uptime
- Check ADSL info
- Check & calculate ADSL SNR
Installation#
Open command line terminal (I prefer iTerm2) and run the following command.
sudo wget -qO ptcli https://git.io/vPtPS && sudo chmod +x ./ptcli && sudo install ./ptcli /usr/local/bin/ptcli
This command will perform the following actions:
- Use sudo permissions
- Use wget to download
PTCL-CLI
and rename it to ptcli
- Make the
ptcli
executable
- Install
ptcli
inside /usr/local/bin/ folder.
Usage#
️ Usage: ptcli [ -c |--config ]
, [ -h | help ]
️ – [ -h | help ]
Use help
[ -c | --config ]
Use config data, if so configure the three variables ‘host_address’, ‘username’, and ‘password
[ -r | --reboot ]
Quick reboot, dependant on ‘–config’ param.”
Here’s a complimentary GIF.

Why was PTCL CLI Created?#
I am a command line junkie and it is too much work for me to go sign in and reboot the router or get the line parameters when I need to. So, I built this CLI and now with a bunch of aliases, I am able to perform these actions within a single command.
Environment#
I have built this CLI using Mac. It needs to be run on Bash or ZSH based shell.
Beta software! Use at your own risk.
Changelog#
1.0.0 (2016-10-01)#
- First version
- NEW: Reboot the router
[ 1 | reboot ]
- NEW: Router’s system info
[ 2 | sysinfo ]
- NEW: Router’s uptime
[ 3 | uptime ]
- NEW: ADSL info
[ 4 | adsl_info ]
- NEW: ADSL SNR check
[ 5 | adsl_snr ]
- NEW: Exit
[ 6 | exit | q ]
License#
MIT License. This script has no official affiliation with PTCL.
? Looking forward to the feedback and contribution from your end. That’s how we can make it something more worthwhile. Let’s collaborate at
GitHub.
✔︎ Did you like PTCL CLI? It’d be great if you can share it on
Twitter.
Great script. Keep up the awesome work.
? Thanks a million! Adnan!
I was literally thinking about it. Had a really bad time with TELNET….
This is one big solution.
Glad I could help!
Nice Work. Keep it Up.
Thanks!
Awesome Work Brother .
You are my motivator now .
That’s very kind of you to say. ?