github jo-inc/camofox-browser v1.6.0
v1.6.0 — Plugin System, Persistence, VNC

latest releases: v1.13.0, v1.12.1, v1.12.0...
3 months ago

Camofox Browser v1.6.0

What's New

🔌 Plugin System

Camofox is now extensible. Features can be built as self-contained plugins with their own dependencies, config, routes, and tests — loaded automatically from plugins/.

The plugin system includes an event bus with async mutating hooks (emitAsync()) so plugins can intercept and transform 29 browser events across 7 categories (session creation, navigation, downloads, and more), shared auth so plugins inherit the server's API key, and per-plugin configuration in camofox.config.json. A plugin manager handles installation:

node scripts/plugin.js install ./my-plugin
node scripts/plugin.js remove my-plugin
node scripts/plugin.js list

Plugins auto-install their own npm dependencies on startup. Want to add custom auth flows, logging, content filtering, or site-specific logic? Write a plugin — no need to fork the server. Three built-in plugins ship with this release to show the pattern.

💾 Persistence Plugin (enabled by default)

Browser sessions now survive restarts. Cookies and localStorage are saved per-user and restored automatically on the next session. No more re-authenticating after every reboot. Profiles are stored at ~/.camofox/profiles/ by default — configure it in camofox.config.json:

{
  "plugins": {
    "persistence": {
      "profileDir": "/your/custom/path"
    }
  }
}

(Thanks @leoneparise #50 and @eddieoz #55 for the session management groundwork.)

🖥️ VNC Plugin (opt-in) (Thanks @leoneparise! #65)

Some sites just won't let you log in programmatically — CAPTCHAs, MFA flows, or bot detection that blocks headless browsers. The VNC plugin lets you see and control the browser visually in your web browser. Log in by hand like a normal user, and the persistence plugin automatically saves that authenticated session for headless use going forward.

Enable it in camofox.config.json:

{
  "plugins": {
    "vnc": { "enabled": true }
  }
}

Then open http://localhost:6080 to interact with the browser.

🎬 YouTube Plugin (enabled by default)

YouTube transcript extraction moved from the server core into plugins/youtube/. Functionally identical — just better organized, and a good reference for how to build your own plugin.

⌨️ Unified /type Endpoint (Thanks @LolipopJ! #66)

The /type endpoint now supports a keyboard mode for key presses, modifier keys, and shortcuts alongside the existing text input mode.

🐳 Multi-Arch Dockerfile (Thanks @company8! #51)

Docker builds now download Camoufox and yt-dlp at build time with proper architecture detection. ARM and x86 builds just work.

🐛 Fixes

  • Orphaned Camoufox temp files cleaned up on startup
  • CAMOFOX_PORT restored to 9377 (was broken in a previous refactor)
  • Async plugin hooks now properly awaited for mutating events
  • Plugin dependency installer handles both string and object config formats

📦 Dependencies

  • Security bumps via dependabot (#63)

Tests

347 tests passing (+44 new). Auth, plugin loading, persistence, VNC, and keyboard mode all covered.

Upgrading

Drop-in replacement for 1.5.x. No breaking changes, no configuration changes needed.

Thank You

Our biggest community release — 8 PRs from 6 contributors: @leoneparise (#50), @company8 (#51), @eddieoz (#55), @jecruz (#61), @mvanhorn (#62, #65), @LolipopJ (#66).

Don't miss a new camofox-browser release

NewReleases is sending notifications on new releases.