惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
Recent Announcements
Recent Announcements
B
Blog
D
Docker
V
V2EX
GbyAI
GbyAI
L
LangChain Blog
博客园 - Franky
U
Unit 42
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
博客园_首页
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
量子位
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - bigmacfive/appbun: Turn any webpage into an insp...
bigmacfive · 2026-05-23 · via Hacker News: Show HN

English | 한국어

npm version npm downloads CI Last commit Closed issues License

Turn any webpage into a desktop app with one command. appbun wraps a URL in an Electrobun project, pulls usable icons from site metadata, and gives you installer-friendly packaging for macOS with a clean path to Windows and Linux builds.

Supports macOS, Windows, and Linux.

Project ambition: Pake-grade goal.

appbun social card

Why appbun

appbun exists for the same reason people reach for Pake: the fast URL -> desktop app workflow is useful.

The difference is the output.

Instead of hiding everything behind a black box, appbun gives you a normal Electrobun project you can inspect, edit, version, and ship.

What it handles for you:

  • fetches title, description, theme color, favicon, apple-touch icon, and manifest icons
  • rejects obviously broken icon responses and low-quality raster assets before packaging
  • generates a local Electrobun shell around the target URL
  • lets you choose between common macOS window chrome presets instead of hard-coding one look
  • produces cross-platform build output, plus a macOS DMG flow for drag-to-Applications installs
  • asks before destructive or heavyweight steps in interactive terminals, with --yes to skip prompts

Install

bun add -g appbun
npm install -g appbun

If your npm global prefix is permission-locked, prefer bun add -g appbun or use npx appbun@latest ....

appbun prefers Bun when Bun is installed locally. If it is not available, appbun falls back to npm automatically unless you force --package-manager.

Quick start

appbun https://chat.openai.com --name "ChatGPT" --dmg

That one command can scaffold the project, install dependencies, build the app, create a DMG on macOS, and open the installer window.

If you want the generated project without building immediately:

appbun https://linear.app --name "Linear Desktop"
cd linear-desktop
bun install
bun run build

Need a tighter macOS chrome right away:

appbun https://chat.openai.com --name "ChatGPT" --titlebar compact --dmg

Or use a built-in recipe when you want the shortest possible command:

appbun chatgpt --dmg
appbun github --out-dir ./github
appbun recipes
appbun discover design

CLI examples

List popular recipes:

appbun recipes
appbun recipes --concept music

Create from a recipe slug:

appbun linear --dmg

Find related apps by concept, alias, or description:

appbun discover ai
appbun discover design
appbun discover gcal
appbun https://github.com --name "GitHub"
appbun create https://calendar.google.com \
  --name "Calendar" \
  --out-dir ./calendar-app \
  --width 1600 \
  --height 1000
appbun https://chat.openai.com --theme-color '#10a37f'
appbun https://www.notion.so --package-manager npm
appbun https://github.com --name "GitHub" --titlebar system

Skip confirmation prompts in scripted runs:

appbun https://github.com --name "GitHub" --out-dir ./github --yes

If you are building a web app and want a coding agent to turn it into a desktop app for you, copy the prompt from:

If you want appbun to prefill that prompt for a specific local URL, use:

appbun prompt http://localhost:3000 --name "My App"

That outputs a ready-to-paste instruction block telling the agent to package the current web app into ./desktop/my-app with appbun@latest, then build it.

Codex skill

appbun also ships a Codex skill so web developers can ask an agent to package a website or local frontend as an inspectable desktop app without remembering every command.

appbun skill --install

Then invoke it in Codex:

$appbun-web-desktop package my local web app at http://localhost:3000 as a desktop app

The skill guides the agent through URL selection, appbun scaffolding, build verification, appbun doctor --target ..., and native-runner packaging expectations for macOS, Windows, and Linux.

Built-in recipes

Recipes are shortcuts for popular web apps with a stable URL, display name, theme color, and titlebar choice. They make demos and repeated installs much faster:

appbun chatgpt --dmg
appbun ytmusic --titlebar minimal
appbun recipes --json

Current recipes include ChatGPT, GitHub, Linear, Notion, YouTube, YouTube Music, Excalidraw, Photopea, Squoosh, and Desmos. Recipe contributions are welcome when the target is recognizable and stable.

Use appbun discover to browse concepts such as ai, chat, design, developer, docs, education, music, productivity, and work.

Doctor

Before filing an issue or debugging a generated project, run:

appbun doctor

For automation or issue templates:

appbun doctor --json
appbun doctor --strict
appbun doctor --target linux

The doctor checks Node.js, Bun, npm, Git, and platform packaging readiness. Use --target macos, --target windows, or --target linux when preparing release builds on native runners. It is meant to make setup problems obvious before they become vague bug reports.

