
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
@bitcoin-os/bridge
Advanced tools
Reusable React components for seamlessly integrating Bitcoin OS UI elements into any Bitcoin application.
npm install @bitcoin-os/bridge
import { BitcoinOSProvider } from '@bitcoin-os/bridge'
function App() {
const config = {
context: {
appName: 'Bitcoin Writer',
exchangeUrl: 'https://writer-exchange.vercel.app', // Custom exchange URL
}
}
return (
<BitcoinOSProvider config={config}>
<div className="p-8">
<h1>Your Bitcoin App Content</h1>
</div>
</BitcoinOSProvider>
)
}
import { BitcoinOSProvider } from '@bitcoin-os/bridge'
function App() {
const config = {
context: {
appName: 'Bitcoin Music',
exchangeUrl: 'https://music-exchange.vercel.app',
customMenuItems: [
{
label: 'Music',
items: [
{ label: 'Upload Track', action: () => console.log('Upload') },
{ label: 'Playlists', href: '/playlists' }
]
}
],
branding: {
name: 'Bitcoin Music',
color: '#8b5cf6'
}
},
showDevSidebar: true,
showDock: true,
showPocBar: true,
customStyles: `
.bitcoin-symbol { color: #8b5cf6 !important; }
`,
onAppOpen: (appName) => {
console.log('Opening app:', appName)
// Custom app opening logic
}
}
return (
<BitcoinOSProvider config={config}>
<YourAppContent />
</BitcoinOSProvider>
)
}
You can also use components individually:
import {
ProofOfConceptBar,
TopMenuBar,
DevSidebar,
Dock
} from '@bitcoin-os/bridge'
function CustomLayout() {
const context = {
appName: 'Bitcoin Email',
exchangeUrl: 'https://email-exchange.vercel.app'
}
return (
<div className="h-screen flex flex-col">
<ProofOfConceptBar appName="Bitcoin Email" />
<TopMenuBar context={context} />
<div className="flex flex-1">
<DevSidebar context={context} />
<main className="flex-1 pl-64">
<YourContent />
</main>
</div>
<Dock context={context} />
</div>
)
}
interface AppContext {
appName: string // Name of your app
exchangeUrl?: string // Custom exchange URL
customMenuItems?: Menu[] // Additional menu items
theme?: 'default' | 'custom' // Theme preference
branding?: { // Custom branding
name: string
color: string
logo?: string
}
}
interface BitcoinOSConfig {
context: AppContext
showDevSidebar?: boolean // Show/hide dev sidebar (default: true)
showDock?: boolean // Show/hide dock (default: true)
showPocBar?: boolean // Show/hide POC bar (default: true)
customStyles?: string // Custom CSS styles
onAppOpen?: (appName: string) => void // App opening handler
}
Each app can have its own exchange:
// Bitcoin Music
const musicConfig = {
context: {
appName: 'Bitcoin Music',
exchangeUrl: 'https://music-exchange.vercel.app' // Music marketplace
}
}
// Bitcoin Writer
const writerConfig = {
context: {
appName: 'Bitcoin Writer',
exchangeUrl: 'https://writer-exchange.vercel.app' // Writing marketplace
}
}
Add app-specific menu items while keeping global structure:
const config = {
context: {
appName: 'Bitcoin Drive',
customMenuItems: [
{
label: 'Drive',
items: [
{ label: 'Upload File', shortcut: '⌘U', action: () => uploadFile() },
{ label: 'Create Folder', shortcut: '⇧⌘N', action: () => createFolder() },
{ divider: true },
{ label: 'Share Settings', href: '/settings/sharing' }
]
}
]
}
}
Add app-specific items to the dock:
const customApps = [
{
name: 'Music Player',
icon: Music,
color: 'text-purple-500',
url: '/player'
}
]
<Dock context={context} customApps={customApps} />
The color cycling animation can be controlled via CSS classes:
/* Disable color cycling */
.no-color-cycling .bitcoin-symbol,
.no-color-cycling .dev-sidebar-title span {
animation: none !important;
color: #d946ef !important;
}
/* Disable all animations */
body.no-animations * {
animation-duration: 0s !important;
transition-duration: 0s !important;
}
Pass custom styles through the config:
const config = {
customStyles: `
.bitcoin-symbol {
color: #your-brand-color !important;
}
.dev-sidebar-title span {
color: #your-brand-color !important;
}
`
}
Displays a proof of concept banner with optional app name.
Props:
appName?: string - App name to displaymessage?: string - Custom messagemacOS-style menu bar with Bitcoin apps dropdown and customizable menus.
Props:
context: AppContext - App configurationonOpenApp?: (appName: string) => void - App opening handlershowBAppsMenu?: boolean - Show Bitcoin apps menugithubUrl?: string - Custom GitHub URLdocsUrl?: string - Custom docs URLDeveloper sidebar with navigation, stats, and customizable content.
Props:
context: AppContext - App configurationgithubRepo?: string - GitHub repository URLstatsOverride?: Record<string, string | number> - Custom statscustomMenuItems?: MenuItem[] - Additional menu itemsmacOS-style dock with Bitcoin apps and system status.
Props:
context: AppContext - App configurationcustomApps?: DockApp[] - Additional dock appsshowSystemStatus?: boolean - Show system status indicatorsonAppClick?: (app: DockApp) => void - App click handlerIf you're migrating from individual component copies:
BitcoinOSProvider// Before
import TopMenuBar from './components/TopMenuBar'
// After
import { BitcoinOSProvider } from '@bitcoin-os/bridge'
This package is part of the Bitcoin OS project. See the main repository for contribution guidelines.
MIT © Bitcoin OS
FAQs
Reusable Bitcoin OS components for seamless app integration
We found that @bitcoin-os/bridge demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.