Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneesswamp_lord

Relationships

#3820 'swamp start' launcher overrides configured terminal on macos

Opened by zts · 10/23/2026· Shipped 10/23/2026

The new "swamp start" experience is a big improvement for new users, but slightly sucked for me as it launched Claude Code in the default Terminal.app - I normally use Ghostty, and my shell configuration does not render readably in Terminal.app

The launcher currently works by creating a script in <workspace>/.swamp/start/launch.command containing the appropriate shell commands. I have configured Ghostty as the default application for .command files. If I double-click that file in the Finder, it does execute in a new Ghostty window.

However, Swamp runs the script as open -a Terminal scriptPath (see src/infrastructure/process/terminal/terminal_launcher.ts:155-156Changing this toopen scriptPath(removing the-a Terminal`) will instead use the default application (which should be Terminal.app anyway, if the user has not changed it)

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPEDTRIAGE+ 2 MOREREVIEW+ 6 MOREPR_LINKED+ 2 MORESESSION_SUMMARIZED

Shipped

10/23/2026, 10:36:59 AM

Click a lifecycle step above to view its details.

03Sludge Pulse
swamp_lord assigned swamp_lord10/23/2026, 9:45:13 AM
Editable. Press Enter to edit.

system commented 10/23/2026, 9:43:55 AM

Classified automatically when this issue was filed.

  • Source: Swamp CLI

If you feel this classification is incorrect, add a ripple to tell us so.

swamp_lord commented 10/23/2026, 10:16:21 AM

Additional manual verification of commit 63e5b110 passed. Built dashboard assets and the compiled binary, then ran swamp start in an isolated temporary home and workspace. Drove task save, agent choice, trust confirmation and launch through the actual local WebSocket API. macOS dispatched the generated executable launch.command and a harmless agent probe recorded TERM_PROGRAM=Apple_Terminal, the correct working directory (including spaces and an ampersand), and the expected task-brief argument. The launch event reported opened=true; script permissions were 0700. This confirms real terminal execution, not only mocked spawn arguments. This machine uses Terminal.app as its default .command handler and does not have Ghostty installed, so Ghostty execution was not tested. Server stopped after validation. Separate UAT tracking was declined by the requester and swamp-uat issue 768 has been closed.

swamp_lord commented 10/23/2026, 10:23:58 AM

Ghostty-specific manual verification now passed for commit 63e5b110. Installed Ghostty 1.3.1 and temporarily configured it as the default .command handler; independently confirmed macOS resolved the test file to /Applications/Ghostty.app. Ran the patched compiled swamp start binary in a fresh temporary workspace with spaces and an ampersand in its path. The real task-save, harness-choice, trust and launch flow generated launch.command and macOS dispatched it to Ghostty. The harmless agent probe executed and recorded TERM_PROGRAM=ghostty, the exact workspace directory, and the expected task-brief argument. This confirms actual script execution in the configured alternative terminal, not merely successful open dispatch. Restored the original Terminal.app association and stopped the temporary server after validation. Ghostty remains installed.

swamp_lord commented 10/23/2026, 10:37:02 AM

Thanks @zts for reporting this! We shipped: Respect the macOS default .command handler in swamp start by removing the forced Terminal.app override. Reproduced on latest main 9a065cc6 using the real adapter with injected spawn capture: command open, args [-a, Terminal, scriptPath], respectsAssociation=false, intentional exit 1. Retained repro at /private/var/folders/dr/60zmlx011zg7w8t7c4szvj5m0000gn/T/opencode/swamp-repro-issue-3820/repro.ts; run with deno run --config /Users/studio/working-folder/2-repos/swamp-issue-3820/deno.json --allow-read --allow-write=.swamp repro.ts from that directory. Expected args are only scriptPath. No GUI association was exercised.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.