輸入關鍵字搜尋已發布文件。
devhunt
快速開始
安裝 DevHunt CLI,用合成資料在本機跑通 report 和 narrate(不需要 token),然後進行第一次已授權的 scan。
原始碼取得與先決條件
從公開儲存庫取得下方已複審的固定版本。這個版本移除了原始碼樹中的使用者產生資料,修正了 CLI 說明並補充了保留規則。請用新的原始碼目錄來執行合成範例。
git clone https://github.com/Golenspade/devhunt.git
cd devhunt
git checkout --detach 0d97c50756cb74ebf868946e181d48835e09e3bf你需要 Bun 和 GitHub CLI(gh)。下面的本機報告與提示詞流程已在 2026-09-06 用 Bun 1.3.14 驗證過,不需要 GitHub token 或模型 API key。之後執行 scan 時才需要 GitHub CLI 和身分驗證。
在原始碼根目錄安裝
bun --version
gh --version
bun install --frozen-lockfile
bun ./bin/devhunt.ts最後一條刻意省略了子命令——它會顯示用法然後以 1 結束。這是目前 CLI 的說明行為,不是安裝出了問題。真正的入口是 bin/devhunt.ts;舊說明裡提到的根目錄 dev.sh 和 build.sh 已經不存在了。保留鎖定檔,從儲存庫根目錄執行,這樣查詢檔案和輸出路徑才能正確解析。
用合成資料取得第一次結果
在原始碼根目錄建立 fixture.ts,寫入以下內容。它會在 out/docs-demo/raw/ 裡建立一個虛構儲存庫和一個虛構 Pull Request——這不是對真實個人的掃描。用新的原始碼目錄,避免覆寫既有的 out/docs-demo/。
import { mkdir, writeFile } from 'node:fs/promises';
const raw = 'out/docs-demo/raw';
await mkdir(raw, { recursive: true });
const repo = {
name: 'example-project', owner: { login: 'docs-demo' },
isFork: false, isArchived: false,
primaryLanguage: { name: 'TypeScript' },
stargazerCount: 10, forkCount: 0,
createdAt: '2024-01-01T00:00:00Z', pushedAt: '2024-01-03T00:00:00Z',
languages: { edges: [{ size: 1000, node: { name: 'TypeScript' } }] },
};
const pr = {
createdAt: '2024-01-02T08:00:00Z', mergedAt: '2024-01-03T08:00:00Z',
closedAt: '2024-01-03T08:00:00Z', isCrossRepository: true,
additions: 10, deletions: 2, changedFiles: 1,
repository: { name: 'example-upstream', owner: { login: 'example-owner' } },
url: '', // Synthetic record: no public evidence URL.
};
await writeFile(`${raw}/repos.jsonl`, JSON.stringify(repo) + '\n');
await writeFile(`${raw}/prs.jsonl`, JSON.stringify(pr) + '\n');
await writeFile(`${raw}/commits.jsonl`, '');
console.log('Synthetic fixture ready: out/docs-demo/raw');在 POSIX shell 中依序執行範例、報告和提示詞命令:
bun fixture.ts
bun ./bin/devhunt.ts report docs-demo --tz +00:00
OPENAI_API_KEY= bun ./bin/devhunt.ts narrate docs-demo --lang en --style brief明確把 OPENAI_API_KEY 設為空值,就算 .env 裡有 key,這次也會走本機提示詞路徑。空值是刻意的。完成後看看這些檔案:
out/docs-demo/profile.json— 從合成輸入產生的可解析 JSON。out/docs-demo/top_repos.json— 一筆代表儲存庫記錄。out/docs-demo/charts/languages.svg— 語言分布圖。out/docs-demo/charts/hours.svg— PR 建立時段圖。out/docs-demo/narrate_prompt.txt— system 和 user 提示詞,不是 provider 產生的導讀。
範例刻意沒有使用者中繼資料和 commit,部分指標為空或樣本不足是正常的,不能用來判斷任何人的能力或習慣。這次驗證涵蓋了本機分析、SVG 輸出和提示詞產生,沒有驗證 GitHub 掃描或真實模型回應。
繼續進行已授權的掃描
先選好 login,看看你的 GitHub 憑證能存取什麼範圍。透過環境變數或 GitHub CLI 設定身分驗證,不要把 token 直接貼進命令引數裡。GITHUB_TOKEN 和 GH_TOKEN 都可能影響實際使用的憑證。第一次掃描時保留互動確認。
bun ./bin/devhunt.ts scan LOGIN --window quarter
bun ./bin/devhunt.ts report LOGIN --tz Asia/Shanghai
OPENAI_API_KEY= bun ./bin/devhunt.ts narrate LOGIN --lang zh --style professional三條命令裡的 LOGIN 換成同一個真實使用者名稱。quarter 限制的是 commit 時間範圍,不會讓所有查詢都變成僅公開資料,也不保證每項指標使用相同範圍。複製提示詞之前先檢查 raw 和衍生檔案。更多細節見 CLI 參考、AI 導讀和資料處理。
掃描遵循權杖可見權限,沒有僅公開的可見性篩選。請使用最小權限權杖,把輸出當作本機敏感資料對待。