Deep links help people start work in the GitHub Copilot app with less context switching. For example, you can share kickoff prompts, include links to the app in markdown files, launch the app from terminal scripts, or add a button to open the app in external tools.
You can open the GitHub Copilot app from browser links that wrap an app link in the hosted launcher. The hosted launcher opens the app when possible and shows a fallback page if the browser cannot hand off to the app. For a full list of supported app links, see Available app links.
Why use deep links
Use deep links when you want to move from a webpage or workflow directly into a specific page or task in the app. Common use cases include:
- Start sessions with a pre-filled kickoff prompt.
- Share automation prompts so teammates can open and reuse them quickly.
- Add launch buttons in internal docs or markdown files to open common workflows.
- Launch the app from terminal commands or scripts as part of local workflows.
- Open the app from third-party products such as issue or ticket systems.
Launcher URL format
Use the hosted launcher URL with the full app link encoded in the open query parameter. The hosted launcher opens the app when possible and shows a fallback page if the browser cannot hand off to the app.
https://github.com/copilot/app/launch?open=ENCODED_APP_LINK
Use encodeURIComponent, or the equivalent in your programming language, to encode the full app link. If the app link includes query parameters, encode those query parameter values before encoding the full app link for open.
For example, to open a repository the app link is:
ghapp://github.com/OWNER/REPO
Encoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO
Public links should use the official ghapp:// scheme. The app also accepts github-app:// and gh:// links for compatibility, but generated and documented links should use ghapp://.
Open a repository or work item
To open a page in the GitHub Copilot app, build a launcher URL using the app link for the page you want to open.
-
To open a repository, use this app link:
ghapp://github.com/OWNER/REPOEncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO -
To open an issue, use this app link:
ghapp://github.com/OWNER/REPO/issues/NUMBEREncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO%2Fissues%2F123 -
To open a pull request, use this app link:
ghapp://github.com/OWNER/REPO/pull/NUMBEREncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO%2Fpull%2F123 -
To resume an agent task, use this app link:
ghapp://github.com/OWNER/REPO/tasks/TASK_IDEncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO%2Ftasks%2FTASK_IDUse the GitHub task ID for
TASK_ID. Do not use a runtime session ID or an app-local session URL for links that resume GitHub Copilot agent tasks.
Open sessions
To start a new session from a deep link, use ghapp://session/new with query parameters to pre-fill the repository, branch, pull request, prompt, or mode. For available parameters, see Session parameters.
For example, to start a new interactive session with a repository and kickoff prompt, use this app link:
ghapp://session/new?repo=OWNER%2FREPO&mode=interactive&prompt=Investigate%20failing%20tests
Encoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fsession%2Fnew%3Frepo%3DOWNER%252FREPO%26mode%3Dinteractive%26prompt%3DInvestigate%2520failing%2520tests
Session parameters
The ghapp://session/new and ghapp://session/new/OWNER/REPO links accept these query parameters.
| Parameter | Required | Notes |
|---|---|---|
repo | Required for ghapp:/; optional for ghapp:/ | Repository in OWNER/REPO format. |
pr | No | Positive pull request number. Cannot be combined with branch. |
branch | No | Base branch for the new session. Cannot be combined with pr. |
prompt | No | Kickoff prompt. Do not include secrets or sensitive user content in URLs. |
mode | No | One of plan, interactive, or autopilot. |
Open automations
To open automations or create a new automation draft from a deep link, use the automation app links. For available parameters when creating a new automation draft, see Automation parameters.
-
To open the Automations page, use this app link:
ghapp://automationsEncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations -
To open a new automation draft, use this app link:
ghapp://automations/new?name=Daily%20triage&trigger=daily&time=09%3A00&prompt=Summarize%20new%20issuesEncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations%2Fnew%3Fname%3DDaily%2520triage%26trigger%3Ddaily%26time%3D09%253A00%26prompt%3DSummarize%2520new%2520issues -
To open an existing automation, use this app link:
ghapp://automations/AUTOMATION_IDEncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations%2FAUTOMATION_ID -
To open a cloud automation, add
mode=cloudto the app link before encoding it:ghapp://automations/AUTOMATION_ID?mode=cloudEncoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations%2FAUTOMATION_ID%3Fmode%3Dcloud
Automation parameters
The ghapp://automations/new link opens the new automation dialog. It does not create the automation until the user reviews the dialog and confirms in the app. Do not include secrets or sensitive user content in prompts embedded in URLs.
| Parameter | Applies to | Notes |
|---|---|---|
name | ghapp:/ | Automation name. |
prompt | ghapp:/ | Automation prompt. Do not include secrets or sensitive user content in URLs. |
trigger | ghapp:/ | One of manual, hourly, daily, or weekly. Invalid values are ignored. interval is also accepted as an alias. |
time | ghapp:/ | Time in HH:mm 24-hour local format. Accepted for daily and weekly triggers. Daily triggers also accept comma-separated or repeated times when all entries share the same minute, for example time=08:00,13:00. Invalid values are ignored. |
day | ghapp:/ | Weekly day as 0-6 (0 = Sunday) or a weekday name. Invalid values are ignored. schedule_day is also accepted as an alias, and weekly triggers accept comma-separated or repeated values, such as schedule_day=1,3,5. |
mode | ghapp:/ and ghapp:/ | Use cloud for cloud automations. Omit it or use local for local automations. |
Open plugin flows
To open plugin install or marketplace flows from a deep link, use the plugin app links. For available parameters, see Plugin parameters.
For example, to open the plugin install form with a pre-filled source, use this app link:
ghapp://plugins/install?source=my-plugin%40acme
Encoded in the launcher URL, that becomes:
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fplugins%2Finstall%3Fsource%3Dmy-plugin%2540acme
Plugin parameters
Plugin links open Settings > Plugins with a form pre-filled. They do not install a plugin or add a marketplace until the user confirms in the app.
| Link | Parameter | Required | Notes |
|---|---|---|---|
ghapp:/ | source | Yes | Plugin source in PLUGIN@MARKETPLACE format. URL-encode the value, for example source=my-plugin%40acme. |
ghapp:/ | source | Yes | Marketplace source as OWNER/REPO or a Git URL. URL-encode the value, for example source=acme%2Fplugins. |
Available app links
The following app links can be wrapped in the hosted launcher. Query strings and hashes are preserved when the app opens the link.
| App link shape | Opens | Notes |
|---|---|---|
ghapp:// | Home | Opens the app home route. |
ghapp://chats | Chats | Opens Chats. |
ghapp://mywork | My work | Opens issues and pull requests in My work. |
ghapp:/ | Repository setup | Opens or clones the repository. |
ghapp:/ | Issue | Opens the issue in My work when the repository is already added as a project. |
ghapp:/ | Pull request | Opens the pull request in My work when the repository is already added as a project. Optional trailing path segments are preserved. |
ghapp:/ | Agent task | Resumes a GitHub Copilot agent task. Use the GitHub task ID, not an app-local session ID. |
ghapp:/ | Automations | Opens Automations. |
ghapp:/ | New automation draft | Opens the new automation dialog with supported query parameters pre-filled. See Automation parameters. |
ghapp:/ | Automation | Opens a local automation by default. Add ?mode=cloud for a cloud automation. |
ghapp:/ | Automation run | Opens a local automation run by default. Add ?mode=cloud for a cloud automation run. |
ghapp://recent | Recent workspaces | Opens Recent Workspaces. |
ghapp:/ | App session | Opens an app-local workspace or session. Do not use this shape to resume GitHub Copilot agent tasks. |
ghapp:/ | Repository setup | Shows a confirmation before cloning or opening repository setup. |
ghapp:/ | Repository setup | Shows a confirmation before cloning or opening repository setup. |
ghapp:/ | New session | Shows a confirmation before creating a session. Use query parameters to provide the repository, pull request, branch, prompt, or session mode. See Session parameters. |
ghapp:/ | New session for a repository | Shows a confirmation before creating a session for the repository. See Session parameters. |
ghapp:/ | Plugin install form | Shows a confirmation, then opens Settings > Plugins with the install form pre-filled. See Plugin parameters. |
ghapp:/ | Plugin marketplace form | Shows a confirmation, then opens Settings > Plugins with the marketplace form pre-filled. See Plugin parameters. |