English | 简体中文
Open the links that belong here in this tab. Keep a fresh tab for somewhere genuinely new.
Blanksmith is a small Chrome extension for a big tab-bar problem: websites
that open every target="_blank" link in another tab. On sites you choose, it
keeps same-property links right where you are—without taking away the new tabs
that are actually useful.
No accounts. No telemetry. No extension-initiated network requests. No bundled site list. Your browser, your rules.
Open a site where same-site links keep bouncing you into new tabs.
Choose Include this site, then approve Chrome's permission prompt for that site.
Same-property _blank links now open in your current tab. A destination that
Blanksmith classifies as a different property keeps its new-tab behavior.
Small change. Calmer browsing. 🎉
| You choose | Blanksmith does |
|---|---|
| Included sites only (the default) | Works only on sites you explicitly include. |
| All sites except excluded | Works everywhere, except the sites you exclude. |
| Same property (the default boundary) | Keeps same-property links in the current tab and preserves new tabs for different properties. |
| Related domains | Lets you explicitly say that another domain belongs to the same product. |
| Convert all (advanced) | Opens all matching _blank links in the current tab—including different-property destinations. Use it only when that is what you want. |
Rules begin empty. There are no hidden presets. In Settings, each rule can cover a whole site or one hostname, and you can switch between the safe default and the advanced behavior whenever you need to.
Blanksmith deliberately leaves these alone:
- Cmd/Ctrl/Shift-clicks and middle-clicks
- download links
- links marked
rel="external" - every link on a site you have not enabled
It never rewrites the page's target attribute. When a rule permits a
conversion, it uses preventDefault() plus normal browser navigation
(location.assign()) at click time.
- No developer-operated backend, analytics, ads, remote code, or
extension-initiated
fetch, XHR, or WebSocket requests. - Only your rules and preferences are stored in
chrome.storage.sync. On an enabled page, it reads only the clicked link details needed for that one decision—not page text, forms, cookies, or your browsing history.
Read the details in Privacy and Security.
- "Same property" normally means the same registrable domain (eTLD+1), calculated locally with a Public Suffix List parser that recognizes private suffixes. It cannot prove common ownership across different domains; related domains are always your explicit choice.
- Multi-tenant hosts such as
github.iostay separate by default. Use the same-host boundary when that is safer. - Version 1 handles effective
_blanklinks on anchors and image-map areas, including<base target="_blank">. It does not interceptwindow.open, forms, frames, or closed shadow roots.
The Chrome Web Store listing is not published yet. To use Blanksmith today:
pnpm install
pnpm buildThen open chrome://extensions, enable Developer mode, click Load
unpacked, and select .output/chrome-mv3/. Pin the icon—and give your tab
bar some breathing room.
Building, testing, and contributing
pnpm verify # test, typecheck, build, and verify Store artwork
pnpm assets:store # regenerate deterministic Store and social imagesRead CONTRIBUTING.md before contributing. The complete rule model, manual Chrome checks, and Store materials live in MANUAL_TEST.md, STORE_LISTING.md, and store-assets/README.md.
Have a bug or a bright idea? Open a GitHub issue—just leave personal browsing data and credentials out of it.
MIT © 2026 TiantianFlow

