Enter a keyword to search published documentation.
devhunt
CLI Reference
DevHunt's three commands—scan, report, narrate—with every flag verified against the fixed source.
scan
scan LOGIN collects token-visible GitHub inputs and writes them below out/LOGIN/raw/.
The GraphQL queries do not enforce public-only visibility. Results can include private or internal-visible data that the token is allowed to see.
| Flag | Effect |
|---|---|
--token VALUE | Supplies a GitHub token directly |
--window | Accepts quarter, half, year, 3y, or all |
--yes / -y | Skips interactive confirmation |
When --token is absent, the entry point checks GITHUB_TOKEN. The lower-level GitHub client can also fall back to GH_TOKEN.
report
report LOGIN reads the local raw directory and writes a derived profile, a top-repository file, and charts below out/LOGIN/.
--tz VALUE accepts an IANA-style zone or numeric offset for time-based summaries.
narrate
narrate LOGIN reads out/LOGIN/profile.json.
| Flag | Accepted values |
|---|---|
--lang | zh or en |
--style | professional, casual, or brief |
Parser behavior
The parser validates login length and path characters, checks enumerated window/language/style values against allowed lists, warns about repeated or unknown flags, and uses the last repeated value. These checks reduce malformed input. They do not make the resulting interpretation authoritative.
Entry point and failures
Run bun ./bin/devhunt.ts COMMAND LOGIN from the checkout root. bun devhunt also works—it resolves the package script in this repository. Neither form requires a globally installed binary. Running the entry point with no command prints usage and exits 1.
| Problem | What to check |
|---|---|
| Bun module or dependency missing | Run bun install --frozen-lockfile in the checkout root |
| GitHub CLI missing or authentication failure | Run gh --version and gh auth status; review environment-token precedence without printing tokens |
| No raw data warning | Confirm the same LOGIN and working directory. Missing JSONL files become empty arrays, so a completed report alone does not prove a meaningful scan happened |
| JSON parsing or chart output failure | Validate your local JSONL, check dependencies and write permissions, then rerun report. Partial outputs may already exist |
| Cannot read profile during narrate | Run report first and check out/LOGIN/profile.json |
--tz overrides the report's time calculations. A syntactically accepted zone is not proof of a correct inferred location. Invalid enumerated options cause a failure. Unknown flags only produce a warning, so read warnings carefully instead of assuming a typo was silently applied.