feat(desktop): add goose://new-session deep link to open fresh chat - #9196
Merged
Conversation
Handle the 'new-session' hostname in all three protocol URL dispatch points (second-instance for Windows/Linux, handleProtocolUrl shared handler, and open-url for macOS) so that opening goose://new-session always creates a new chat window instead of focusing the last session. Closes #6509 Signed-off-by: Douwe Osinga <douwe@squareup.com>
alexhancock
approved these changes
May 14, 2026
alexhancock
left a comment
Collaborator
There was a problem hiding this comment.
nit: i would add an optional initial message param, so a message could be written elsewhere and then kick off a session with it.
we used to have a separate little launcher window that let us do this. unsure if we still do.
Collaborator
Author
yeah, that would be great. but I think also a bit of a security risk. we have deeplinks for recipes that ask the user to inspect the recipe. I suppose we could not auto-submit? |
lifeizhou-ap
added a commit
that referenced
this pull request
May 15, 2026
* main: (102 commits) Dynamically refresh skill instructions each turn (#9217) Build non-vulkan linux variants using ubuntu 22.04 (#9211) fix(ui): show tool name in approval prompt (#9216) feat: add Atomic Chat as declarative OpenAI-compatible provider (#9210) chore: bump package.json versions from 0.19.1 to 0.20.0 (#9218) feat: support GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri (#9209) [RFC] feat(oauth): proactive token refresh to avoid re-auth on every session (#8386) fix: resolve Azure CLI on Windows by using az.cmd (#9215) fix: handle non-interactive terminal in goose configure on Windows (#9214) Better parsing of pasted html as markdown so agents understand (#9190) fix: persist accumulated cost in session DB to survive reload (#9191) fix(publish-npm): build binary from current SHA + add compat check (#9212) feat(desktop): add goose://new-session deep link to open fresh chat (#9196) Add PR previews using cloudflare pages (#9208) fix: prevent tool-use marker leakage in toolshim output (#8310) Prompt injection mitigation: update pattern-based detection (#9198) remove goose2 related skills (#9189) Switch GH pages deploy to actions/artifact workflow (#9025) fix(summon): re-apply canonical limits when delegate overrides model (#9183) Split code signing from build (#8587) ...
shafqatevo
pushed a commit
to shafqatevo/goose
that referenced
this pull request
Aug 7, 2026
…aif-goose#9196) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add support for the
goose://new-sessiondeep link URL scheme so that opening this URL always creates a fresh chat window in the desktop app, rather than focusing the most recent session.This enables desktop widgets, keyboard shortcuts (Alfred/Raycast), Apple Shortcuts, and other automation tools to launch new Goose sessions without going through a terminal.
Changes
Single file change in
ui/desktop/src/main.ts— addsnew-sessionhostname handling in the three existing protocol URL dispatch points:second-instancehandler (Windows/Linux) — creates a new chat window and returns earlyhandleProtocolUrl(shared handler) — creates a new chat window, clears pending deep link, returnsopen-urlevent (macOS) — creates a new chat window and returns earlyEach follows the same pattern already used for
bot/recipedeep links.Testing
pnpm lint✅tsc --noEmit✅open goose://new-sessionon macOS should open a fresh chat windowCloses #6509