Command line
Ask from your terminal and pipe JSON into anything. whodar ask "who owns deploys"
Point it at the tools your team already uses. Ask in plain words. Out of the noise of the whole org, it locates the people to talk to and the channels to ask in, each with the reason and the confidence behind it.
No setup required: whodar demo
Ask a plain question, get ranked people and channels with reasons and a confidence, in the browser and in your terminal.
In the web app: type a question, get ranked people and channels, browse your whole org, share any answer by link.
Or from your terminal: the same ranked answer, as JSON you can pipe anywhere.
{
"people": [
{ "name": "Angela Malone", "team": "Payments", "confidence": 0.98,
"reasons": ["billing (topic)", "retries (topic)"] },
{ "name": "Oscar Scott", "team": "Payments", "confidence": 0.62,
"reasons": ["billing (topic)"] },
{ "name": "Kevin Novak", "team": "Payments", "confidence": 0.31,
"reasons": ["retries (mention)"] }
],
"channels": [{ "name": "payments", "confidence": 0.95 }]
}
The CLI, the web app, the Slack command, and an MCP server for coding agents all share one index and one ranking engine. Add whodar wherever your team asks questions.
Ask from your terminal and pipe JSON into anything. whodar ask "who owns deploys"
A local UI that browses your whole org: people, channels, teams, and topics, every answer shareable by link.
ShippingYour team asks without leaving Slack. /whodar who knows kafka and the answer lands in the channel.
An MCP server so Claude Code and Claude Desktop can ask whodar mid-task. claude mcp add whodar
Each connector reads a tool you already use and feeds one graph of people, teams, topics, and channels. One human stays one entry: sources join by email, and an alias file joins handle-only logins.
One connector per source, added one at a time. Recent activity counts for more; stale data fades.
Repetition saturates while an explicit topic, title, or ownership signal stays strong. Every answer carries a confidence, and typos still find the owner.
Results explain which words hit where. Confirm or correct an answer and future rankings move, without burying the evidence.
Indexed work data is sensitive, so whodar controls what a model can see. The default is strict: answers are computed locally and nothing is sent anywhere.
Keyword always works with nothing installed. Meaning and AI are layers you add, never a dependency.
Exact word match with typo tolerance. Deterministic, instant, and always available.
Needs nothingMatches by meaning, so "failed payments" finds the person tagged "billing retries" with no shared word.
Local embeddings via OllamaA model re-ranks the candidates and writes a recommendation. Pick local Ollama, Claude, Gemini, or ChatGPT.
Local or cloud, your choiceOne binary holds every surface. Pick one below for the exact steps.
whodar is a single binary. The CLI, the local web app, the Slack bot, and the MCP server all live inside it. There is no separate desktop app to install: you run it, and it serves the web UI in your browser.
# macOS / Linux — Homebrew
brew install dcadolph/whodar/whodar
# any platform with Go
go install github.com/dcadolph/whodar@latest
Ask from your terminal. Answers are JSON on stdout, so you can pipe them into anything.
# try it with no setup
whodar demo
# index a repo you already have, then ask
whodar index --source git --repo-path .
whodar ask "who knows the billing code"
A local web app that browses your whole org and makes every answer shareable by link. It binds to localhost by default.
whodar serve
# open http://127.0.0.1:8765
Serving beyond localhost requires a token (WHODAR_SERVE_TOKEN) on every request. Deploy guide →
Your team asks with /whodar or by mentioning the bot, and the answer lands in the channel. Socket Mode needs no public URL.
# bot + app tokens from your Slack app
export WHODAR_SLACK_TOKEN=xoxb-...
export WHODAR_SLACK_APP_TOKEN=xapp-...
whodar bot --transport socket
Create the /whodar slash command and add the read scopes in your Slack app config. Full Slack setup →
Let Claude Code and Claude Desktop query whodar mid-conversation.
# Claude Code
claude mcp add whodar -- whodar mcp
# Claude Desktop: add under mcpServers in the config
{"whodar": {"command": "whodar", "args": ["mcp"]}}
The answer is already inside the tools you use every day. whodar just points at the person.