Skip to content
ChatJS
Esc
↑↓navigate↵open⌘Jpreview
On this page

Registry Mirror

Preview canonical registry changes in the ChatJS reference app

Use registry-mirror when developing registry items in the ChatJS repository. It copies the selected registry source into apps/chat and keeps the running reference app up to date.

This workflow applies to the repository’s reference app. If you installed ChatJS into your own app, you own and edit your installed source.

Edit and preview

With the repository dependencies and reference-app environment configured, run from the repository root:

bun dev

The app starts after the initial mirror succeeds. Edit canonical source and save to update the preview:

Change Edit here
Plugin implementation packages/registry/src/plugins/<id>/src/
Plugin framework adapters packages/registry/src/plugins/<id>/adapters/
Tools and providers Their files under packages/registry/src/
Installed selection demoInstallation in packages/registry/installation.ts

Declare added files, renamed targets and removals in the item’s manifest or registry declaration. The mirror uses the real installer transforms and formatting.

Generated-file ownership

Installed registry files in apps/chat are disposable output. The next mirror run overwrites local edits, restores missing files and removes obsolete generated files. Make lasting changes in canonical source.

The path-only manifest at packages/registry/mirror-manifest.json records which files the mirror may clean up. App-owned configuration, credentials, dependency manifests, UI ordering and custom extensions remain yours to edit. Commit updated generated files and the manifest together.

Regenerate and check

For a single run without starting the app:

bun demo:sync
bun demo:check

The check reports drift without changing output. When preparing a scaffold update, also run bun template:sync and bun template:check.

If generation fails, existing output stays in place. The initial app launch waits, or an already running preview is marked stale. Fix the source and save to retry. File publication is not atomic across the whole installation.

For module internals, shutdown behavior and runner comparisons, see packages/registry/DEVELOPMENT.md in the repository. Use Building and Testing to verify an item before distribution.

The mirror and Registry Validation reuse the same ChatJS assembly module. The mirror publishes the demo snapshot while validation checks a consumer snapshot. Neither maintains a separate list of plugin files.

Last updated on Nov 5, 2026

Was this page helpful?