Ship a signed Desktop Tools app for agents outside Ace
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 15/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- github-actions, swift, typescript
調査の方向性
Start with src/app.ts and the existing runtime start call, then read Ace's apps/desktop/src/native.ts and apps/desktop/scripts/sign.ts for the signing order. The work spans a new menu bar app target, the MCP defaults in desktop-tools-mcp, and .github/workflows/release.yml, and it needs Apple signing secrets from an admin. Done means a signed, notarized build that passes codesign --verify --deep --strict and spctl --assess, plus a working MCP setup in Claude Code and Codex.
索引モデルが issue の本文から書いたものです。
説明
Agents outside Ace (Claude Code, Codex) can use desktop tools today only by borrowing Ace's grants through its client and socket (#24, stretch notes on #12). A standalone signed host app gives them their own visible, revocable grants and leaves Ace's alone.
This reverses the README's "a vendor-signed companion is not part of this package"; the README changes with it.
Shape
App: Desktop Tools.app, bundle ID dev.githubnext.desktop-tools, team 8S43JJMN6B.
- It's a menu bar app (
LSUIElement) whose process loads the runtime (libDesktopTools.dylib) and callsdesktop_tools_start(socket, "dev.githubnext.desktop-tools.desktop-client"), exactly like Ace (aceapps/desktop/src/native.ts). - The client ships as
Contents/MacOS/desktop-tools-client, signed with identifierdev.githubnext.desktop-tools.desktop-client. - Socket:
~/.local/state/desktop-tools/desktop.sock(0600). Client link:~/.local/state/desktop-tools/desktop-client.
The menu shows:
- Accessibility, Screen Recording and Keyboard input status, with grant buttons (
desktop_tools_permission). - Serving on or off; off stops the runtime.
- The last action and its caller (the client's parent process name), so outside use is visible. This is the minimum answer to #24 for this app.
- Quit.
MCP: desktop-tools-mcp (#12) defaults --client and --socket to the app's state dir and --name to "Desktop Tools". Setup becomes:
claude mcp add desktop -- npx -y github:githubnext/desktop-tools desktop-tools-mcp- or the Codex
mcp_serversequivalent.
The tool definitions move into the package so Ace and MCP share one source.
Build and release:
src/app.ts: build the runtime, assemble the bundle, and sign inside-out with the hardened runtime. Copy Ace'sapps/desktop/scripts/sign.tsorder: Frameworks, client (identifier, no entitlements), executable, app; thencodesign --verify --deep --strict..github/workflows/release.ymlonworkflow_dispatch, environmentrelease:- temporary keychain from the p12;
- notarize the zip and DMG with
xcrun notarytooland an App Store Connect API key; - staple;
spctl --assess;- attach to a GitHub Release.
- No auto-update in v1 (no Sparkle); a release is downloaded by hand.
Secrets: to be added by an admin to environment release, same values as Ace's desktop-* environments.
- Secrets:
DT_CERTIFICATE_P12,DT_CERTIFICATE_PASSWORD,DT_NOTARY_PRIVATE_KEY. - Variables:
DT_CODESIGN_IDENTITY,DT_NOTARY_KEY_ID,DT_NOTARY_ISSUER.
Order
- App target and local signed build (local Developer ID identity), then a live MCP run with Claude Code and Codex.
- Release workflow and notarization.
- Land #12 rebased, with defaults and shared tool definitions.
- README, and a link from Ace's docs.
- 主要言語
- Swift
- スター
- 0
- フォーク
- 0
- 平均マージ
- 31分
- マージ済み PR(30日)
- 14
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
githubnext/desktop-tools のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
githubnext/desktop-tools#25 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 42/100
githubnext/desktop-tools#30 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 8/100
githubnext/desktop-tools#24 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
githubnext/desktop-tools#23 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
githubnext/desktop-tools#18 ·
メンテナーはふだん 1 日以内に返信
githubnext/desktop-tools の issue をすべて見る
似ている issue
-
type: cleanup
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
googleapis/google-cloud-swift#1477 ·
メンテナーはふだん 1 日以内に返信
-
product / auth product / console product / databases product / messaging product / self-hosted product / sites product / storage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
P1 status: first-line-handled status: needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
a2ui-project/a2ui#3282 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
binding:web core docs p3
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
RunanywhereAI/runanywhere-sdks#1123 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
Countly/countly-sdk-ios#485 ·
メンテナーはふだん 1 日以内に返信