[ Documentation ]
One Plugin

One Plugin

rnxsim/vite exports rnxPlugin(), an optional One plugin that serves the rnx shell at /__soot on the dev server you already run.

It does not change your app code or replace your normal One workflow. It just makes a stable rnx URL available next to the app you already start.

Usage

import { defineConfig } from 'vite'
import { rnxPlugin } from 'rnxsim/vite'
export default defineConfig({
plugins: [
// your normal One/Vite plugins
rnxPlugin({ open: { appName: 'My App' } }),
],
})

Options

rnxPlugin({
bundleUrl?: string // override the default One metro bundle URL
prefix?: string // defaults to '/__soot'
enabled?: boolean // defaults to true
open?: boolean | { appName: string } // open a named Electron window (defaults to false)
})

Notes

  • +
    use this when you want http://localhost:<port>/__soot/ to exist whenever the normal One dev server is up
  • +
    open: { appName: 'My App' } opens the app directly in its own Electron window and keeps that window named in Mission Control and the Window menu
  • +
    the canonical project root is the window identity, so two projects can use the same display name without sharing or reloading each other’s window
  • +
    open: true remains supported and uses package.json#name; pass appName when the package name is not the user-facing app name
  • +
    run rnx desktop install once before enabling open
  • +
    Electron is an optional 108.6 MiB download on Apple Silicon. Keep the default browser workflow for first run, then enable open as a desktop upgrade
  • +
    set RNX_NO_OPEN=1 for headless development servers, CI, Detox, Maestro, or iOS-only work
  • +
    if you do not want a plugin at all, you can still run rnx open <port> against the same app