npx electrobun init
Electrobun aims to be a complete solution-in-a-box for building, updating, and shipping ultra fast, tiny, and cross-platform desktop applications written in Typescript. Under the hood it uses bun to execute the main process and to bundle webview typescript, and has native bindings written in Objc, C++, and several core parts written in zig.
Visit https://blackboard.sh/electrobun/ to see api documentation, guides, and more.
You use it via npm.
Don't miss our:
- self-extracting bundles that use ZSTD compression for more compact distributables as small as 16MB
- zig optimized BSDIFF implementation that lets you ship tiny app updates as small as 4KB
bundleCEFflag to bundle and pin Chromium for those that want that tradeoff of consistency over file sizebundleWGPUthat lets you use Bun Typescript -> WGPU to control a native GPU surface without a webview- Our Three.js and Babylon.js adapters that work right in Bun
- Our
<electrobun-webview>and<electrobun-wpgu>html elements that let you composit proper OOPIFs and native GPU surfaces into your UIs - so much more.
Project Goals
- Write typescript for the main process and webviews without having to think about it.
- Isolation between main and webview processes with fast, typed, easy to implement RPC between them.
- Small self-extracting app bundles ~14MB (when using system webview, most of this is the bun runtime)
- Even smaller app updates as small as 4KB (using bsdiff it only downloads tiny patches between versions)
- Provide everything you need in one tightly integrated workflow to start writing code in 5 minutes and distribute in 10.
- 24agents - Hyperprompter
- act-track-ai - personal desktop productivity tracker
- Agents Council - agent-to-agent MCP communication tool for feedback requests
- ai-wrapped - Wrapped-style desktop dashboard for your AI coding agent activity
- Audio TTS - desktop text-to-speech app using Qwen3-TTS for voice design, cloning, and generation
- aueio-player-desktop - beautiful, minimal cross-platform audio player
- bestdiff - a git diff checker with curved connectors
- BuddyWriter - BuddyWriter desktop and mobile apps
- burns - a Smithers manager
- cbx-tool - desktop app for reading and editing comic book archives (.cbz/.cbr)
- Co(lab) - a hybrid web browser + code editor for deep work
- codlogs - search and export local Codex sessions via CLI or desktop app
- Codex Agents Composer - desktop app for managing your Codex agents and their skills
- codex-devtools - desktop inspector for Codex session data; browse conversations, search messages, and analyze agent activity
- Deskdown - transform any web address into a desktop app in under 20 seconds
- Dictate - Windows dictation app with local and BYOK cloud transcription
- dev-3.0 - helps you not get lost while managing multiple AI agents across projects
- DOOM - DOOM implemented in 2 ways: bun -> (c doom -> bundled wgpu) and (full ts port bun -> bundled wgpu)
- dotlock - macOS desktop app for managing
.envfiles across your projects - electrobun-pdf - local-first PDF & DOCX editor for opening, annotating, and exporting documents without leaving your machine
- electrobun-rms - fast Electrobun desktop app template with React, Tailwind CSS, and Vite
- golb - desktop AI coding workspace built with React, Vite, and Tailwind
- GOG Achievements GUI - desktop app for managing GOG achievements
- groov - desktop audio deck monitor
- Guerilla Glass - open-source cross-platform creator studio for fast Record -> Edit -> Deliver workflows
- Marginalia - a simple note taking app
- MarkBun - fast, beautiful, Typora-like markdown desktop editor
- md-browse - a markdown-first browser that converts web pages to clean markdown
- Patchline - lightweight desktop Git client for reading patches and line diffs, then staging and committing changes
- peekachu - password manager for AIs; store secrets in your OS keychain and scrub output so AI assistants never see actual values
- PiBun - desktop app for the Pi coding agent
- PLEXI - a multi-dimensional terminal multiplexer for the agentic era
- Prometheus - desktop utility toolbox for file cleanup, document manipulation, and image processing
- Quiver - desktop app for GitHub PR reviews, merge conflict resolution, and AI commit messages
- remotecode.io - continue local AI coding sessions (Claude Code or Codex) from your mobile device
- sirene - self-hosted multi-backend text-to-speech platform with voice cloning
- StoryForge - desktop app for Vintage Story players to switch between game versions, modpacks, servers, and accounts
- Tensamin Client - web, desktop, and mobile app for accessing Tensamin
- tokenpass-desktop - desktop app that runs the Sigma Identity stack locally for Bitcoin-backed authentication
- typsmthng-desktop - experimental desktop typing application
- VibesOS - A GUI for Claude Code that makes it easy to vibe code simple, un-hackable apps
- VoiceVault - AI-powered voice recorder with transcription, summarization, and RAG search
- warren - open-source, peer-to-peer terminal mesh for accessing your machines from any device without SSH keys or config files
- whatsapp-reminder - managed scheduled WhatsApp messages
Electrobun is one piece of a vision I'm building. I'm optimizing for focus and execution. Issues and PRs can be used to share ideas, but there should be no expectation that I will review, respond to, or merge them.
Ways to get involved:
- Read the Contribution guidelines
- Follow us on X for updates @BlackboardTech and @YoavCodes or on bluesky @yoav.codes
- Join the conversation on Discord
- Create and participate in Github issues and discussions
- Let me know what you're building with Electrobun
Building apps with Electrobun is as easy as updating your package.json dependencies with npm add electrobun or try one of our templates via npx electrobun init.
This section is for building Electrobun from source locally in order to contribute fixes to it.
macOS:
- Xcode command line tools
- cmake (install via homebrew:
brew install cmake)
Windows:
- Visual Studio Build Tools or Visual Studio with C++ development tools
- cmake
Linux:
- build-essential package
- cmake
- webkit2gtk and GTK development packages
On Ubuntu/Debian based distros: sudo apt install build-essential cmake pkg-config libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
git clone --recurse-submodules https://github.com/blackboardsh/electrobun.git
cd electrobun/package
bun install
bun dev:clean# All commands are run from the /package directory
cd electrobun/package
# After making changes to source code
bun dev
# If you only changed kitchen sink code (not electrobun source)
bun dev:rerun
# If you need a completely fresh start
bun dev:cleanAll commands are run from the /package directory:
bun dev:canary- Build and run kitchen sink in canary modebun build:dev- Build electrobun in development modebun build:release- Build electrobun in release mode
macOS: Use lldb <path-to-bundle>/Contents/MacOS/launcher and then run to debug release builds
| OS | Status |
|---|---|
| macOS 14+ | Official |
| Windows 11+ | Official |
| Ubuntu 22.04+ | Official |
| Other Linux distros (gtk3, webkit2gtk-4.1) | Community |



