harborDocumentation

Start here

Overview

Harbor brings Slipway and Porthole into one workspace for Mac app testing. Slipway gives agents their own desktop; Porthole lets you watch the work.

Clone Harbor and set up the pair. Each tool keeps its own source, history and releases.

Open documentation →
↑ ↓ navigate↵ open
On this page

Slipway

Command reference

Command reference for Slipway.

CommandBehavior
open <App.app> [args]Copy a build, replace the running copy, launch and wait for its window.
open <Name>Relaunch a previously copied app.
install <App.app>Copy a build without launching it.
shot [Name] [out.png]Capture the screen or the named app's front window.
ui <Name>List controls, labels and click coordinates.
click <x> <y>Click at screen coordinates in points.
type <text>Type into the frontmost app.
key <combo>Send cmd+n, cmd+shift+s, return, esc or arrow keys.
script [args]Read AppleScript from stdin and execute it remotely.
quit <Name>Quit the selected app.
logs <Name>Print the app's captured stdout/stderr.
push <local> [remote]Copy files or folders into the target.
pull <remote> [local]Copy files out of the target.
run <command>Run a shell command over SSH.
sshOpen an interactive SSH session.
start, stop, statusManage or inspect the VM.
setupDownload and configure the guest.
note <text>Add test intent to Porthole's session view.
capabilities [--json]Print agent-oriented capabilities.
help, --versionPrint help or version without contacting the VM.

Commands that need the VM start it automatically. Read ui before choosing coordinates; window placement changes. Use note at the start of every task. Do not run concurrent click/type/key sessions against the same desktop.

Terminal
slipway note 'Checking search results'
slipway open build/MyApp.app
slipway ui MyApp
slipway click 300 120
slipway type 'release'
slipway key return
slipway shot MyApp

Exit status preserves remote command failures. Logs are best-effort and must not change the result of the test command. Scripts and output can include sensitive content; see privacy.

Continue readingConfiguration →
Edit on GitHub
Open in chat

Opens with this page’s documentation in the prompt.