# Install howdoi with Homebrew, dnf, MacPorts, apt

Instant coding answers via the command-line. Version 2.0.20 via Homebrew; verified 2026-06-03.

## Install

```sh
sudo av install brew:howdoi
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install howdoi
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install howdoi
```

  Evidence: MacPorts ports tree: devel/howdoi/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- dnf (92%):

```sh
sudo dnf install howdoi
```

  Evidence: Fedora Rawhide package metadata: howdoi from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Ubuntu apt (92%):

```sh
sudo apt install howdoi
```

  Evidence: Ubuntu 24.04 LTS package indexes: howdoi from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz

## Package facts

- **Package key:** brew:howdoi
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/howdoi>
- **Version:** 2.0.20
- **Source summary:** Instant coding answers via the command-line
- **Homepage:** <https://github.com/gleitz/howdoi>
- **Repository:** <https://github.com/gleitz/howdoi>
- **Upstream docs:** <https://github.com/gleitz/howdoi#readme>
- **License:** MIT
- **Source archive:** <https://files.pythonhosted.org/packages/6d/43/0e8166583575bd500c0f8f1a4ab9429af9466feb6fcdc006e88de8fd23e9/howdoi-2.0.20.tar.gz>
- **Last updated:** 2026-06-03T10:42:50Z
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- howdoi (cli)
- howdoi (alias)

## Dependencies

- certifi
- cryptography
- libsodium
- python@3.14

## Uses from macOS

- libxml2
- libxslt

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2.0.20
- Package-manager updated: 2026-06-03
- Local data: ok
- Upstream repository: https://github.com/gleitz/howdoi
- info: No cached GitHub release or tag data was available.
## Project history and usage

howdoi is a Python command-line tool that returns coding answers in the terminal. Its README pitches the tool as a way to avoid opening a browser for common programming questions, with examples that query Stack Overflow-style answers and print snippets directly.

### Project history

Benjamin Gleitzman created howdoi and credits Rich Jones for the idea in the project README and source header. The repository source header describes it as written by Gleitzman, and the README keeps the intentionally terse premise: instant coding answers via the command line.

The project started as a small search-and-scrape utility and evolved into a more featureful CLI. The changelog records PyPI packaging, Python 3 support, multiple answers, color output, caching, alternate search engines, JSON output, saved answers, environment-variable configuration, and later changes caused by search-engine and Stack Overflow markup shifts.

### Adoption history

PyPI records the first packaged 0.1.1 upload in November 2012, and Homebrew packages `howdoi` from the PyPI source archive. The package metadata in this batch also records distro packaging through DNF, MacPorts, and Ubuntu, which is unusually broad for a novelty-adjacent developer helper.

The README lists integrations for Slack, Telegram, Discord, Emacs, VSCode, and Alfred. Those integrations show that howdoi's basic idea escaped the original terminal command and became a reusable pattern for asking programming-reference questions from developer surfaces.

### How it is used

The core usage is `howdoi QUERY`, with options for selecting result position, returning multiple answers, printing full text, colorizing output, showing only links, choosing a search engine, using JSON output, and saving or viewing stashed answers.

Environment variables such as `HOWDOI_COLORIZE`, `HOWDOI_SEARCH_ENGINE`, and `HOWDOI_URL` let users change default behavior or point searches at other Stack Exchange sites.

### Why package nerds care

howdoi is package-nerd catnip because it captures an early-2010s developer workflow in one tiny command: ask the web a coding question, scrape the likely answer, and stay in the shell. It is fragile by design because it depends on search results and answer-page markup, and the changelog reads like a history of keeping that trick alive.

It also helped popularize a genre of terminal knowledge tools that wrap public Q&A sites, then rely on package managers to make the joke useful enough to install everywhere.

### Timeline

- 2012: PyPI records the 0.1.1 package upload.
- 2013: The 1.0 changelog marks Python 3 support and Production/Stable project status.
- 2.0.1: The changelog adds JSON output and stashed answers.
- 2.0.8: The changelog records the move from Travis to GitHub Actions and dropping Python 2.7 support.
- 2022: PyPI records the 2.0.20 release, whose changelog adds Python 3.10 support.

### Related projects

- Stack Overflow and other Stack Exchange sites are the knowledge sources targeted by the documented query examples and `HOWDOI_URL` setting.
- keep inspired the answer-stashing feature documented in the howdoi README and changelog.
- slack-howdoi, howdoi-telegram, discord-howdoi, emacs-howdoi, VSCode howdoi, and alfred-howdoi are listed by the project as integrations.

### Sources

- <https://formulae.brew.sh/formula/howdoi>
- <https://github.com/gleitz/howdoi>
- <https://github.com/gleitz/howdoi/blob/master/CHANGES.txt>
- <https://github.com/gleitz/howdoi/blob/master/howdoi/howdoi.py>
- <https://pypi.org/project/howdoi/>
- <https://pypi.org/pypi/howdoi/json>


## Security Notes

No matching local secret-handling manifest was found for howdoi. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** howdoi
- **Version Scheme:** 0
- **Revision:** 22
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Ubuntu apt - howdoi - 1.1.9-1.1: normalized package name match | Ubuntu 24.04 LTS package indexes: howdoi from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | command line tool for instant coding answers | https://github.com/gleitz/howdoi
- dnf - howdoi - 2.0.20-16.fc45: normalized package name match | Fedora Rawhide package metadata: howdoi from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Instant coding answers via the command line | https://github.com/gleitz/howdoi
- MacPorts - howdoi: normalized package name match | MacPorts ports tree: devel/howdoi/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [abi3audit](https://www.automicvault.com/pkg/brew/abi3audit/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [auditwheel](https://www.automicvault.com/pkg/brew/auditwheel/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [austin](https://www.automicvault.com/pkg/brew/austin/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [autopep8](https://www.automicvault.com/pkg/brew/autopep8/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [basedpyright](https://www.automicvault.com/pkg/brew/basedpyright/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [black](https://www.automicvault.com/pkg/brew/black/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [bpython](https://www.automicvault.com/pkg/brew/bpython/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [breezy](https://www.automicvault.com/pkg/brew/breezy/) - Shares av.db curated category or tags: cli, developer-tools, python.
- [euler-py](https://www.automicvault.com/pkg/brew/euler-py/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, command-line, developer, developer-tools, line.
- [langgraph-cli](https://www.automicvault.com/pkg/brew/langgraph-cli/) - Both packages touch the same language runtime or ecosystem. Shared terms: certifi, cli, command-line, developer, developer-tools.
- [mistral-vibe](https://www.automicvault.com/pkg/brew/mistral-vibe/) - Both packages touch the same language runtime or ecosystem. Shared terms: certifi, cli, coding, cryptography, developer.

## Combined YAML source

View the package source record on GitHub. [combined/howdoi.yml](https://github.com/automic-vault/db/blob/main/combined/howdoi.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
