Skip to content
Ziv-Ink edited this page Aug 1, 2026 · 5 revisions

Supernote Module Generator

Add Kotlin/Java, C/C++ through JNI, or experimental synchronous JSI code to an existing Supernote React Native plugin. The generator creates a local package, React Native bridge, Android build wiring, TypeScript declarations, and autolinking; you write the function your plugin needs.

import Math from 'local-math';

const answer = await Math.add(20, 22);

The generated package lives below local_modules/ inside the parent plugin. It is not a separate Supernote plugin.

Start here

  1. Choose a module if you are unsure whether to use Kotlin/Java, JNI, or JSI.
  2. Follow Getting Started to generate, implement, package, install, and test an add(left, right) function.
  3. Keep Troubleshooting open when the build or device does not behave as expected.

Documentation by task

Goal Page
Complete the first device-tested module workflow Getting Started
Select the correct call and implementation model Choosing a Module
Write Kotlin or Java exports Kotlin and Java Modules
Write C or C++ behind JNI JNI Modules
Evaluate synchronous JSI and its host limitations JSI Modules
Check types, imports, calls, and terminology Exports and JavaScript API
Validate, update, recover, or remove modules Managing Modules
Use subcommands, options, plain mode, or JSON CLI and Automation
Check tools, platforms, devices, and runtime support Compatibility
Diagnose a symptom Troubleshooting
Understand generated packages and ownership How Modules Work

Documentation boundary

This Wiki is the canonical plugin-developer documentation. Generated module READMEs add package-specific names and paths but do not replace these guides. Documentation for changing the Python generator lives in CONTRIBUTING.md, and release operations remain in the repository's maintainers/ directory.

The Wiki follows the current default branch and may describe unreleased behavior. Check the installed generator with supernote-module --version and use the repository changelog for release-specific changes.

Clone this wiki locally