Perch: a native macOS workspace with a DSH ACP integration (early preview) #2363
chenweigao
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I'd like to share Perch, an MIT-licensed native macOS workspace I'm building, with a DeepSeek Harness adapter using ACP v1. This is an independent community project, not an official ACP or DeepSeek client.
The use case is running coding agents on an SSH host while reading conversations, inspecting tool output and responding to requests in a Mac-native UI. Perch also has other agent adapters, but the ACP integration described here is specifically DSH; it does not claim arbitrary ACP-agent compatibility.
The integration starts one
dsh --profile acpprocess per managed session behind a loopback service reached through SSH. It uses stdio JSON-RPC, gets model and reasoning-effort choices from runtimeconfigOptions, and maps permission options into native selection cards while preserving their opaque IDs. DSH delivers committed message blocks rather than incremental text deltas.The documented checks are against DSH 0.1.5-rc.1: initialization, session creation/list/resume, configuration options and prompt errors without credentials. Cancellation and permission requests follow the published contract; those checks do not establish full live-model validation or compatibility with the latest DSH release. Session-level continuation during a client disconnect remains unverified for DSH.
The screenshot shows real native UI with synthetic demo data, not a live ACP session.
Perch is an early source preview requiring macOS 14+ and Xcode 26+, tested on Apple Silicon. There is no notarized download yet; long-session responsiveness and recovery still need work.
Source and overview · Build/setup · Adapter details and recovery boundaries
Feedback from other ACP client implementers is welcome, especially on representing permission requests and making session recovery limits clear in a desktop UI.
All reactions