cligle is a small Python command-line based Google search program. It sends requests in
this shape to SerpAPI:
https://serpapi.com/search.html?engine=google&start=[NUM]&q=[QUERY]&api_key=[API_KEY]
Perfect for people who don't want to leave the terminal to search. Available on PyPI.
-
Add your API key securely with:
cligle -set
The key is entered twice with hidden input and saved to
~/.cligle/api_key.txt. Running the command again replaces the saved key. -
If you need to use a different SerpApi endpoint, set it with
CLIGLE_SEARCH_URL:export CLIGLE_SEARCH_URL="https://your-provider.example/search"
The packaged CLI stores the key at ~/.cligle/api_key.txt. You can use a
different location with --key-file. The project's local api_key.txt is
also supported for development and is ignored by Git.
No third-party Python packages are required.
After installing the package, the same command is available from anywhere:
python3 -m pip install cligle
cligle "python argparse tutorial"The exact short form also works:
cligle queryMultiple words do not need quotes:
cligle python argparse tutorialOpen a specific results page with -p or --page:
cligle "python argparse tutorial" --page 2
cligle "python argparse tutorial" -p 3Page numbers start at 1. If no page is specified, page 1 is requested.
SerpApi uses a zero-based result offset internally, so page 1 sends
start=0, page 2 sends start=10, page 3 sends start=20, and so on.
Useful options:
cligle -set --key-file /path/to/api_key.txt
cligle "latest Python news" --engine google
cligle "latest Python news" --page 2
cligle "latest Python news" --key-file /path/to/api_key.txt
cligle "latest Python news" --jsonSave results to a chosen directory:
cligle "latest Python news" -o ./resultsLong form:
cligle "latest Python news" --output ./resultsIf -o or --output is used without a directory, the text file is saved in
your home folder:
cligle "latest Python news" -o
cligle "latest Python news" --outputThe output filename is based on the query, such as latest_Python_news.txt.
Existing files are preserved by adding a number to the next filename.
The formatter recognizes common organic_results, results, items, and
answer_box response fields. The --json option is available when the API
returns a response shape that needs custom handling.