whodar

command module
v0.1.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2026 License: AGPL-3.0 Imports: 3 Imported by: 0

README

whodar - know who knows

whodar

CI Latest release License

Someone at your company already knows the answer. whodar tells you who. Point it at the tools your org already uses, ask in plain words, and get the people to talk to and the channels to ask in, each with the reason and confidence behind it. Local by default, with or without an LLM.

See it

Ask from the terminal and get people, channels, reasons, and confidence:

whodar in the terminal

Or serve the local web UI, where every result carries a confidence badge and feedback buttons, a query lives in the URL so answers are shareable, and clicking a person shows everything whodar knows about them:

whodar web UI

Install

brew install dcadolph/whodar/whodar

Or go install github.com/dcadolph/whodar@latest, or grab a prebuilt binary from the releases page.

Quickstart

No data yet? Explore a simulated company across all eight sources, no credentials needed:

whodar demo

Then index something real:

whodar index --source org-csv --file examples/people.csv
whodar ask --pretty "who do I talk to about billing retries"

Then merge in the rest of your tools, one source at a time: slack, github, jira, confluence, pagerduty, git, and codeowners. Run whodar index --help or see docs/REFERENCE.md for every source, flag, and credential.

How it works

Piece What it does
Sources Eight pluggable connectors feed one graph of people, teams, topics, and channels. Adding a source is one small interface.
Identity One human stays one node: sources join by email, and an alias file joins handle-only identifiers like a GitHub login.
Ranking Recent activity counts more, every answer carries a confidence, and results explain which words hit where.
Feedback Confirm or correct a result and future rankings move, without burying the evidence.
Modes Keyword needs no model and always works; semantic and LLM answers run on local Ollama, or on Claude and OpenAI behind explicit opt-in.
Frontends The CLI, web UI, and Slack bot share one engine.

Data governance

Indexed work data is sensitive, so whodar enforces where it can go. The default policy is strict: nothing leaves the machine, and every external call passes one policy checkpoint. Cloud models (Claude, OpenAI, or any compatible server) exist behind explicit opt-in, and the redacted policy sends them only anonymized numbered candidates, never names or emails. An organization can pin the policy with a locked config that user flags cannot override.

Docs

License

Licensed under the GNU Affero General Public License v3.0. See LICENSE. Copyright 2026 dcadolph.

Documentation

Overview

Command whodar locates the right person or channel for a question.

It indexes people, teams, and topics from work sources, then answers "who do I talk to about X" in plain language. Two engines back it: a non-LLM keyword ranker and an optional local LLM. Indexed data stays on the machine unless an explicit egress policy permits otherwise.

Directories

Path Synopsis
Package cmd implements the whodar command-line interface.
Package cmd implements the whodar command-line interface.
internal
bot
Package bot answers whodar questions from Slack.
Package bot answers whodar questions from Slack.
confluence
Package confluence is a minimal Confluence Cloud client scoped to what whodar ingests: pages and the people who wrote them.
Package confluence is a minimal Confluence Cloud client scoped to what whodar ingests: pages and the people who wrote them.
connector
Package connector pulls raw records from work sources and normalizes them into records the indexer merges into the expertise graph.
Package connector pulls raw records from work sources and normalizes them into records the indexer merges into the expertise graph.
feedback
Package feedback stores user votes on answers so confirmed answers rise and corrected ones sink in future rankings.
Package feedback stores user votes on answers so confirmed answers rise and corrected ones sink in future rankings.
github
Package github is a minimal GitHub REST client scoped to what whodar ingests: repositories, contributors, pull requests, CODEOWNERS, and users.
Package github is a minimal GitHub REST client scoped to what whodar ingests: repositories, contributors, pull requests, CODEOWNERS, and users.
identity
Package identity resolves the many identifiers a person accumulates across sources (email, GitHub login, Jira account id) to one canonical identifier, so one human stays one node in the graph.
Package identity resolves the many identifiers a person accumulates across sources (email, GitHub login, Jira account id) to one canonical identifier, so one human stays one node in the graph.
index
Package index builds an on-disk, searchable map of expertise from connector records and ranks people and channels for a query without an LLM.
Package index builds an on-disk, searchable map of expertise from connector records and ranks people and channels for a query without an LLM.
jira
Package jira is a minimal Jira Cloud client scoped to what whodar ingests: issues and the people on them.
Package jira is a minimal Jira Cloud client scoped to what whodar ingests: issues and the people on them.
llm
Package llm provides local large language model clients.
Package llm provides local large language model clients.
model
Package model defines the normalized expertise graph: the people, teams, orgs, and topics that whodar indexes and ranks.
Package model defines the normalized expertise graph: the people, teams, orgs, and topics that whodar indexes and ranks.
pagerduty
Package pagerduty is a minimal PagerDuty client scoped to what whodar ingests: services and who is on call for them.
Package pagerduty is a minimal PagerDuty client scoped to what whodar ingests: services and who is on call for them.
policy
Package policy enforces data egress decisions.
Package policy enforces data egress decisions.
resolve
Package resolve answers queries against an index through swappable resolvers.
Package resolve answers queries against an index through swappable resolvers.
simorg
Package simorg simulates a small company across every source whodar reads, serving each tool's wire format from in-process HTTP servers.
Package simorg simulates a small company across every source whodar reads, serving each tool's wire format from in-process HTTP servers.
slack
Package slack is a minimal Slack Web API client scoped to what whodar needs to ingest: workspace users, channels, and message history.
Package slack is a minimal Slack Web API client scoped to what whodar needs to ingest: workspace users, channels, and message history.
web
Package web serves the whodar web UI: a search page and a JSON ask API over the same engine the CLI uses.
Package web serves the whodar web UI: a search page and a JSON ask API over the same engine the CLI uses.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL