A native macOS client for agentic coding. A SwiftUI app — not a web view, not an Electron shell. Pick a workspace, talk to an agent that's already installed on your Mac, and let it edit files and run terminals in a native window.
Aureways implements the Agent Client Protocol and launches your local CLI agent as a child process over stdio NDJSON. There is no remote backend and no separate HTTP service — the client runs the agent directly, in-process.
- Native Mac surfaces — unified toolbar, sidebar, system Settings (
⌘,), light/dark following the system (overridable in Settings). "Reveal in Finder" and a real PTY terminal, not a web approximation. - Any ACP agent — nine agents ship built in, or add any launch command from Settings. Sessions live under their workspace in the sidebar and restore across launches when the agent supports it.
- Streaming transcript — Markdown body, collapsible thinking, grouped tool calls, plan steps. The composer takes
/commands,@workspace-file references, and image/file attachments. Long transcripts are virtualized so scrolling stays cheap. - Permissions — the agent asks before reading/writing files or running commands; you can instead let the client approve on its behalf.
- Workbench (
⌘B) — a file browser, a text editor (line numbers,⌘S, conflict handling when you and the agent edit the same file), and interactive terminals. Every open file and terminal keeps its own tab, so switching doesn't lose state. - Markdown documents — Finder, Dock,
open -a, and File → Open Markdown (⌘O) open.mdfiles as workbench tabs (same preview renderer as the transcript). Set Aureways as the default Markdown app in Settings if you want double-click.
┌──────────────┬────────────────────────────────────────────┬──────────────┐
│ Sidebar │ Unified toolbar: workspace · status · search │ Inspector ⌘B │
│ • New chat ⌘N│ │ • File browser│
│ • Workspace ├────────────────────────────────────────────┤ • Text editor │
│ sessions │ Transcript (centered, streaming) │ • Terminal │
│ ⌘1 … ⌘9 │ user bubble · agent message · thinking │ • Info │
│ │ tool cards · plan steps │ │
│ ├────────────────────────────────────────────┤ │
│ │ Floating composer (⌘Return to send) │ │
└──────────────┴────────────────────────────────────────────┴──────────────┘
| Agent | Launch command |
|---|---|
| Grok Build | grok agent stdio |
| Codex | npx -y @agentclientprotocol/codex-acp |
| Claude Code | npx -y @agentclientprotocol/claude-agent-acp |
| Antigravity | agy_acp_server (official Google ACP zip; not agy --acp) |
| GitHub Copilot | copilot --acp --stdio |
| Cursor Agent | cursor-agent acp |
| OpenCode | opencode acp |
| Oh My Pi | omp acp |
| Qoder | qoder --acp / qoderclicn --acp |
Install and sign in to the matching CLI first. Login and API keys live in each vendor's own tool — they don't go through Aureways. Add custom agents in Settings (⌘,).
Oh My Pi is a Bun CLI (engines.bun >= 1.3.14). Install with bun install -g @oh-my-pi/pi-coding-agent, then authenticate inside omp. Auto-approve launches omp acp --yolo.
Qoder supports both the international CLI (qoder, via @qoder-ai/qodercli) and mainland-China CLI (qoderclicn, via @qodercn-ai/qoderclicn). Aureways automatically detects whichever binary is available on PATH. Run qoder login or qoderclicn login first. Auto-approve launches with --acp --yolo.
Antigravity's CLI (agy) has no --acp mode. Google publishes a separate ACP server (agy_acp_server.par + localharness_external in the same directory). On Apple Silicon:
mkdir -p ~/.local/share/antigravity-acp ~/.local/bin
curl -fsSL -o /tmp/agy-acp.zip \
https://dl.google.com/agy-extensions/releases/macos/agy-acp-server-agy_acp_server_1.1.1-darwin-arm64.zip
unzip -o /tmp/agy-acp.zip -d ~/.local/share/antigravity-acp
chmod +x ~/.local/share/antigravity-acp/agy_acp_server.par \
~/.local/share/antigravity-acp/localharness_external
cat > ~/.local/bin/agy_acp_server <<'EOF'
#!/bin/sh
exec "$HOME/.local/share/antigravity-acp/agy_acp_server.par" "$@"
EOF
chmod +x ~/.local/bin/agy_acp_serverDo not symlink only the .par onto PATH — the server looks for localharness_external next to the executable. First connect authenticates with Google (oauth-personal). Override the binary with AGY_ACP_BIN.
Install — grab the .dmg from Releases and drag Aureways.app into Applications. Builds are ad-hoc signed and not notarized; if Gatekeeper blocks first launch:
xattr -dr com.apple.quarantine /Applications/Aureways.appBuild from source — requires macOS 26+ and Xcode 26+ (developed against Xcode 27). The app sandbox is off. Run from the repository root (where Makefile and Aureways.xcodeproj live, not the inner Aureways/ source directory):
make openOr open the project in Xcode, pick scheme Aureways and destination My Mac, then press ⌘R:
open Aureways.xcodeprojTo build with a specific Xcode instead of the current xcode-select toolchain:
make open DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer| Command | What it does |
|---|---|
make build |
Debug build |
make open |
Build and open the .app |
make test |
Run AurewaysTests |
make release |
Release build (for shipping) |
make clean |
Remove .derived |
If the first command-line build reports a missing Metal toolchain:
xcodebuild -downloadComponent MetalToolchain| Keys | Action |
|---|---|
⌘N |
New chat |
⌘O |
Open Markdown |
⌘1 … ⌘9 |
Select session |
⌘B / ⌥⌘I |
Toggle the workbench |
⌘, |
Settings |
⌘Return |
Send message |
⌘. |
Stop generation |
/ in composer |
Slash commands |
@ in composer |
Reference workspace files |
| Document | Covers |
|---|---|
| Index | Reading order |
| Directory | Repo and source tree |
| Architecture | Front/back responsibilities, session lifecycle |
| Frontend | SwiftUI UI and state |
| Backend | Connection, process, filesystem, terminal |
| Protocol | Which ACP methods are implemented |
| Development | Toolchain, tests, debugging connection failures |
The in-depth docs are written in Chinese.
By convention, only a v* tag triggers CI — branches and PRs don't build. See .github/workflows/release.yml.
git tag v0.2.0
git push origin v0.2.0Pipeline: make test → Release build → package Aureways-<tag>.dmg → create a GitHub Release with the artifact.
MIT. See LICENSE.