Need help with socli?
Click the โ€œchatโ€ button below for chat support from the developer who created it, or find similar developers for support.

About the developer

gautamkrishnar
912 Stars 213 Forks BSD 3-Clause "New" or "Revised" License 502 Commits 3 Opened issues

Description

Stack overflow command line client. Search and browse stack overflow without leaving the terminal :computer:

Services available

!
?

Need anything else?

Contributors list

# 13,062
Courser...
Express
vuejs
browser...
258 commits
# 173,713
HTML
Shell
CSS
termina...
19 commits
# 23,186
captcha...
Neovim
Markdow...
ansi-co...
17 commits
# 214,989
Python
Rust
Shell
termina...
15 commits
# 29,232
Rails
Go
Homebre...
instagr...
8 commits
# 279,008
Shell
termina...
command...
pypi
7 commits
# 309,827
Python
Shell
termina...
command...
5 commits
# 310,298
Python
Shell
termina...
command...
5 commits
# 330,761
Python
Shell
termina...
command...
4 commits
# 330,760
Python
Shell
termina...
command...
4 commits
# 357,234
Python
Shell
termina...
command...
3 commits
# 356,912
Python
Shell
termina...
command...
3 commits
# 342,380
Python
Shell
termina...
command...
3 commits
# 395,831
Python
Shell
termina...
command...
2 commits
# 395,095
Python
Shell
termina...
command...
2 commits
# 299,529
PHP
Shell
C#
termina...
2 commits
# 388,245
Python
Shell
termina...
command...
2 commits
# 392,934
Python
Shell
termina...
command...
2 commits
# 449,125
Python
Shell
termina...
command...
1 commit
# 460,971
Python
Shell
termina...
command...
1 commit

SoCLI PyPI PyPI Downloads Build Status Collaborizm Gitter Chat

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

Installation

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

Install python and just use pip command to install socli:

bash
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:

bash
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:

bash
brew tap gautamkrishnar/socli
brew install socli
Enabling the shell autocompletion

If you installed socli vis pyPi you may need to enable the shell autocompletion. Add the following to your

.bashrc
file to enable it:
bash
socli --register

Updating

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

bash
pip install --upgrade socli

If you installed via homebrew:

bash
brew upgrade socli

Usage

Quick Search

Use the socli command followed by the search query: ```bash 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:

```sh 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:

sh
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:

sh
socli -t javascript -q window.open
You can also specify multiple tags, Just separate them with a comma:
sh
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.

sh
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:
sh
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:

sh
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

Syntax:

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 | | -j | --json-output | Gives output to stdout as json | socli -jq for loop python | | -g | --register | Registers socli's shell autocompletion | socli -g | | -v | --version | Displays the version of socli. | socli -v |

Query

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

Features

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.

Testing

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.

๐Ÿ’ฅ How to Contribute ?

If you are willing to contribute to SoCLI project, you are awesome! Just follow the steps given in CONTRIBUTING.md ๐Ÿ˜ƒ

Maintainers

Please reach out to any of the following people if you have any queries:


Gautam krishna R

๐Ÿ’ป

Hedy Li

๐Ÿ’ป

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


aaxu

๐Ÿ’ป

kilbee

๐Ÿ’ป

Sam Dean

๐Ÿ“–

mwwynne

๐Ÿ’ป

Carlos J. Puga Medina

๐Ÿ›

Jon Ericson

๐Ÿ’ป

Ankit Kr. Singh

๐Ÿ’ป

Harsha Alva

๐Ÿ’ป

Pia Mancini

๐Ÿ“–

Aditya Tandon

๐Ÿ›

Akshatha Nayak

๐Ÿ’ป

Liam Hawkins

๐Ÿ’ป

Arount

๐Ÿ’ป

Cรฉdric Picard

๐Ÿ›

Amartya Chaudhuri

๐Ÿ’ป

Elliott Beach

๐Ÿ’ป

Prashant Chahal

๐Ÿ’ป

Insiyah Hajoori

๐Ÿ’ป

C

๐Ÿ’ป

Liam Byrne

๐Ÿ’ป

Tran Chi Khang

๐Ÿ’ป

Alix Poulsen

๐Ÿ“–

albalitz

๐Ÿ’ป

Aniruddha Bhattacharjee

๐Ÿ’ป

Daniel St.Jacques

๐Ÿ’ป

Donnell Muse

๐Ÿ’ป

JM Lopez

๐Ÿ’ป

JOBIN PHILIP ABRAHAM

๐Ÿ“–

Jakub Kukul

๐Ÿ’ป

Pigeon

๐Ÿ“–

Rajdeep Biswas

๐Ÿ’ป

Sachin Kukreja

๐Ÿ’ป

Simon Reap

๐Ÿ’ป

Srisaila

๐Ÿ’ป

agarwalnishtha

๐Ÿ’ป

Frederick Kozlowski

๐Ÿ’ป

Esha Lath

๐Ÿ’ป

thumpri

๐Ÿ’ป

Adam Zhang

๐Ÿ’ป

prathampowar2001

๐Ÿ’ป

Subhankar Hotta

๐Ÿ’ป

ankushduacodes

๐Ÿ’ป

Shriram Bhat

๐Ÿ’ป

Vjs Pranav

๐Ÿ’ป

Saif Kazi

๐Ÿ’ป

pstreff

๐Ÿ’ป

anshik1998

๐Ÿ’ป

abstanton

๐Ÿ’ป

Sabu Siyad

๐Ÿ’ป

pspiagicw

๐Ÿ’ป

Ryan Hertz

๐Ÿ’ป

tharunc

๐Ÿ“–

Ananthakrishnan Nair RS

๐Ÿ“–

Muthu Annamalai.V

๐Ÿ“–

Ayushman

๐Ÿ’ป

Tushar Nankani

๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

Bugs

If you are experiencing any bugs, donโ€™t forget to open a new issue.

Error Solving

If you encounter "AttributeError: 'module' object has no attribute 'SSL ST INIT'

sudo pip uninstall pyopenssl
sudo pip install pyopenssl or sudo easy_install pyopenssl

Thanks

Sponsors

Sponsor SoCLI on Collaborizm or on Open Collective:

Liked it?

Hope you liked this project, don't forget to give it a star โญ

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.