Local Web Viewer

silo.local-web-viewer

Embed local dev servers and file:// pages as dock panels alongside your code.

webviewproductivity

Local Web Viewer

A Silo extension that embeds local web content โ€” dev servers, file:// HTML, and internal tools โ€” as dock panels alongside your code.

What it's for

The Local Web Viewer is designed for localhost browsing. Use it to keep your running dev server, component storybook, local docs, or file:// HTML pages in view without leaving Silo. Multiple panels can be open simultaneously, each pinned to a different URL.

It is not a general-purpose browser. Most production websites block iframe embedding via X-Frame-Options or CSP frame-ancestors, and those will show a "doesn't allow embedding" overlay instead of loading. The panel will offer to open blocked URLs in your default browser instead.

Known limitations

  • No back/forward navigation. SPA client-side routing (React Router, Vue Router, etc.) does not trigger iframe load events, so the panel cannot track in-frame navigation. A future proposal (RFC 0011) outlines how Tauri's webview init script could solve this generically.
  • Remote sites that block iframes show a blocked overlay. This is expected โ€” the panel probes X-Frame-Options and CSP headers via a server-side HEAD request before attempting to embed.
  • SPA back/forward requires either a future ctx.webview SDK surface or the loaded app emitting window.parent.postMessage events on route changes.

Uses ctx.net

This extension uses ctx.net.fetchHeaders() โ€” a server-side HTTP client exposed by Silo that bypasses browser CORS โ€” to read X-Frame-Options and Content-Security-Policy response headers before loading a URL. This avoids the poor UX of letting a blocked iframe load silently.

Installing

From a GitHub Release

  1. Go to Releases.
  2. Right-click the .tgz asset โ†’ Copy link address.
  3. In Silo: Settings โ†’ Extensions, paste the URL and click Install.

From source

git clone https://github.com/silo-code/silo-extensions
cd silo-extensions/local-web-viewer
npm install
npm run build

Then in Silo: Settings โ†’ Extensions โ†’ Install from folder, point at this directory.

Opening a panel

  • Via the menu: click the + button in the dock area and choose New Local Web Viewer.
  • Via the command palette: run Local Web Viewer: Open.

Type a URL in the address bar and press Enter. http:// is prepended automatically if you omit the scheme.

Building

npm install
npm run build        # one-shot
npm run build:watch  # watch mode

Output goes to dist/index.js. The bundle externalizes react, react/jsx-runtime, and @silo-code/sdk โ€” the Silo host supplies those at load time.

Versions

VersionPublishedPermissionsBuildsha256
v0.1.4 2026-07-12 webview โ€” fa6fe8327028โ€ฆ
v0.1.3 2026-06-26 none โ€” 07157b2f43b0โ€ฆ
v0.1.2 2026-06-25 none โ€” 2f474590d3a4โ€ฆ
v0.1.1 2026-06-21 none โ€” 247063657f2eโ€ฆ