Window chrome presets

appbun now exposes the generated macOS title area as a user choice instead of locking every app to one look.

Preset Best for macOS behavior
system strict native window chrome default system title bar, no local shell header
unified default, balanced desktop wrapper hidden inset traffic lights with a connected local toolbar
compact content-heavy apps same pattern, but shorter and tighter
minimal distraction-free wrappers same pattern, but lighter metadata and less visible chrome

On Windows and Linux, generated apps fall back to the standard native title bar.

To inspect every option quickly:

appbun create --help

Troubleshooting

Bun is not installed

If Bun is not installed on the machine running appbun, the CLI now falls back to npm automatically for generated projects and install/build flows. You can still force one side explicitly with:

appbun https://example.com --package-manager npm

macOS app does not open the first time

Some local Electrobun macOS builds can trigger a one-time launcher permission prompt. If the installed app does not open from Finder or the Dock on first launch:

  1. Open the Applications folder.
  2. Right-click the app and choose Open once.
  3. If macOS shows a launcher prompt, allow it.

After the first successful launch, the app should behave normally.

Showcase

Public no-login web apps captured with Playwright and framed to match the generated shell:

appbun showcase

Example targets

App URL Command
GitHub https://github.com appbun https://github.com --name "GitHub" --dmg
YouTube https://www.youtube.com appbun https://www.youtube.com --name "YouTube" --dmg
YouTube Music https://music.youtube.com appbun https://music.youtube.com --name "YouTube Music" --dmg
Excalidraw https://excalidraw.com appbun https://excalidraw.com --name "Excalidraw" --dmg
Photopea https://www.photopea.com appbun https://www.photopea.com --name "Photopea" --dmg
Google Maps https://www.google.com/maps appbun https://www.google.com/maps --name "Google Maps" --dmg
Google Translate https://translate.google.com appbun https://translate.google.com --name "Google Translate" --dmg
Squoosh https://squoosh.app appbun https://squoosh.app --name "Squoosh" --dmg
Desmos https://www.desmos.com/calculator appbun https://www.desmos.com/calculator --name "Desmos" --dmg

More detail lives in docs/showcase/README.md.

Generated project structure

my-app/
├── .github/
│   └── workflows/
│       └── release.yml    # native-runner artifact build workflow
├── assets/                 # Derived icon assets for packaging
├── icon.iconset/           # macOS iconset sizes (16 through 1024)
├── scripts/
│   ├── build-platform.mjs  # native-runner guard for platform builds
│   └── create-dmg.mjs      # macOS DMG helper
├── src/
│   ├── bun/
│   │   └── index.ts        # Electrobun window entrypoint
│   └── mainview/
│       ├── index.html      # Local shell markup
│       ├── index.css       # Unified title area styles
│       └── index.ts        # Embedded remote webview bootstrap
├── electrobun.config.ts
├── package.json
└── tsconfig.json

Platform notes

macOS

Generated apps can use:

  • the default system title bar with --titlebar system
  • hiddenInset traffic lights with --titlebar unified, compact, or minimal
  • UnifiedTitleAndToolbar plus FullSizeContentView for the connected presets
  • a local title area sized to match the selected preset instead of one fixed fake header
  • build:dmg for installer-style distribution

Windows and Linux

The generated Electrobun project includes native-runner packaging scripts for each platform:

  • bun run build:windows on Windows
  • bun run build:linux on Linux
  • bun run build:macos on macOS

Electrobun builds should run on a native runner for the target platform. bun run build:all is intentionally a CI matrix reminder, not a local cross-compile command. Windows and Linux installer helpers are still on the roadmap.

Generated projects also include .github/workflows/release.yml, which builds artifacts on macOS, Windows, and Linux GitHub-hosted runners when run manually or when a GitHub Release is published.

Local development

bun install
bun run check
bun run test
bun run build

Refresh showcase assets

bunx playwright install chromium
bun run showcase:capture

This updates:

  • docs/screenshots/*.png
  • docs/assets/social-card.png
  • docs/showcase/manifest.json

Release checks

bun run release:check

Contributing

The contribution bar is straightforward: improve the generated app quality, packaging flow, or docs, and prove it with a reproducible test or sample scaffold.

Start here:

High-value contribution areas:

  • better site-specific icon heuristics
  • Windows installer helpers
  • Linux packaging helpers
  • auth-heavy web app presets
  • navigation controls and app menus
  • docs, gallery, and compatibility notes

Positioning

If you are searching for any of these, this project is in the right lane:

  • Pake alternative for Electrobun
  • turn website into desktop app with Bun
  • website to desktop app CLI
  • package URL as a macOS app
  • create DMG from a web app wrapper
  • Electrobun app generator
  • website wrapper for macOS, Windows, and Linux

License

MIT