Tools

Tool developers

How to write a program that runs on a hub's execution hosts and appears in a member's browser, and how to get it from a registration form to a published resource page.

Where to start

Page What it covers
Prerequisites What a tool session is and the environment your tool runs in
The contribution process The nine states a tool passes through, from the developer's side
What you can publish as a tool The kinds of program a hub can run: Linux GUI, Jupyter, Sim2L, R/Shiny, Dash, web application
Tool repository structure The directory layout the hub expects, and starter invoke scripts
Launching tools with invoke scripts The invoke script, its options, and what the CMS hands it
Combining tools in one session Running several applications on one session desktop
Accessing outside computing resources Sending work from a session to a cluster with submit
Accessing your home directory sftp, WebDAV, and filexfer
Tool paths Environment variables and where a tool reads and writes files
Importing and exporting user files importfile and exportfile
Large data paths Storage for data too big for a home directory
Jupyter notebooks Publishing a notebook as a tool

The other two sides

  • Hub managers run the pipeline: Tools walks the states from the administrator's side and lists every field on the registration form.
  • Hub members run the result: Tools describes a tool session as the user sees it.
  • Hub administrators configure the platform: Tool administrators.

Background material

These recorded seminars are hosted on nanoHUB. They are the original source for much of this book and are still online, though they predate the Git and Jupyter options in the current registration form.

Rewritten and checked against 2.4-main @ e097e0236d on 2026-09-10.