{"id":13394511,"url":"https://github.com/gleitz/howdoi","last_synced_at":"2025-05-14T05:11:16.754Z","repository":{"id":5603117,"uuid":"6810140","full_name":"gleitz/howdoi","owner":"gleitz","description":"instant coding answers via the command line","archived":false,"fork":false,"pushed_at":"2024-10-22T14:24:10.000Z","size":27718,"stargazers_count":10705,"open_issues_count":30,"forks_count":866,"subscribers_count":223,"default_branch":"master","last_synced_at":"2025-05-04T22:02:49.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://blog.gleitzman.com/post/43330157197/howdoi-instant-coding-answers-via-the-command-line","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gleitz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":"docs/contributing.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-11-22T08:49:24.000Z","updated_at":"2025-05-03T06:32:14.000Z","dependencies_parsed_at":"2024-11-19T01:09:59.250Z","dependency_job_id":"f2fe5636-07af-4c41-989b-aa71648b075a","html_url":"https://github.com/gleitz/howdoi","commit_stats":{"total_commits":799,"total_committers":86,"mean_commits":9.290697674418604,"dds":0.6758448060075094,"last_synced_commit":"659e370971079fcb077d6f9962cac889652bd595"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleitz%2Fhowdoi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleitz%2Fhowdoi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleitz%2Fhowdoi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleitz%2Fhowdoi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gleitz","download_url":"https://codeload.github.com/gleitz/howdoi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076850,"owners_count":22010611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T17:01:22.125Z","updated_at":"2025-05-14T05:11:11.730Z","avatar_url":"https://github.com/gleitz.png","language":"Python","funding_links":[],"categories":["Python","Command-line Tools","Command Line Learning","资源列表","\u003ca id=\"tag-dev\" href=\"#tag-dev\"\u003eDev\u003c/a\u003e","Uncategorized","Jupyter Notebook","命令行工具","其他","others","Tools and Plugins","Packages","Command-line Tools [🔝](#readme)","\u003ca name=\"programming\"\u003e\u003c/a\u003eProgramming","Awesome Python","Utilities"],"sub_categories":["Internet Speedtest","命令行工具","\u003ca id=\"tag-dev-other\" href=\"#tag-dev-other\"\u003eOther Dev projects\u003c/a\u003e","Uncategorized","网络服务_其他","Windows","CLI Tools","Command-line Tools"],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://pypi.python.org/pypi/howdoi\"\u003e\n        \u003cimg src=\"https://www.dropbox.com/s/dk13iy2uoufdwr7/HowDoIcolor512.png?raw=1\" alt=\"Sherlock, your neighborhood command-line sloth sleuth\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003ehowdoi\u003c/h1\u003e\n\u003ch2 align=\"center\"\u003eInstant coding answers via the command line\u003c/h2\u003e\n\u003cp align=\"center\"\u003e\u003cstrong\u003e⚡ Never open your browser to look for help again ⚡\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/gleitz/howdoi/actions?query=workflow%3A%22Python+CI%22\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/gleitz/howdoi/python.yml?style=plastic\u0026color=78dce8\" alt=\"build status\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://pepy.tech/project/howdoi\"\u003e\u003cimg src=\"https://img.shields.io/pypi/dm/howdoi?style=plastic\u0026color=ab9df2\u0026maxAge=86400\u0026label=downloads\u0026query=%24.total_downloads\u0026url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fhowdoi\" alt=\"downloads\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://pypi.python.org/pypi/howdoi\"\u003e\u003cimg src=\"https://img.shields.io/pypi/pyversions/howdoi.svg?style=plastic\u0026color=ff6188\" alt=\"Python versions\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n------------------------------------------------------------------------\n\n## Introduction to howdoi\n\nAre you a hack programmer? Do you find yourself constantly Googling for\nhow to do basic programming tasks?\n\nSuppose you want to know how to format a date in bash. Why open your\nbrowser and read through blogs (risking major distraction) when you can\nsimply stay in the console and ask howdoi:\n\n    $ howdoi format date bash\n    \u003e DATE=`date +%Y-%m-%d`\n\nhowdoi will answer all sorts of queries:\n\n    $ howdoi print stack trace python\n    \u003e import traceback\n    \u003e\n    \u003e try:\n    \u003e     1/0\n    \u003e except:\n    \u003e     print '\u003e\u003e\u003e traceback \u003c\u003c\u003c'\n    \u003e     traceback.print_exc()\n    \u003e     print '\u003e\u003e\u003e end of traceback \u003c\u003c\u003c'\n    \u003e traceback.print_exc()\n\n    $ howdoi convert mp4 to animated gif\n    \u003e video=/path/to/video.avi\n    \u003e outdir=/path/to/output.gif\n    \u003e mplayer \"$video\" \\\n    \u003e         -ao null \\\n    \u003e         -ss \"00:01:00\" \\  # starting point\n    \u003e         -endpos 10 \\ # duration in second\n    \u003e         -vo gif89a:fps=13:output=$outdir \\\n    \u003e         -vf scale=240:180\n\n    $ howdoi create tar archive\n    \u003e tar -cf backup.tar --exclude \"www/subf3\" www\n\n[![image](http://imgs.xkcd.com/comics/tar.png)](https://xkcd.com/1168/)\n\n## Installation\n\n    pip install howdoi\n\nor\n\n    brew install howdoi\n\n## Usage\n\n### New to howdoi?\n\n    howdoi howdoi\n\n### RTFM\n\n-   [Introduction and\n    installation](http://gleitz.github.io/howdoi/introduction/)\n-   [Usage](http://gleitz.github.io/howdoi/usage/)\n-   [Contributing to\n    howdoi](http://gleitz.github.io/howdoi/contributing_to_howdoi/)\n-   [Advanced\n    usage](http://gleitz.github.io/howdoi/howdoi_advanced_usage/)\n-   [Troubleshooting](http://gleitz.github.io/howdoi/troubleshooting/)\n\n### Commands\n\n    usage: howdoi [-h] [-p POS] [-n NUM] [-a] [-l] [-c] [-x] [-C] [-j] [-v] [-e [ENGINE]]\n    [--save] [--view] [--remove] [--empty] [QUERY ...]\n\n    instant coding answers via the command line\n\n    positional arguments:\n      QUERY                 the question to answer\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      -p POS, --pos POS     select answer in specified position (default: 1)\n      -n NUM, --num NUM     number of answers to return (default: 1)\n      -a, --all             display the full text of the answer\n      -l, --link            display only the answer link\n      -c, --color           enable colorized output\n      -x, --explain         explain how answer was chosen\n      -C, --clear-cache     clear the cache\n      -j, --json            return answers in raw json format\n      -v, --version         display the current version of howdoi\n      -e [ENGINE], --engine [ENGINE]\n                            search engine for this query (google, bing, duckduckgo)\n      --save, --stash       stash a howdoi answer\n      --view                view your stash\n      --remove              remove an entry in your stash\n      --empty               empty your stash\n\n    environment variable examples:\n      HOWDOI_COLORIZE=1\n      HOWDOI_DISABLE_CACHE=1\n      HOWDOI_DISABLE_SSL=1\n      HOWDOI_SEARCH_ENGINE=google\n      HOWDOI_URL=serverfault.com\n\nUsing the howdoi stashing feature (for more advanced features view the\n[keep documentation](https://github.com/OrkoHunter/keep)).\n\n    stashing: howdoi --save QUERY\n    viewing:  howdoi --view\n    removing: howdoi --remove (will be prompted which answer to delete)\n    emptying: howdoi --empty (empties entire stash, will be prompted to confirm)\n\nAs a shortcut, if you commonly use the same parameters each time and\ndon\\'t want to type them, add something similar to your .bash_profile\n(or otherwise). This example gives you 5 colored results each time.\n\n    alias h='function hdi(){ howdoi $* -c -n 5; }; hdi'\n\nAnd then to run it from the command line simply type:\n\n    $ h format date bash\n\nYou can also search other [StackExchange\nproperties](https://stackexchange.com/sites#traffic) for answers:\n\n    HOWDOI_URL=cooking.stackexchange.com howdoi make pesto\n\nor as an alias:\n\n    alias hcook='function hcook(){ HOWDOI_URL=cooking.stackexchange.com howdoi $* ; }; hcook'\n    hcook make pesto\n\nOther useful aliases:\n\n    alias hless='function hdi(){ howdoi $* -c | less --raw-control-chars --quit-if-one-screen --no-init; }; hdi'\n\n## Integrations\n\n-   Slack integration available through\n    [slack-howdoi](https://github.com/ellisonleao/slack-howdoi)\n-   Telegram integration available through\n    [howdoi-telegram](https://github.com/aahnik/howdoi-telegram)\n-   Discord integration available through\n    [discord-howdoi](https://github.com/MLH-Fellowship/0.5.1-howDoIDiscord)\n-   Emacs integration available through\n    [emacs-howdoi](https://blog.gleitzman.com/post/700738401851277312/howdoi-use-howdoi-in-emacs)\n-   VSCode integration available on the\n    [marketplace](https://marketplace.visualstudio.com/items?itemName=howdoi-org.howdoi)\n-   Alfred integration available through\n    [alfred-howdoi](https://github.com/gleitz/alfred-howdoi)\n\n## Contributors\n\n-   Benjamin Gleitzman ([\\@gleitz](http://twitter.com/gleitz))\n-   Yanlam Ko ([\\@YKo20010](https://github.com/YKo20010))\n-   Diana Arreola ([\\@diarreola](https://github.com/diarreola))\n-   Eyitayo Ogunbiyi ([\\@tayoogunbiyi](https://github.com/tayoogunbiyi))\n-   Chris Nguyen ([\\@chrisngyn](https://github.com/chrisngyn))\n-   Shageldi Ovezov ([\\@ovezovs](https://github.com/chrisngyn))\n-   Mwiza Simbeye\n    ([\\@mwizasimbeye11](https://github.com/mwizasimbeye11))\n-   Shantanu Verma ([\\@SaurusXI](https://github.com/SaurusXI))\n-   Sheza Munir ([\\@ShezaMunir](https://github.com/ShezaMunir))\n-   Jyoti Bisht ([\\@joeyouss](https://github.com/joeyouss))\n-   And [more!](https://github.com/gleitz/howdoi/graphs/contributors)\n\n## How to contribute\n\nWe welcome contributions that make howdoi better and improve the\nexisting functionalities of the project. We have created a separate\n[guide to contributing to\nhowdoi](http://gleitz.github.io/howdoi/contributing_to_howdoi/) that explains\nhow to get up and running with your first pull request.\n\n## Notes\n\n-   Works with Python 3.7 and newer. Unfortunately Python 2.7 support\n    has been discontinued :(\n-   Special thanks to Rich Jones\n    ([\\@miserlou](https://github.com/miserlou)) for the idea\n-   More thanks to [Ben Bronstein](https://benbronstein.com/) for the\n    logo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgleitz%2Fhowdoi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgleitz%2Fhowdoi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgleitz%2Fhowdoi/lists"}