This repository is the Robonix community package catalog.
Package source and robot deployment manifests stay in their own GitHub
repositories. The only manual catalog input is the root-level
catalog.yaml. Ordinary packages go under packages:;
whole-robot deploy repositories go under robots::
packages:
- name: robonix.service.mapping
repo: https://github.com/syswonder/service-map-rbnx
robots:
- name: robonix.robot.agilex.ranger_mini_v3
repo: https://github.com/syswonder/robot-agilex-ranger_mini_v3To submit a community package or robot deployment, add one name + repo
entry to the correct section in catalog.yaml. Do not edit generated files by hand.
- Homepage: https://syswonder.github.io/robonix-package-catalog/
- Package page: https://syswonder.github.io/robonix-package-catalog/packages/
- Robot deployment page: https://syswonder.github.io/robonix-package-catalog/robots/
- Full catalog API:
GET https://syswonder.github.io/robonix-package-catalog/api/v1/catalog - Package list API:
GET https://syswonder.github.io/robonix-package-catalog/api/v1/packages - Robot deployment API:
GET https://syswonder.github.io/robonix-package-catalog/api/v1/robots - Search index API:
GET https://syswonder.github.io/robonix-package-catalog/api/v1/search - Package detail API:
GET https://syswonder.github.io/robonix-package-catalog/api/v1/package/<package-name> - Package detail page:
https://syswonder.github.io/robonix-package-catalog/packages/<package-name>/ - Robot detail page:
https://syswonder.github.io/robonix-package-catalog/robots/<robot-name>/
The catalog is hosted on GitHub Pages, so these are static JSON resources with stable API-style paths. Clients should treat the shape below as the v1 contract.
All endpoints are static JSON resources served from GitHub Pages. Use
GET; no API key is required. There are no server-side query parameters
because Pages is static. Filter by name, kind, tag, maintainer, or
capability on the client using the returned JSON.
| Method | Path | Parameters | Response |
|---|---|---|---|
GET |
/api/v1/catalog |
none | combined catalog object with both ordinary packages and robot deployments |
GET |
/api/v1/packages |
none | ordinary primitive/service/skill packages only |
GET |
/api/v1/robots |
none | robot deployment entries only |
GET |
/api/v1/search |
none | plain combined catalog array, intended for client-side search/filter indexes |
GET |
/api/v1/package/<package-name> |
package-name: exact catalog name, URL-encoded |
one ordinary package or robot deployment object; missing entries return GitHub Pages 404 |
Package object fields:
| Field | Type | Meaning |
|---|---|---|
name |
string | canonical package name, e.g. robonix.service.mapping |
version |
string | package version from package_manifest.yaml |
description |
string | short package description |
license |
string | SPDX license identifier; legacy entries without one are exposed as NOASSERTION |
tags |
string[] | UI/search tags |
maintainers |
string[] | maintainers in Name <email@domain> format |
repo |
string | GitHub repository URL |
repo_name |
string | repository name without owner |
default_branch |
string | package repository default branch used for indexing |
kind |
string | primitive, service, skill, or robot inferred from catalog name |
catalog_type |
string | package for ordinary packages, robot for whole-robot deployments |
manifest |
string | source manifest path, usually package_manifest.yaml or robonix_manifest.yaml |
capabilities |
string[] | declared Robonix contract IDs |
deploy_dependencies |
object[] | robot deployment dependencies parsed from robonix_manifest.yaml |
readme_url |
string | GitHub README URL for the indexed branch |
preview_image_url |
string | optional robot preview discovered at assets/robot.jpg; empty when absent |
const base = 'https://syswonder.github.io/robonix-package-catalog/api/v1';
const res = await fetch(`${base}/packages`);
const catalog = await res.json();
const mapping = catalog.packages.find(p => p.name === 'robonix.service.mapping');
const detail = await fetch(`${base}/package/${encodeURIComponent(mapping.name)}`)
.then(r => r.json());curl -s https://syswonder.github.io/robonix-package-catalog/api/v1/packages
curl -s https://syswonder.github.io/robonix-package-catalog/api/v1/package/robonix.service.mappingimport urllib.request, json
base = 'https://syswonder.github.io/robonix-package-catalog/api/v1'
catalog = json.load(urllib.request.urlopen(f'{base}/packages'))
mapping = next(p for p in catalog['packages'] if p['name'] == 'robonix.service.mapping')
detail = json.load(urllib.request.urlopen(f"{base}/package/{mapping['name']}"))GET /api/v1/packages returns:
{
"api_version": "1",
"generated_at": "2026-07-06T12:00:00+00:00",
"packages": [
{
"name": "robonix.service.mapping",
"version": "0.4.0",
"description": "Map and SLAM service package for Robonix.",
"license": "MulanPSL-2.0",
"tags": ["service", "mapping", "slam"],
"maintainers": ["wheatfox <wheatfox17@icloud.com>"],
"repo": "https://github.com/syswonder/service-map-rbnx",
"repo_name": "service-map-rbnx",
"default_branch": "main",
"kind": "service",
"capabilities": ["robonix/service/map/save_map"],
"readme_url": "https://github.com/syswonder/service-map-rbnx/blob/main/README.md"
}
]
}GET /api/v1/robots returns robot deployments under a top-level robots[] field.
GET /api/v1/search returns the combined catalog entries as a plain array.
GET /api/v1/package/<package-name> returns one package object.
Each package repository must provide a root-level package_manifest.yaml.
The catalog builder reads these fields from that file:
package.namepackage.versionpackage.descriptionpackage.licensepackage.tagspackage.maintainerscapabilities[].name
The package.name in package_manifest.yaml must exactly match the name in
catalog.yaml.
Robot deployment repositories are indexed from root-level robonix_manifest.yaml.
They do not need a separate package_manifest.yaml. The catalog metadata lives
under a top-level catalog: block with the same fields as package metadata:
manifestVersion: 1
name: robonix-ranger-mini-deploy
catalog:
name: robonix.robot.agilex.ranger_mini_v3
version: 0.1.0
description: Robonix deploy manifest for the AgileX Ranger Mini v3 robot.
license: Apache-2.0
tags: [robot, deploy, agilex, ranger_mini_v3]
maintainers:
- wheatfox <wheatfox17@icloud.com>A robot deployment repository may add assets/robot.jpg. When present,
the catalog exposes its raw URL as preview_image_url and displays the
photo in the robot deployment list. Repositories without the file keep
the same metadata and layout without an image placeholder.
The builder also parses primitive:, service:, and skill: entries from
robonix_manifest.yaml into deploy_dependencies[], linking dependencies
back to cataloged ordinary packages when their repository is known.
CI validates catalog.yaml, fetches every package manifest through the GitHub
API, and generates:
generated/api/v1/packagesgenerated/api/v1/robotsgenerated/api/v1/cataloggenerated/api/v1/searchgenerated/api/v1/package/<package-name>public/index.htmlpublic/packages/index.htmlpublic/packages/<package-name>/index.htmlpublic/robots/index.htmlpublic/robots/<robot-name>/index.htmlpublic/api/...
For compatibility, CI also writes .json aliases under api/, but new
integrations should use the /api/v1/... paths above.
The generated commit uses [skip ci]; normal CI only triggers from
catalog.yaml, the builder script, the workflow, or manual dispatch.
Generated on 2026-07-15T07:28:56+00:00.
| Name | Version | Kind | Maintainer | Tags | Repository |
|---|---|---|---|---|---|
robonix.primitive.agilex.piper.arm |
0.1.0 |
primitive |
lhw2002426 lhw2002426@users.noreply.github.com | primitive, arm, agilex, piper, ros2 | repo |
robonix.primitive.agilex.piper.description |
0.1.0 |
primitive |
lhw2002426 lhw2002426@users.noreply.github.com | primitive, description, urdf, agilex, piper, ros2 | repo |
robonix.primitive.agilex.piper.handeye |
0.1.0 |
primitive |
lhw2002426 lhw2002426@users.noreply.github.com | primitive, calibration, handeye, easy_handeye2, agilex, piper, ros2 | repo |
robonix.primitive.agilex.ranger_mini_v3.chassis |
0.1.0 |
primitive |
wheatfox wheatfox17@icloud.com | primitive, chassis, agilex, ranger_mini_v3, ros2 | repo |
robonix.primitive.intel.realsense_d435i.camera |
0.1.0 |
primitive |
wheatfox wheatfox17@icloud.com | primitive, camera, intel, realsense_d435i, rgbd | repo |
robonix.primitive.livox.mid360.imu |
0.1.0 |
primitive |
wheatfox wheatfox17@icloud.com | primitive, imu, livox, mid360 | repo |
robonix.primitive.livox.mid360.lidar |
0.1.0 |
primitive |
wheatfox wheatfox17@icloud.com | primitive, lidar, livox, mid360, pointcloud | repo |
robonix.primitive.orbbec.dabai_dcw.camera |
0.1.0 |
primitive |
lhw2002426 lhw2002426@users.noreply.github.com | primitive, camera, orbbec, dabai_dcw, rgbd, ros2 | repo |
robonix.robot.agilex.piper_grasp |
0.1.0 |
robot |
lhw2002426 lhw2002426@users.noreply.github.com | robot, deploy, agilex, piper_grasp, camera, manipulation, perception, grasp | repo |
robonix.robot.agilex.ranger_mini_v3 |
0.2.0 |
robot |
wheatfox wheatfox17@icloud.com | robot, deploy, agilex, ranger_mini_v3, jetson, lidar, rgbd, scene, mapping, navigation | repo |
robonix.robot.wheeltec.r550 |
0.1.0 |
robot |
wheatfox wheatfox17@icloud.com | robot, deploy, wheeltec, r550, lidar, camera, navigation, mapping | repo |
robonix.service.grasp_pose |
0.1.0 |
service |
lhw2002426 lhw2002426@users.noreply.github.com | service, perception, grasp_pose, grasp, ros2 | repo |
robonix.service.mapping |
0.5.0 |
service |
wheatfox wheatfox17@icloud.com | service, mapping, slam, rtabmap, ros2 | repo |
robonix.service.navigation |
0.1.0 |
service |
wheatfox wheatfox17@icloud.com | service, navigation, nav2, ros2 | repo |
robonix.service.object_detect |
0.1.0 |
service |
lhw2002426 lhw2002426@users.noreply.github.com | service, perception, object_detect, llm, vlm, ros2 | repo |
robonix.service.piper_moveit |
0.1.0 |
service |
lhw2002426 lhw2002426@users.noreply.github.com | service, manipulation, moveit, agilex, piper, ros2 | repo |
robonix.service.roboarm.ik |
0.1.0 |
service |
lhw2002426 lhw2002426@users.noreply.github.com | service, manipulation, ik, agilex, piper, ros2 | repo |
robonix.skill.explore |
0.1.0 |
skill |
wheatfox wheatfox17@icloud.com | skill, explore, frontier, navigation, mapping | repo |
robonix.skill.pick.vertical_grasp |
0.1.0 |
skill |
lhw2002426 lhw2002426@users.noreply.github.com | skill, pick, manipulation, grasp | repo |
robonix.skill.vla.openvla |
0.2.0 |
skill |
lhw2002426 lhw2002426@users.noreply.github.com | skill, vla, manipulation, llm | repo |