How To Get And Publish Libraries

(It wasn’t clear to me how to do this, so I wrote this. Updated for publishing)

XOD 0.16.0 added a way to share libraries.

Get A Library

  1. You need the exact, full-name of the library.
  2. Either you know it already (“Hey! Use my cool nkrkv/my-utils”), or visit, and look for a library. You need the two-part name, like dox/lcd-button-shield
  3. Run XOD (desktop)
  4. In File, choose “Add Library”
  5. A search box should appear and ask you to “type owner/library…” That’s the two-part name.
  6. As you type, it should search, and find it. (There seems to be a bug at the moment, pasting won’t work unless you also type something).
  7. Hit return, and it will install it. Look in your “libraries” list, just like the usual “xod/” libraries.

Publish A Library

You actually publish a project as a library.

  1. Develop your library as a regular project. The name of your project becomes the library name: yourloginname/projectname. E.g. my project “MIDI” will become “awgrover/MIDI”.
  2. Create patches as appropriate. A patch becomes a node that someone can use from your library. E.g., I made a “note” and “program-change” patch. Those become awgrover/MIDI/note and awgrover/MIDI/program-change.
  3. Document your patches nicely. Fill in the description for the patch and all the inputs and outputs. Check by dragging the patch into “main” and using “h” to turn on the side panel that “documents” a node. The descriptions will show up when someone browses your library at
  4. Delete your “main” patch. Instead, make “example” patches to show how to use your library nodes (is this a good idea?).
  5. Set the project-preferences, the description is your library description.

You need an “account”. That means a account

  1. Make an account if you don’t have one:
    1.1. Got to, click “login” and “sign up”.
    1.2. Actually, accounts are managed by, you could just go there.
    1.3. So, “forum”, “library”, “cloud compile” accounts are the same thing.
  2. Run XOD
  3. Login (inside of XOD-IDE). In the View menu, choose “Toggle Account Pane”. Now you get a place to type the username and password.
  4. You can “toggle” again to hide the pane after you log in.


  1. Choose Publish Library from the File menu
  2. It will only take a second
  3. See it on

Right now, your library is a project on your own system, so you probably want to make it into a library for yourself.

  1. Just Add Library!

Well publish an article on these topics very soon.

Meanwhile, you’ve described all absolutely correctly. And, ooops, indeed there is a bug on libname paste.

When you hit “File → Publish library” XOD intents to publish your current project as library. Technically there’s no difference between a project and a library. They are just a set of patches. That patches are going to be published as a new library.

I can not edit or delete the nodes easily when uploaded. I tried to edit some nodes after uploading but it’s too complicated for me and takes too much time. Now I have uploaded a bunch of scrap…

I updated my comment above. It’s a little weird publishing a project as a library. Then you can Add (your own) Library.

Thanks for crafting this outline. I’ll use it as a skeleton for the articles.

Yes, a little bit. Later we’ll allow create, add, remove local libraries next to the project. For now one could choose one of the following:

  • Threat the project a library, test it right within itself on xxx-example patches
  • Create a project A, symlink its directory into __lib__, create another project B for testing. Switch back to A only when publishing

As @awgrover has said, it’s not an optimal pattern to publish on every step of the library evolution. Publish is intended to be done only when a portion of functionality is completed. Nevertheless, we’ll add a feature to unlist/hide libraries you’ve published accidentally.