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.
Paste an app link aboveFor README.md and other Markdown files on GitHub.
Paste an app link aboveFor an HTML block in a README, or a web page.
Paste an app link aboveThe 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 [](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
- 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. - Copy the Markdown or HTML into your README.
- 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.
[](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.
| Badge | Image URL |
|---|---|
| https://linkopen.app/badge/vscode.svg | |
| https://linkopen.app/badge/obsidian.svg | |
| https://linkopen.app/badge/cursor.svg | |
| https://linkopen.app/badge/slack.svg | |
| https://linkopen.app/badge/zoom.svg | |
| https://linkopen.app/badge/notion.svg | |
| https://linkopen.app/badge/figma.svg | |
| https://linkopen.app/badge/teams.svg | |
| https://linkopen.app/badge/things.svg | |
| https://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: [](https://linkopen.app/…)
The LinkOpen converter turns it into an https link that opens the app when clicked.