siGit CLI

si.sigit由 sigit.si 發布v1.3.0更新於 Oct 30, 2026

Run sigit.si locally: browse repos, search code, manage PRs, issues, and Cloud Sessions.

發布方自己的服務:siGit

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

本機 siGit CLI 伺服器,透過 stdio 讓 AI 助理操作 sigit.si 的儲存庫、拉取請求、議題、程式碼搜尋與 Cloud Sessions。

可以做什麼
  • 瀏覽與建立儲存庫,使用已登入的憑證複製,並將分支發布為網站
  • 列出、檢視與建立拉取請求,預設使用目前 checkout 的儲存庫與分支
  • 列出與建立議題,並在指定 ref 上搜尋或檢視程式碼
  • 設定與檢視提交狀態檢查
  • 啟動、列出與檢視 Cloud Sessions 及其紀錄
  • 檢視帳號、模型與帳務資訊,或直接呼叫原始 API 端點
適用情境
適合在 sigit.si 儲存庫中工作時使用,讓助理在終端機處理拉取請求、議題、程式碼搜尋與狀態檢查;在儲存庫 checkout 目錄內執行時,儲存庫會自動推斷。
執行需求
以本機程序執行,透過 cargo 安裝 sigit-si-cli 套件,並以 si mcp 經 stdio 啟動。需要已透過 si auth login 登入的 sigit.si 帳號,或提供 SIGIT_TOKEN 工作階段權杖(會覆寫已儲存的權杖)。可用 SIGIT_TOOLSETS 或 --toolsets 限制暴露的工具;SIGIT_HOST 或 --environment 可切換至非預設伺服器。
安裝前請注意
部分工具會寫入資料:建立儲存庫、拉取請求、議題、狀態與工作階段,以及發布網站。SIGIT_TOKEN 是工作階段憑證,不應放入共用設定。可用 --read-only 移除所有寫入類工具。儲存庫、議題與程式碼搜尋資料經由 sigit.si 的 MCP 端點提供,內容會傳送至該服務。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

sigit-si-cli

si is the command line interface for sigit.si — sign in, manage repositories, review pull requests, triage issues, search code, and drive Cloud Sessions, all from the terminal.

Install

sh
cargo install --path crates/cli

This installs a binary named si.

Usage

sh
si auth login                     # sign in with your sigit.si accountsi repo list                      # your repositoriessi repo create my-project --privatesi repo clone seto/my-project      # clone with your sign-in, no token in the URLsi auth setup-git                  # or let plain `git clone` use it too
# Inside a repo checkout, si infers OWNER/NAME from the sigit.si git remote —# --repo is only needed when you're not standing in one.si pr listsi pr view 42si pr create --title "Fix the thing" --base main
si issue list --state opensi issue create --title "Bug: ..." --body "Steps to reproduce..."
si code search "TODO" --ref mainsi code view README.md
si status set HEAD --state success --context ci/testsi status view                     # the checks on HEAD
si run start --repo seto/app "Fix the failing build"si run listsi run view 12                     # status and the end of the transcript
si site publish --wait             # publish the default branch as a sitesi site view
si session new --title "Refactor auth"si modelssi billing show
si auth signup                     # also: resend, reset-password, delete-account
si browse                          # open the current repo on sigit.sisi api repos                       # raw escape hatch for any endpoint

Pass --json to any read command for machine-readable output.

As an MCP server

si mcp serves these same commands to an AI agent as MCP tools over stdio:

jsonc
{  "mcpServers": {    "sigit": { "command": "si", "args": ["mcp"] }  }}

There is nothing to authenticate — the server reuses the token si auth login stored. Point your editor at the directory of a checkout and repository tools default to the repo you're standing in, so the agent can say "list the open pull requests" without naming one; create_pull_request likewise defaults its head to the checked-out branch.

Trim the tool list when an agent doesn't need all of it:

sh
si mcp --read-only                    # drop every tool that writessi mcp --toolsets repo,issue,pr,code  # or SIGIT_TOOLSETS=repo,issue

Toolsets are account, repo, issue, pr, code, hook, session, and billing. sigit.si also hosts a remote MCP server at /api/v1/mcp for clients that would rather connect over HTTP than spawn a binary.

Environments

sh
si --environment dev repo list          # a local sigit.si server (localhost:3000)SIGIT_HOST=staging.example.com si repo list

Credentials are stored per-environment in ~/.sigit/token (or ~/.sigit-dev/token). SIGIT_TOKEN overrides the stored token, which is how CI authenticates without an interactive login.

Workspace layout

  • crates/sigit-si-api — a standalone, typed Rust client for the sigit.si JSON API. No CLI dependencies (clap, dialoguer, …); usable from any Rust project that wants to talk to sigit.si.
  • crates/cli — the si binary: command parsing, terminal rendering, git remote resolution, and credential storage, built on top of sigit-si-api.

Issues, pull requests, and code search have no REST surface on sigit.si yet — they're served over the same MCP (Model Context Protocol) JSON-RPC endpoint the AI agent uses. sigit-si-api speaks that transport internally; it's not visible at the call site.

MCP Registry listings

This repo publishes two entries to the official MCP Registry, one per way of reaching the same tools, so registry-aware clients can add either in one click:

ListingFileWhat it is
si.sigit/cliserver.jsonThis CLI: a cargo package listing that runs si mcp over stdio.
si.sigit/sigitserver-sigit.jsonThe hosted server at sigit.si/api/v1/mcp, a remote Streamable-HTTP listing. The endpoint sigit-si-api talks to, and the official server siGit Code bakes in.

The CLI holds server.json because it's what this repo ships, and that's the filename mcp-publisher defaults to. Sibling listings are named after their own leaf, so the file says which entry it publishes.

Both go out through the release-mcp-registry.yml workflow, and both prove namespace ownership with a DNS TXT record on sigit.si rather than GitHub OIDC, so one credential covers the pair. A package listing has a second hurdle: the registry fetches the crate from crates.io and looks for the mcp-name: si.sigit/cli marker in its README, which is why that marker sits in this file. Crate versions are immutable, so a release that ships without the marker can never be listed, and fixing it costs a new version. The internal setup and release runbook live with the server (private sigit-si repo).

To cut a release, bump [workspace.package].version and the sigit-si-api dependency in the root Cargo.toml, merge development into main, and push a vX.Y.Z tag. release-crates.yml checks the crate versions against the tag, publishes whichever of sigit-si-api and sigit-si-cli isn't on crates.io yet (through Trusted Publishing, so no token is stored), then dispatches release-mcp-registry.yml.

Development

sh
make build   # cargo build --workspacemake test    # cargo test --workspacemake lint    # cargo clippy --workspace --all-targets -- -D warningsmake fmt     # cargo fmt --allmake check   # fmt + lint + test

Disclaimer

All em dashes are written by Seto Elkahfi.

License

Apache-2.0

來源:README.md,提交 a3ab1b3

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

2
  1. v1.3.0最新Oct 30, 2026
  2. v1.1.0Sep 16, 2026

評分

已滿足適用檢查項的 40%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Sigit 整合