Skip to content

Importing and exporting transforms

Custom Local JavaScript transforms can be exported as .nibit-transform files. A bundle can contain one transform or many transforms.

  • Local Pro can import/export transform bundles in the Android app.
  • Cloud Pro can import/export transform bundles in Android and the web dashboard, and sync Local JavaScript transforms across devices.
  • Free users can use built-in local transforms, but cannot import, export, create, or run custom Local JavaScript transforms.

Transform bundles include:

  • name
  • description
  • execution kind (LOCAL_JS)
  • JavaScript source
  • optional forked_from metadata

Transform bundles do not include:

  • execution logs
  • raw transform input or output
  • bytecode caches
  • execution count or last-run timestamps
  • AI provider credentials or settings

Nibit uses one bundle-capable schema, even for a single transform:

{
"schema_version": 1,
"kind": "nibit_transform_bundle",
"transforms": [
{
"name": "Normalize whitespace",
"description": "Trim and collapse spaces",
"execution_kind": "LOCAL_JS",
"source": "async function transform(input, nibit) {\n return input.replace(/\\s+/g, ' ').trim()\n}\n",
"forked_from": null
}
]
}

Nibit only treats a JSON file as a transform bundle when kind is exactly "nibit_transform_bundle".

Open the Nibit app, go to Settings, and choose Export transforms. Save the generated .nibit-transform file somewhere safe.

Use the normal import picker and select a .nibit-transform file. Nibit validates the file, imports valid Local JavaScript transforms, and reports any skipped transforms.

Cloud Pro users can open Settings → Export Transforms in the web dashboard and download nibit-transforms.nibit-transform.

Cloud Pro users can use the dashboard import card and select a .nibit-transform file. The preview shows how many local transforms will be imported and warns about duplicate names.

.nibit-transform imports create new transform rows. If a transform with the same name already exists, Nibit allows the duplicate instead of overwriting your existing transform.

Full Nibit backup restore is different: backups preserve cloud identity when present so a restored cloud transform continues syncing as the same transform instead of creating a duplicate on the next sync.

A transform is skipped if:

  • it is not LOCAL_JS
  • its name is blank
  • its JavaScript source is blank
  • its source is larger than 128 KB

If a bundle itself has an unsupported schema version, unsupported kind, or invalid JSON, Nibit rejects the file before import. An empty bundle is valid and imports as a no-op.