Badges

README Badge Maker

Paste an app link, like vscode:// or obsidian://, and get an “Open in …” badge for your README. GitHub removes those links from Markdown. The badge goes through an https link instead, which GitHub keeps.

A vscode://, obsidian://, slack:// or other app link.

Auto picks the badge from the link’s scheme.

Preview
Open in appLight theme
Open in appDark theme
Markdown
Paste an app link above

For README.md and other Markdown files on GitHub.

HTML
Paste an app link above

For an HTML block in a README, or a web page.

Link only
Paste an app link above

The https link on its own, if you already have a badge image.

Need to write the app link first? The deep link builder makes Slack, Obsidian, Zoom, Notion and Figma links, and the URL scheme list has formats for more apps.

Why README buttons break

When GitHub renders Markdown, it keeps link targets that start with http, https or mailto. It removes targets with app schemes such as vscode://, obsidian:// or slack://.

So a badge written as [![Open in VS Code](badge.svg)](vscode://…) still shows the image, but clicking it doesn’t open VS Code. Point the badge at an https link that opens the app link, and GitHub leaves it alone.

How it works

  1. Paste the app link. The badge is picked from its scheme: vscode:// gets “Open in VS Code”, and a scheme without its own badge gets “Open in app”. You can pick a different one.
  2. Copy the Markdown or HTML into your README.
  3. The badge links to linkopen.app. The app link is compressed into that address, so nothing is stored on a server. Clicking it opens a short page that passes the link on to the app.

Links to websites (http and https) open a page that asks people to confirm instead of redirecting straight away. GitHub keeps those links anyway, so you can use them in a README directly.

Example: clone this repository in VS Code[![Open in VS Code](https://linkopen.app/badge/vscode.svg)](https://linkopen.app/1/vscode%3A%2F%2Fvscode.git%2Fclone%3Furl%3Dhttps%253A%252F%252Fgithub.com%252Finlife%252Fspx)

Badges

Each one is a static SVG, 20px tall, in the flat style shields.io uses, so it lines up with other README badges. Text only, no logos.

BadgeImage URL
Open in VS Codehttps://linkopen.app/badge/vscode.svg
Open in Obsidianhttps://linkopen.app/badge/obsidian.svg
Open in Cursorhttps://linkopen.app/badge/cursor.svg
Open in Slackhttps://linkopen.app/badge/slack.svg
Open in Zoomhttps://linkopen.app/badge/zoom.svg
Open in Notionhttps://linkopen.app/badge/notion.svg
Open in Figmahttps://linkopen.app/badge/figma.svg
Open in Teamshttps://linkopen.app/badge/teams.svg
Open in Thingshttps://linkopen.app/badge/things.svg
Open in apphttps://linkopen.app/badge/app.svg

Questions

What happens when someone clicks the badge?+

Their browser opens a page on linkopen.app, which passes the original link to the app. Most browsers ask before they open an app. If the app isn’t installed, nothing opens, and the page shows the original link with a note that the app may be missing.

Can I change where a badge points after I publish it?+

Not in place. The app link is stored inside the badge’s address, not in a database, so there’s nothing to edit. Make a new badge and replace the snippet in your README.

Can I use my own badge image?+

Yes. The link makes the button work, not the image. Copy the “Link only” output and put any image in front of it: [![Open in my app](https://example.com/badge.svg)](https://linkopen.app/…)

Other tools
Have a custom-scheme link to share?

The LinkOpen converter turns it into an https link that opens the app when clicked.

Open converter