Top Related Projects
Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
the only cheat sheet you need
📚 Collaborative cheatsheets for console commands
:mag: Google from the terminal
A very fast implementation of tldr in Rust.
🖥 📊 🕹 🛠 A curated list of command line apps
Quick Overview
Howdoi is a command-line tool that provides instant coding answers from the web. It allows developers to quickly find solutions to programming questions without leaving the terminal, by scraping and presenting relevant code snippets from websites like Stack Overflow.
Pros
- Saves time by providing quick access to coding solutions
- Works directly from the command line, maintaining developer workflow
- Supports a wide range of programming languages and topics
- Customizable with various options for output formatting and source selection
Cons
- May not always provide the most up-to-date or accurate information
- Relies on the quality of answers available on Stack Overflow and similar sites
- Can sometimes return irrelevant results for complex or ambiguous queries
- Requires an internet connection to function
Code Examples
- Basic usage:
howdoi reverse a list in python
This command will return a code snippet showing how to reverse a list in Python.
- Specifying the number of answers:
howdoi -n 3 create a REST API in Node.js
This command will return three different code snippets or explanations for creating a REST API in Node.js.
- Getting a full answer page:
howdoi -a convert json to csv in python
This command will return the full answer page for converting JSON to CSV in Python, including any explanations and multiple code snippets if available.
Getting Started
To install howdoi, use pip:
pip install howdoi
Once installed, you can start using howdoi immediately by typing queries in your terminal:
howdoi [your programming question here]
For more options and customization, you can use various flags:
howdoi -c -n 3 [your question] # Returns colorized output with 3 answers
howdoi -e [your question] # Opens the answer link in your browser
howdoi -l [your question] # Displays only the code from the answer
Refer to the project's README for a full list of available options and advanced usage instructions.
Competitor Comparisons
Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
Pros of haxor-news
- Provides a command-line interface for browsing Hacker News, offering a more immersive experience
- Includes features like filtering, sorting, and viewing comments directly in the terminal
- Supports user authentication for voting and commenting on Hacker News
Cons of haxor-news
- More complex setup and usage compared to the simplicity of howdoi
- Limited to Hacker News content, while howdoi can search across multiple sources
- Requires more system resources due to its broader feature set
Code comparison
haxor-news:
def print_items(self, items):
for item in items:
self._print_item(item)
howdoi:
def get_answer(query, num_answers):
links = get_links(query)
answers = []
for link in links[:num_answers]:
answers.append(get_answer_from_link(link))
return answers
The code snippets show that haxor-news focuses on displaying items from Hacker News, while howdoi is designed to fetch and present answers to programming questions from various sources. This reflects the different purposes of the two projects: haxor-news as a Hacker News client and howdoi as a quick reference tool for developers.
the only cheat sheet you need
Pros of cheat.sh
- Broader coverage of topics, including programming languages, tools, and general commands
- Supports multiple interfaces: command-line, web, and API
- Allows community contributions and updates
Cons of cheat.sh
- May provide more complex or verbose answers
- Requires an internet connection for all queries
Code Comparison
howdoi:
def get_answer(query):
return google_answer(query) or stackoverflow_answer(query)
cheat.sh:
def get_answer(query):
return (
cache.get(query) or
community_contrib(query) or
stackoverflow_answer(query) or
documentation_lookup(query)
)
Both projects aim to provide quick answers to programming questions, but they differ in their approach and scope. howdoi focuses on extracting answers from Stack Overflow, while cheat.sh offers a more comprehensive knowledge base with multiple sources and interfaces.
howdoi is simpler to use and install, making it ideal for quick, specific queries. cheat.sh, on the other hand, provides more extensive information and supports a wider range of topics, but may require more setup and interpretation of results.
Ultimately, the choice between the two depends on the user's needs: howdoi for straightforward coding questions, and cheat.sh for broader technical information and more detailed explanations.
📚 Collaborative cheatsheets for console commands
Pros of tldr
- Larger community-driven database of commands and examples
- Available offline and in multiple languages
- Easier to contribute and maintain due to simple markdown format
Cons of tldr
- Limited to command-line tools and common tasks
- Less dynamic, doesn't provide real-time answers to specific questions
- Requires manual updates to stay current
Code comparison
tldr (example page content):
# ls
List directory contents.
- List files one per line:
ls -1
- List all files, including hidden files:
ls -a
- List all files, with trailing / added to directory names:
ls -F
howdoi (example usage):
from howdoi import howdoi
query = "reverse a string in python"
answer = howdoi.howdoi(query)
print(answer)
Summary
tldr focuses on providing concise, community-curated command-line examples for various tools and tasks. It offers a wide range of commands across multiple platforms and languages. howdoi, on the other hand, is a dynamic tool that fetches answers to programming questions from the internet in real-time. While tldr is more comprehensive for command-line tasks, howdoi is more flexible for general programming queries.
:mag: Google from the terminal
Pros of googler
- Offers more comprehensive search capabilities, including news and image search
- Provides a terminal-based interface for Google search, maintaining privacy
- Supports multiple output formats (JSON, CSV) for easy integration with other tools
Cons of googler
- Focused solely on Google search, while howdoi is specifically for programming questions
- May require more setup and configuration compared to howdoi's simpler approach
- Less targeted towards quick coding answers, which is howdoi's primary purpose
Code comparison
howdoi:
def get_answer(query):
url = get_google_url(query)
result = requests.get(url).text
links = get_links(result)
return get_answer_from_links(links)
googler:
def google_search(query, num_results):
url = build_google_url(query, num_results)
response = requests.get(url, headers=HEADERS)
return parse_results(response.text)
Both projects use similar approaches for querying Google and parsing results, but googler offers more flexibility in search options and result handling.
A very fast implementation of tldr in Rust.
Pros of tealdeer
- Written in Rust, offering better performance and memory safety
- Supports offline caching of pages for faster access
- Allows customization of color schemes and page rendering
Cons of tealdeer
- Limited to command-line usage, lacking web interface or IDE integration
- Smaller community and fewer contributors compared to howdoi
Code Comparison
tealdeer:
let config = Config::load()?;
let cache = Cache::new(config.cache_dir())?;
let page = cache.get_page(&query)?;
println!("{}", page.render(&config));
howdoi:
def get_answer(args, position):
links = get_links(args['query'])
link = get_link_at_pos(links, position)
page = get_text(link)
answer = get_answer_from_page(page)
return answer
Summary
tealdeer focuses on providing fast, offline access to command-line cheatsheets, while howdoi aims to answer programming questions from various online sources. tealdeer offers better performance and customization options, but howdoi provides a broader range of information sources and integration possibilities.
🖥 📊 🕹 🛠 A curated list of command line apps
Pros of awesome-cli-apps
- Comprehensive collection of CLI apps across various categories
- Regularly updated with new additions and community contributions
- Serves as a valuable resource for discovering new CLI tools
Cons of awesome-cli-apps
- Not a standalone tool, but rather a curated list of other tools
- Requires manual exploration to find specific solutions
- May include outdated or less maintained projects
Code comparison
Not applicable, as awesome-cli-apps is a curated list and doesn't contain executable code. howdoi, on the other hand, is a functional CLI tool. Here's a sample usage of howdoi:
$ howdoi format date bash
DATE=`date +%Y-%m-%d`
echo $DATE
Summary
awesome-cli-apps is a comprehensive resource for discovering CLI tools, while howdoi is a specific tool for getting quick answers to programming questions. awesome-cli-apps offers a broader scope but requires more manual exploration, whereas howdoi provides immediate, targeted assistance for coding queries. The choice between them depends on whether you're looking for a variety of CLI tools or seeking quick solutions to programming problems.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
howdoi
Instant coding answers via the command line
â¡ Never open your browser to look for help again â¡
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
Installation
pip install howdoi
or
brew 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'
Integrations
- Slack integration available through slack-howdoi
- Telegram integration available through howdoi-telegram
- Discord integration available through discord-howdoi
- Emacs integration available through emacs-howdoi
- VSCode integration available on the marketplace
- Alfred integration available through alfred-howdoi
Contributors
- Benjamin Gleitzman (@gleitz)
- Yanlam Ko (@YKo20010)
- Diana Arreola (@diarreola)
- Eyitayo Ogunbiyi (@tayoogunbiyi)
- Chris Nguyen (@chrisngyn)
- Shageldi Ovezov (@ovezovs)
- Mwiza Simbeye (@mwizasimbeye11)
- Shantanu Verma (@SaurusXI)
- Sheza Munir (@ShezaMunir)
- Jyoti Bisht (@joeyouss)
- And more!
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
- Works with Python 3.7 and newer. Unfortunately Python 2.7 support has been discontinued :(
- Special thanks to Rich Jones (@miserlou) for the idea
- More thanks to Ben Bronstein for the logo
Top Related Projects
Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
the only cheat sheet you need
📚 Collaborative cheatsheets for console commands
:mag: Google from the terminal
A very fast implementation of tldr in Rust.
🖥 📊 🕹 🛠 A curated list of command line apps
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot