How to publish a extension to community in isaac sim

Important: Isaac Sim support

Note: For Isaac Sim support, the community is gradually transitioning from this forum to the Isaac Sim GitHub repository so that questions and issues can be tracked, searched, and resolved more efficiently in one place. Whenever possible, please create a GitHub Discussion or Issue there instead of starting a new forum topic.

Note: For any Isaac Lab topics, please submit your topic to its GitHub repo ( GitHub - isaac-sim/IsaacLab: Unified framework for robot learning built on NVIDIA Isaac Sim · GitHub ) following the instructions provided on Isaac Lab’s Contributing Guidelines ( Contribution Guidelines — Isaac Lab Documentation ).

Please provide all relevant details below before submitting your post. This will help the community provide more accurate and timely assistance. After submitting, you can check the appropriate boxes. Remember, you can always edit your post later to include additional information if needed.

6.0.0
5.1.0
5.0.0
4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 24.04
Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

Topic Description

Extension publishing

Detailed Description

I am trying to publish my custom extension to all community, but after running repo.bat(with specifying the registry to be my local filesystem), i got a directory like this:

my-extension-registry/
└─ v2/
├─ registry.gz
├─ summaries.gz
├─ packages/
├─ archives/
└─ resources/

i’m wondering how to release this outputs in my github release and how to make my extension seen by community in isaac sim’s third party extension window?

You’re in good shape – repo.bat built a valid Kit v2 extension registry. Now you need two more things: host it somewhere publicly accessible, and register that URL in Isaac Sim.


Step 1: Host the registry over HTTPS

The Kit extension manager fetches the registry index (registry.gz, summaries.gz) over HTTP/HTTPS. The easiest no-cost option is GitHub Pages:

  1. In your extension repo, create a gh-pages branch.
  2. Push the entire my-extension-registry/ output there (or just its v2/ subdirectory as the root, depending on your preference).
  3. Enable GitHub Pages in the repo settings, pointing at that branch.

Your registry URL will be something like:

https://<your-username>.github.io/<repo-name>/v2

(adjust the path to match where registry.gz lives on your Pages site)

Why not GitHub Releases? Release assets redirect to S3, which breaks the Kit registry loader’s directory-based index fetch. GitHub Pages serves files directly – much simpler.

Any other static host works too: Cloudflare Pages, S3, Netlify, etc.


Step 2: Tag your extension as a Community extension

In your extension’s config/extension.toml, add exchange = true to the [package] section:

[package]
title = "My Extension"
version = "1.0.0"
exchange = true   # <-- this makes it show under the "Community" tab

Without this, your extension will still be installable from the registry, but it will appear as “Community - Unverified” rather than showing prominently in the Community tab.


Step 3: Add the registry URL to Isaac Sim

Via the UI (easiest for end users):

  1. Open Isaac Sim
  2. Go to Window > Extensions
  3. Click the hamburger menu (top-right of the Extensions window) → Registry Settings
  4. Add a new entry with your registry URL:
    • Name: my-extension-registry (or anything descriptive)
    • URL: https://<your-username>.github.io/<repo-name>/v2
  5. Click Refresh

Your extension should now appear in the THIRD PARTY (or Community) tab.

Via settings (for advanced users / CI):

Add this to your user.toml or app config:

[persistent.exts."omni.kit.registry.nucleus".userRegistries]
'++' = [
    { name = "my-extension-registry", url = "https://<your-username>.github.io/<repo-name>/v2" }
]

Summary

Step What to do
Build repo.bat publish (already done)
Host Push v2/ output to GitHub Pages
Tag Add exchange = true to extension.toml
Register Add the HTTPS URL under Window > Extensions > Registry Settings

Once users add your registry URL, your extension will appear in the THIRD PARTY tab of the Extensions Manager and can be enabled with one click.

Hope that helps – let me know if you run into any issues with the GitHub Pages setup or the registry URL format!

Hey, thanks for your help! Now i know how to add registry to make kit extension manager to fetch my extension.

Also i’ve observed that there already are 195 third party extension in my isaac sim could be found(without adding any registry) like this:

i read source code and the extension manager seems to find these extensions in two registry configured in kit-core.json: kit/prod/default and kit/prod/sdk.

And i also found some extensions like mjcf-importer-extension can be moved into isaac sim official repositry:

Is there any way to publish my extension like them to be found without add any additional registry or even collected by your official repositry?

Thanks!

Hello, I noticed that you closed my new topic and chose to continue the discussion here. I really want to share my work with the community, and I’m sorry if my new topic consumed public resources. I just wanted to know how to publish a plugin to the community, just like others have done.

Hey @znrwork – no need to apologize, this is a great question and worth getting right.

There is actually a self-service path to get your extension discoverable without users
having to add any registry URL manually. It just isn’t the NVIDIA-internal kit/prod/default
registry you saw in kit-core.json – it’s a separate community registry maintained
by the Kit team.

The Kit Community Registry

The official community registry is documented here:
Kit SDK Registry Reference – Community Extensions

Registry URL: https://dw290v42wisod.cloudfront.net/exts/kit/community

Publishing is fully self-service – no NVIDIA review, no partner program. The process is:

Step 1: Add a GitHub topic to your repo

On your public GitHub repository, click the gear icon next to “About” and add the topic:
omniverse-kit-extension

Step 2: Create a GitHub release

Tag your code (e.g. v1.0.0) and publish a GitHub release. The release must include
your built extension package.

Step 3: Wait ~24 hours

A crawler runs periodically and will automatically pick up your extension and add it
to the community registry. No pull request or approval needed.

What users need to do (one-time setup)

The community registry is not pre-configured in Isaac Sim’s default kit-core.json,
so users still need to add it once. Via the Extensions window (Window > Extensions >
options button > Settings > Extension Registries):

  • Name: kit/community
  • URL: https://dw290v42wisod.cloudfront.net/exts/kit/community

Or via config:

[persistent.exts."omni.kit.registry.nucleus".userRegistries]
'++' = [
    { name = "kit/community", url = "https://dw290v42wisod.cloudfront.net/exts/kit/community" }
]

After adding the registry, your extension will appear in the THIRD PARTY tab
(under Community – Unverified) and users can enable it with one click.

The 195 extensions you see (5.x only)

Those come from the old Nucleus-based Exchange registry
(omniverse://kit-extensions.ov.nvidia.com/exts/kit/default) that ships in Isaac Sim 5.x.
Getting listed there does require going through NVIDIA’s partner program – there is no
self-service path for that registry. It is also absent from Isaac Sim 6.0.0’s default
config, so the community registry approach is the recommended path going forward.

Thx!That’s what i want!