Any public GitHub repo containing a tool folder package is installable by anyone with one command — there is nothing to register or publish beyond pushing the repo:
lesysbot install you/lesysbot-gpu-tools1. A single-tool repo#
The simplest shareable unit — the repo is the package:
lesysbot-gpu-temp/
├── README.md # frontmatter: name, description, version, platforms, requires
├── tool.py # the tools (@tool functions / CLITool instances)
├── _helpers.py # optional, ignored by the loader, importable by tool.py
└── requirements.txt # optional pip deps (printed, not auto-installed)README.md frontmatter is optional but recommended — it names and describes
the package without executing any code:
---
name: gpu-temp
description: Read NVIDIA GPU temperature
version: 1.0.0
platforms: [linux, windows]
requires: [nvidia-smi]
---name overrides the folder/repo name; version shows up in
lesysbot list/info. platforms/requires document the gating your
tool.py declares (the code is what's enforced).
2. A multi-tool repo#
Put each package in its own subdirectory:
lesysbot-tools/
├── gpu-temp/
│ ├── README.md
│ └── tool.py
└── net-check/
├── README.md
└── tool.pylesysbot install you/lesysbot-tools offers all of them; users can cherry-pick
with --only gpu-temp or install a single one directly via
you/lesysbot-tools/gpu-temp. Directories named tests/, docs/, or starting
with ./_ are ignored. A repo may also nest the package folders under a
tools/ directory (the official collections do) — the installer looks there
first when the root holds no packages.
3. Versioning & refs#
- Tag releases (
git tag v1.0.0) so users can pin:lesysbot install you/repo@v1.0.0. - The installer records the exact commit SHA it extracted in the user's lock file, whatever ref they asked for.
- Bump
version:in the README frontmatter with each release — it's whatlesysbot listdisplays.
4. Checklist before you share#
-
tool.pyimports only stdlib + declaredrequirements.txtdeps, and handlesImportErrorwith a friendly message. - Destructive actions use
confirm=on the@tooldecorator. -
platforms=[...]/requires=[...]declared where the tool isn't universal. - README frontmatter filled in (name, description, version).
- Test locally: copy the package into your own tools dir, or
lesysbot install you/repo@your-branch.
See Writing Tools for the tool code itself.