Stack Overflow command line interface

2 Contributions Made
0 Milestones
5 Participating Countries
Gautam Krishna RSoftware Engineer at Red Hat
Nikhil Babhale
Suraj Gahatraj
Gilles Charlier
Sponsor This Project


Stack Overflow command line written in python. Using SoCLI you can search and browse Stack Overflow without leaving the terminal. Just use the socli command:

SoCLI in action


Supported platforms
  • Linux
  • Windows
  • Mac
  • Python 3.5 or higher
For Linux

Install python and just use pip command to install socli:

sudo apt-get install python3 python3-pip
pip install socli
For Windows

Download and install Python. Don’t forget to check the option “Add to path”.

Open a command prompt with administrative privileges and use pip command to install socli:

pip install socli

Use easy_install if your python path has a space in it. Read more: “Failed to create process”:

easy_install socli
For Mac/Linux (via homebrew)

Install socli:

brew tap gautamkrishnar/socli
brew install socli


Use the command below to update your existing version of socli to the newest version so that you won’t miss any features:

pip install --upgrade socli


Quick Search

Use the socli command followed by the search query:

socli for loop in python syntax

The above command will search for the query “for loop in python syntax” and displays the first most voted question in Stack Overflow with its most voted answer. Pretty quick, right?

Interactive Search

You can search Stack Overflow interactively by using the command below:

socli -iq html error 404

This will display a list of questions from Stack Overflow for the query “html error 404” and it will allow you to choose any of the questions you like interactively. When you choose a question, it will display the complete description of the chosen question with its most voted answer. You can also browse through the other answers to that question using the up and down arrow keys as well as go back to the list of questions using the left arrow key.

Manual Search

This will allow you to specify a requested question number for your query. For example, consider the following command:

socli -r 2 -q javascript prototype function

This command searches for “javascript prototype function” in Stack Overflow and displays the second question that contains it.

Topic-Based Search

Stack Overflow supports topic by using tags. socli allows you to query Stack Overflow based on specific tags. Just specify the tag via the following command:

socli -t javascript -q window.open

You can also specify multiple tags, Just separate them with a comma:

socli -t javascript,node.js -q window.open

See the complete list of tags here.

User Profile Browsing

Just use the command below to set your user ID in socli. When you execute the command next time, it will automaticially fetch the data.

socli -u

if your are an extensive user of StackOverflow, socli allows you to set your own API key to overcome the StackOverflow API Limitations. Just use the command below:

socli --api

You can get an API Key here by registering as a new app. Please don’t use SoCLI as app name.

Posting a New Question

If you can’t find an answer for your question in Stack Overflow, socli allows you to create a new question via the web browser. Just type the command below and socli will open the new question page of Stack Overflow in the web browser for you:

socli -n
Opening a url directly

If you have the url of the Stack Overflow post then you can pass it using --open-url or -o.
For example
socli --open-url https://stackoverflow.com/questions/20639180/explanation-of-how-nested-list-comprehension-works


socli has the following syntax

Usage: socli [ Arguments] < Search Query >
Arguments (optional)
Short Long Description Example
-q –query Used to specify the query when arguments are used. A query value must be passed to it. If it is used alone (socli -q query) then it will display the same result as socli query. socli -q query
-i –interactive Used to search interactively. It doesn’t take any values. It must be followed by a -q or --query after it. socli -i -q query
-r –res Used for manual search. It takes the question number as the argument and it must be followed by a -q or --query after it. socli -r 4 -q query
-t –tag Specifies the tag to search for the query on Stack Overflow. It must be followed by a -q or --query after it. socli -t js -q query
-n –new Opens the web browser to create a new question on Stack Overflow. socli --new
-u –user Displays the user profile informations. If no argument is given, it will display your profile. socli -u 22656
-a –api Sets a custom API key. socli --api
-d –del Deletes the configuration file generated by socli -u manually. socli -d
-s –sosearch SoCLI uses Google search by default to search for questions. To override this and use stackoverflow’s default search instead. socli -s -q for loop python
-h –help Displays the help text. socli --help
-o –open-url Displays the given url in socli if possible if not opens in browser. socli -o https://stackoverflow.com/questions/20639180/explanation-of-how-nested-list-comprehension-works

This term refers to what you’re searching for in Stack Overflow.


These are the amazing features of SoCLI:

  • Manual Search
  • Interactively browse Stack Overflow using the interactive mode
  • Coloured interface
  • Question stats view
  • Tag support
  • Can open the page in a browser
  • Can view user profiles
  • Can create a new question via the web browser
  • Can open a Stack Overflow page on the terminal directly from a url

To Do

Command line interface for:

  • Stack Overflow authentication
  • Posting to Stack Overflow
  • Upvote answer
  • Comment on an answer
  • Browsing stackoverflow home page

Please check out the list of issues.


Automated tests are setup by using
pytest, the tests can be run
locally by invoking a python setup.py test.

All tests are in the socli/tests/ subdirectory of this repository.

TravisCI is supposed to run the test-suite on build.


If you are willing to contribute to SoCLI project, you are awesome! Just follow the steps below:

  1. Fork it!
  2. Make a local clone:
git clone https://github.com/{YOUR_USERNAME}/socli.git
  1. Switch to the directory: cd socli
  2. Create your new branch: git checkout -b feature-name
  3. Make necessary changes to the source code
  4. Add changes to git index by using git add .
  5. Commit your changes: git commit -m 'Added new feature'
  6. Push to the branch: git push
  7. Submit a new pull request 😄

Liked it?

Hope you liked this project, don’t forget to give it a star ⭐

Discuss SoCLI

Start a discussion...
Chat with us!
Write something before you submit it!
Photo updated
Request Sent!
Copied to Clipboard