Ship a signed Desktop Tools app for agents outside Ace
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 15/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- github-actions, swift, typescript
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Swift
- Sterne
- 0
- Forks
- 0
- Ø Merge
- 42 Min.
- Gemergte PRs (30 T.)
- 123
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus githubnext/desktop-tools
-
ace documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
githubnext/desktop-tools#104 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
githubnext/desktop-tools#159 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
githubnext/desktop-tools#143 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
githubnext/desktop-tools#129 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 8/100
githubnext/desktop-tools#5 · 11 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in githubnext/desktop-tools
Ähnliche Issues
-
area/kotlin
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
-
cable-report
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
darrylmorley/whatcable#656 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
omlahore/RemoveMacAI#67 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
521xueweihan/HelloGitHub#4049 ·
-
[quality] macOSScreenshotLocation(): configured-location branch (ScreenshotFiles.swift:30) never executes under swift testEvtl. vergeben @arteeh hat das heute übernommen. Offenagent/quality agent/reviewer help wanted kind/test stage/040-covered-by-pr testing
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
hivecommons/hotshot#249 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag