WhoToAsk is free and MIT licensed. It runs on your machine, with or without a language model.
What it does
- Answers questions such as who to talk to about billing retries, with the reasons for each name and the match strength.
- Shows where knowledge has narrowed to one person.
- When nobody who knew is left, points back at the conversation where the problem was solved last time.
- Joins every source into one graph of people, teams, topics, and channels, so one human stays one node.
What this is not for
WhoToAsk describes where knowledge and systems are at risk. It never ranks, scores, or labels people, and its findings must not be used for performance reviews, layoffs, or any other employment decision. A person who shows up as the only one who knows something is a sign the team needs another person to know it.
Install
With Homebrew on macOS:
brew install --cask dcadolph/tap/whotoask
With a Go toolchain:
go install github.com/dcadolph/whotoask@latest
Or download an archive for Linux, macOS, or Windows from the releases page.
Verifying a release
checksums.txt carries a keyless Sigstore signature made by this repository's release workflow, and every archive carries SLSA build provenance. Check a download before you run it:
id='^https://github.com/dcadolph/whotoask/\.github/workflows/release\.yml@refs/tags/v'
cosign verify-blob checksums.txt \
--signature checksums.txt.sig \
--certificate checksums.txt.pem \
--certificate-identity-regexp "$id" \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
sha256sum -c checksums.txt --ignore-missing
gh attestation verify whotoask_<version>_linux_amd64.tar.gz --repo dcadolph/whotoask
On macOS without GNU coreutils, use shasum -a 256 -c checksums.txt --ignore-missing for the second line.
Quickstart
Start with a repository you already have. WhoToAsk reads its git history and opens on the directories the work rests on, and which of them rest on one person. Nothing is fetched and no credentials are needed.
whotoask demo --repo .
Then index something real and ask:
whotoask index --source org-csv --file examples/people.csv
whotoask ask --pretty "who do I talk to about billing retries"
When the person who knew has left, ask what happened with recall:
whotoask recall "certificate renewal"
whotoask connect walks through the rest of your tools one at a time.
Sources
WhoToAsk reads these sources: org chart CSV, time-entry or matter CSV, CODEOWNERS, git, Slack, a Slack workspace export, GitHub, Jira, Confluence, PagerDuty, Microsoft Graph, and JSON records. Indexing talks only to the sources you name, with your own tokens.
Runs on your machine
Keyword answers need no model and always work. Semantic search and written answers run on a local Ollama model, or on Claude, Gemini, or OpenAI once you opt in. The default policy is strict, so answers are computed locally and nothing goes to any model beyond your machine.