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.