MCPcopy Index your code
hub / github.com/gleitz/howdoi

github.com/gleitz/howdoi @v2.0.20

repository ↗ · DeepWiki ↗ · release v2.0.20 ↗ · + Follow
115 symbols 266 edges 17 files 5 documented · 4% updated 2mo ago★ 10,84017 open issues
README
<a href="https://pypi.python.org/pypi/howdoi">
    <img src="https://www.dropbox.com/s/dk13iy2uoufdwr7/HowDoIcolor512.png?raw=1" alt="Sherlock, your neighborhood command-line sloth sleuth" />
</a>

howdoi

Instant coding answers via the command line

⚡ Never open your browser to look for help again ⚡

<a href="https://github.com/gleitz/howdoi/actions?query=workflow%3A%22Python+CI%22"><img src="https://img.shields.io/github/workflow/status/gleitz/howdoi/Python%20CI?style=plastic&color=78dce8" alt="build status"></a>
<a href="https://pepy.tech/project/howdoi"><img src="https://img.shields.io/badge/dynamic/json?style=plastic&color=ab9df2&maxAge=86400&label=downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fhowdoi" alt="downloads"></a>
<a href="https://pypi.python.org/pypi/howdoi"><img src="https://img.shields.io/pypi/pyversions/howdoi.svg?style=plastic&color=ff6188" alt="Python versions"></a>

Introduction to howdoi

Are you a hack programmer? Do you find yourself constantly Googling for how to do basic programming tasks?

Suppose you want to know how to format a date in bash. Why open your browser and read through blogs (risking major distraction) when you can simply stay in the console and ask howdoi:

$ howdoi format date bash
> DATE=`date +%Y-%m-%d`

howdoi will answer all sorts of queries:

$ howdoi print stack trace python
> import traceback
>
> try:
>     1/0
> except:
>     print '>>> traceback <<<'
>     traceback.print_exc()
>     print '>>> end of traceback <<<'
> traceback.print_exc()

$ howdoi convert mp4 to animated gif
> video=/path/to/video.avi
> outdir=/path/to/output.gif
> mplayer "$video" \
>         -ao null \
>         -ss "00:01:00" \  # starting point
>         -endpos 10 \ # duration in second
>         -vo gif89a:fps=13:output=$outdir \
>         -vf scale=240:180

$ howdoi create tar archive
> tar -cf backup.tar --exclude "www/subf3" www

image

Installation

pip install howdoi

Usage

New to howdoi?

howdoi howdoi

RTFM

Commands

usage: howdoi [-h] [-p POS] [-n NUM] [-a] [-l] [-c] [-x] [-C] [-j] [-v] [-e [ENGINE]]
[--save] [--view] [--remove] [--empty] [QUERY ...]

instant coding answers via the command line

positional arguments:
  QUERY                 the question to answer

optional arguments:
  -h, --help            show this help message and exit
  -p POS, --pos POS     select answer in specified position (default: 1)
  -n NUM, --num NUM     number of answers to return (default: 1)
  -a, --all             display the full text of the answer
  -l, --link            display only the answer link
  -c, --color           enable colorized output
  -x, --explain         explain how answer was chosen
  -C, --clear-cache     clear the cache
  -j, --json            return answers in raw json format
  -v, --version         display the current version of howdoi
  -e [ENGINE], --engine [ENGINE]
                        search engine for this query (google, bing, duckduckgo)
  --save, --stash       stash a howdoi answer
  --view                view your stash
  --remove              remove an entry in your stash
  --empty               empty your stash

environment variable examples:
  HOWDOI_COLORIZE=1
  HOWDOI_DISABLE_CACHE=1
  HOWDOI_DISABLE_SSL=1
  HOWDOI_SEARCH_ENGINE=google
  HOWDOI_URL=serverfault.com

Using the howdoi stashing feature (for more advanced features view the keep documentation).

stashing: howdoi --save QUERY
viewing:  howdoi --view
removing: howdoi --remove (will be prompted which answer to delete)
emptying: howdoi --empty (empties entire stash, will be prompted to confirm)

As a shortcut, if you commonly use the same parameters each time and don\'t want to type them, add something similar to your .bash_profile (or otherwise). This example gives you 5 colored results each time.

alias h='function hdi(){ howdoi $* -c -n 5; }; hdi'

And then to run it from the command line simply type:

$ h format date bash

You can also search other StackExchange properties for answers:

HOWDOI_URL=cooking.stackexchange.com howdoi make pesto

or as an alias:

alias hcook='function hcook(){ HOWDOI_URL=cooking.stackexchange.com howdoi $* ; }; hcook'
hcook make pesto

Other useful aliases:

alias hless='function hdi(){ howdoi $* -c | less --raw-control-chars --quit-if-one-screen --no-init; }; hdi'

Contributors

How to contribute

We welcome contributions that make howdoi better and improve the existing functionalities of the project. We have created a separate guide to contributing to howdoi that explains how to get up and running with your first pull request.

Notes

Visual Studio Code Extension Installation

Head over to the MarketPlace to install the extension.

Extension points exported contracts — how you extend this code

HowdoiObj (Interface)
(no doc)
extension/code-editor-integration/src/plugin_interfaces.ts
JSONObj (Interface)
(no doc)
extension/code-editor-integration/src/plugin_interfaces.ts
CommentChars (Interface)
(no doc)
extension/code-editor-integration/src/plugin_interfaces.ts

Core symbols most depended-on inside this repo

_get_from_cache
called by 3
howdoi/howdoi.py
get_text
called by 3
howdoi/howdoi.py
build_splitter
called by 3
howdoi/howdoi.py
_get_cache_key
called by 3
howdoi/howdoi.py
print_stash
called by 3
howdoi/howdoi.py
_parse_cmd
called by 3
howdoi/howdoi.py
get_parser
called by 3
howdoi/howdoi.py
exception
called by 2
howdoi/howdoi.py

Shape

Function 62
Method 41
Class 8
Interface 3
Route 1

Languages

Python83%
TypeScript17%

Modules by API surface

howdoi/howdoi.py46 symbols
test_howdoi.py40 symbols
setup.py5 symbols
extension/code-editor-integration/src/remove_regexes.ts4 symbols
howdoi/errors.py3 symbols
extension/vscode-howdoi/src/extension.ts3 symbols
extension/code-editor-integration/src/plugin_interfaces.ts3 symbols
fastentrypoints.py2 symbols
extension/code-editor-integration/src/plugin.ts2 symbols
extension/code-editor-integration/src/find_attributes.ts2 symbols
extension/code-editor-integration/src/create_attributes.ts2 symbols
extension/vscode-howdoi/src/test/suite/index.ts1 symbols

Dependencies from manifests, versioned

@types/chai4.2.12 · 1×
@types/glob7.1.1 · 1×
@types/mocha7.0.2 · 1×
@types/node13.11.0 · 1×
@types/vscode1.46.0 · 1×
@typescript-eslint/eslint-plugin2.34.0 · 1×
chai4.2.0 · 1×
cross-env5.2.0 · 1×
eslint6.8.0 · 1×
glob7.1.6 · 1×
mocha7.1.2 · 1×

For agents

$ claude mcp add howdoi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact