taken

io.github.RogueAlg0由 GitHub 帳號 RogueAlg0 發布v0.9.2更新於 Oct 24, 2026

Check if a GitHub issue is taken before volunteering for it.

概覽

AI 產生的概覽

在開始動手前檢查某個 GitHub issue 是否已被認領,給出 GO、TAKEN 或 CAUTION 結論並附上證據。

可以做什麼
  • 檢查單一 issue 是否已有關聯 PR、指派對象、認領留言、AI 貢獻政策以及儲存庫是否活躍,並給出 GO、TAKEN 或 CAUTION 結論與依據
  • 掃描某個儲存庫的開放 issue,可依標籤與數量上限篩選,並逐一給出結論
  • 在 GitHub 上搜尋貢獻候選,逐一核實後只保留 GO 結果,並依維護者回應速度排序
  • 長時間掃描時回報進度,並在機器可讀結果中附上 truncated、considered、returned 等完整性資訊
適用情境
適合在助理協助挑選開源任務時,先確認 issue 仍無人認領、儲存庫也夠活躍,再開始寫程式或送出 PR。也適合批次掃描某個儲存庫的新手友善 issue,或尋找可參與的貢獻機會。
執行需求
以本機 Python 套件形式執行,需要 Python 3.10 或更新版本,可透過 uvx 啟動或以 uv tool、pipx 安裝。需要安裝並已登入的 GitHub CLI(gh),所有 API 呼叫都經由該登入。需要連線至 GitHub 的網路;未宣告任何權杖或環境變數。
安裝前請注意
只做唯讀呼叫,伺服器聲明不會寫入 GitHub 任何內容,但結論基於啟發式判斷:認領者偵測只是掃描留言文字,並非確證,結果被截斷時可能不完整。它依賴你自己的 gh 登入,因此助理會以你的 GitHub 身分與額度行事。API 回應會在本機快取一小時。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 taken,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

taken?

[PyPI] [npm] [CI] [OpenSSF Scorecard] [OpenSSF Best Practices] [SonarCloud Quality Gate] [License: MIT] [Python] [MCP Registry]

taken? answers one question before you volunteer for a GitHub issue: is it already taken?

In plain terms, it checks an issue before you start work: is it still open to contributions, is anyone already on it, and is the repo responsive enough that your PR will get reviewed.

Try it without installing anything: the live console runs the real checks in your browser.

The catch it was built for: GitHub shows "linked a pull request" events in the issue timeline, but never in the comments. You can read every comment on an issue and still miss that someone already opened a PR for it. taken? checks the timeline, scans comments for people claiming the work, looks at assignees, reads CONTRIBUTING.md for AI contribution policies, and checks whether the repo is still active. Then it gives a verdict, GO, TAKEN, or CAUTION, with the evidence cited.

Requirements

  • Python 3.10 or newer
  • The GitHub CLI (gh), authenticated

taken? only makes read-only API calls through your own gh login. It never sees or stores tokens, and it never writes anything to GitHub.

Install

uv tool install taken-gh

Or with pipx:

pipx install taken-gh

Then:

taken owner/repo#123

A full issue URL works too:

taken https://github.com/owner/repo/issues/123

The verdict

TAKEN wins over CAUTION, which wins over GO.

  • TAKEN: the issue is closed, an open PR links to it, or someone is assigned.
  • CAUTION: a comment says someone wants it (soft claim, they may have moved on), a linked PR was merged but the issue is still open, the repo has an AI policy to respect, the repo looks inactive, or a beginner-friendly label sits alongside a long discussion thread or a design-level label (worth skimming before you start).
  • GO: none of the above.

The claimant scan is a heuristic over comment text, not proof. The verdict always prints its evidence so you can judge for yourself.

Exit codes: 0 means GO, 1 means TAKEN, 2 means CAUTION, 3 means something broke (bad target or flag, no gh, API error).

A pull request number is an invalid issue target: it returns an error (exit 3 in the CLI), without a contribution verdict.

Examples

An issue with a PR already fixing it:

$ taken Exodus-Privacy/exodus#300taken? Exodus-Privacy/exodus#300verdict: TAKEN  ...  why:    - open PR #700 already covers this: https://github.com/Exodus-Privacy/exodus/pull/700

An issue someone is already assigned to:

$ taken chahe-dridi/vscode-agent-bell#200taken? chahe-dridi/vscode-agent-bell#200verdict: TAKEN  ...  why:    - assigned to: dk5488

A clean issue, with your own volunteering comment filtered out:

$ taken snowflakedb/snowflake-cli#3145 --me RogueAlg0taken? snowflakedb/snowflake-cli#3145verdict: GO  ...  why:    - no linked PRs, no assignees, no claimants, repo is active

Useful flags

  • --json: print the full findings as JSON instead of the human summary
  • --me LOGIN: ignore your own comments when scanning for claimants
  • --no-cache: bypass the one-hour API response cache
  • --rest: force the REST fetch path (the default is GraphQL for logged-in users)
  • --health: maintainer report for one repo instead of a contributor verdict

taken --help lists everything.

Health reports warn when either the issue listing or the PR listing reaches its scan cap. With --health --json, truncated describes the issue listing and pr_scan_truncated describes the PR listing; stale PR counts may be incomplete when the latter is true.

Batch mode and repo scans

Give taken several targets and it prints one verdict line per target:

taken owner/repo#123 owner/repo#124 --me myloginTAKEN   owner/repo#123  assigned to: dk5488GO      owner/repo#124  no linked PRs, no assignees, no claimants, repo is active

A bare owner/repo scans the repo automatically: its open issues (most recently updated first, PRs excluded) are each checked:

taken django/django --label "good first issue" --limit 10

API responses are cached for one hour in ~/.cache/taken (override with TAKEN_CACHE_DIR), so repeated scans stay cheap.

The opt-in REST transport (TAKEN_TRANSPORT=httpx) preserves both JSON objects and arrays, including empty listings. Response ETags are cached alongside either shape: after expiry, a 304 Not Modified reuses the cached body and refreshes its TTL. The default subprocess transport is unchanged.

Discover mode

taken --discover finds contribution candidates across GitHub: it takes raw candidates from GitHub's issue search, runs taken's full verification on each one, and ranks the survivors. Only GO verdicts make the list, scored on the signal no aggregator filters on: maintainer responsiveness.

taken --discover --language python --min-contributors 3 --limit 10  6  octocat/hello-world#42  maintainer replied; updated 1d ago; repo pushed 0d ago  4  octocat/other-repo#7    updated 3d ago; repo pushed 2d ago

Each line explains its own score. Candidates are verified in parallel (8 workers by default; --jobs N tunes it).

MCP server

taken also ships as an MCP server, so coding agents can check issues with a tool call instead of shelling out to the CLI. Same setup: gh installed and authenticated, read-only API calls through your own login.

uvx --from "taken-gh[mcp]" taken-mcp

Three tools: check_issue, scan_repo, discover_candidates. Published in the official MCP Registry as io.github.RogueAlg0/taken.

Clients that request MCP progress receive updates while scan_repo checks issues and discover_candidates verifies candidates. The updates use the current request's progress channel; clients that do not request progress keep the same results. Discovery can finish before its total is reached when the best results are already decided.

Result completeness for machine callers

MCP scan_repo and discover_candidates responses include truncated, considered and returned, even for empty results. Discovery also reports verified, the number of candidates submitted for verification. truncated means results may be incomplete because a listing/search/pool cap was reached, ranking stopped early, the result limit excluded matches, or discovery had verification/search errors. A full API page is conservatively marked limited when exhaustion cannot be established without another request.

Counts describe observed work, not the total number of issues on GitHub. For MCP scans, considered counts issues in fetched listing pages (excluding PRs); for discovery it counts candidates admitted to the verification pool. returned counts rows in results.

CLI JSON migration: --discover --json and bare-repository scans with --json now return an object containing results and this metadata. Consumers of the former array should read payload["results"]. Repository batches also include scans, with per-repository listing counts and limits; their top-level considered counts check jobs. Batches containing only explicit issue targets keep their JSON array format. Human-readable output is unchanged. Discovery emits its JSON object even when no candidate is returned.

Development

uv sync          # install dev tools (ruff, pytest)uv run pytestuv run ruff checkuv run ruff format --check

AI assistance

This project is built with AI assistance, and says so openly. Every contribution is reviewed and understood by its author before it lands.

Security

See SECURITY.md for the supported versions and how to report a vulnerability. Please use private vulnerability reporting, not a public issue.

來源:README.md,提交 fdae61c

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

10
  1. v0.9.2最新Oct 14, 2026
  2. v0.9.1Oct 11, 2026
  3. v0.9.0Oct 10, 2026
  4. v0.8.0Oct 2, 2026
  5. v0.7.5Oct 1, 2026
  6. v0.7.4Oct 1, 2026
  7. v0.7.3Sep 28, 2026
  8. v0.7.2Sep 27, 2026
  9. v0.7.1Sep 26, 2026
  10. v0.7.0Sep 26, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分