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::
To 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.
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.
API Reference
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.json
none
combined catalog object with both ordinary packages and robot deployments
GET
/api/v1/packages.json
none
ordinary primitive/service/skill packages only
GET
/api/v1/robots.json
none
robot deployment entries only
GET
/api/v1/search.json
none
plain combined catalog array, intended for client-side search/filter indexes
GET
/api/v1/package/<package-name>.json
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
deployment_status
string
robot dependency health: ok or warning
deployment_warnings
object[]
robot manifest or dependency warnings with section, name, source, and reason
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
import urllib.request, json
base = 'https://syswonder.github.io/robonix-package-catalog/api/v1'
catalog = json.load(urllib.request.urlopen(f'{base}/packages.json'))
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']}.json"))
GET /api/v1/robots.json returns robot deployments under a top-level robots[] field.
GET /api/v1/search.json returns the combined catalog entries as a plain array.
GET /api/v1/package/<package-name>.json returns one package object.
Package Manifest
Each package repository must provide a root-level package_manifest.yaml.
The catalog builder reads these fields from that file:
package.name
package.version
package.description
package.license
package.tags
package.maintainers
capabilities[].name
The package.name in package_manifest.yaml must exactly match the name in
catalog.yaml.
Robot Deployment Manifest
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:
A robot deployment repository may add assets/robot.jpg. When present,
the catalog exposes its raw URL as preview_image_url, then generates
380 px and 720 px WebP previews for responsive robot list cards. 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. Each
dependency includes resolution (catalog, robonix_source,
robonix_deploy, robot_repository, or unresolved) and
resolution_warning. A source is
portable when it resolves to a cataloged repository, uses the exact
${ROBONIX_SOURCE_PATH}/... source-tree root, uses the exact
${ROBONIX_DEPLOY_DIR}/... boot-deployment root, or stays inside the
robot repository through a relative path. Unresolved sources produce CI
warnings and a report without failing catalog generation.
Generated Outputs
CI validates catalog.yaml, fetches every package manifest through the GitHub
API, and generates:
generated/api/v1/packages.json
generated/api/v1/robots.json
generated/api/v1/catalog.json
generated/api/v1/search.json
generated/api/v1/package/<package-name>.json
public/index.html
public/packages/index.html
public/packages/<package-name>/index.html
public/robots/index.html
public/robots/<robot-name>/index.html
public/api/...
For compatibility, CI also keeps extensionless /api/v1/... resources,
but browser-facing links and new integrations should use the .json paths above.
The generated commit uses [skip ci]; normal CI only triggers from
catalog.yaml, the builder script, the workflow, or manual dispatch.
Robonix Package Catalog
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 underpackages:; whole-robot deploy repositories go underrobots::To submit a community package or robot deployment, add one
name+repoentry to the correct section incatalog.yaml. Do not edit generated files by hand.Website
GET https://syswonder.github.io/robonix-package-catalog/api/v1/catalog.jsonGET https://syswonder.github.io/robonix-package-catalog/api/v1/packages.jsonGET https://syswonder.github.io/robonix-package-catalog/api/v1/robots.jsonGET https://syswonder.github.io/robonix-package-catalog/api/v1/search.jsonGET https://syswonder.github.io/robonix-package-catalog/api/v1/package/<package-name>.jsonhttps://syswonder.github.io/robonix-package-catalog/packages/<package-name>/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.
API Reference
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.GET/api/v1/catalog.jsonGET/api/v1/packages.jsonGET/api/v1/robots.jsonGET/api/v1/search.jsonGET/api/v1/package/<package-name>.jsonpackage-name: exact catalogname, URL-encoded404Package object fields:
namerobonix.service.mappingversionpackage_manifest.yamldescriptionlicenseNOASSERTIONtagsmaintainersName <email@domain>formatreporepo_namedefault_branchkindprimitive,service,skill, orrobotinferred from catalog namecatalog_typepackagefor ordinary packages,robotfor whole-robot deploymentsmanifestpackage_manifest.yamlorrobonix_manifest.yamlcapabilitiesdeploy_dependenciesrobonix_manifest.yamldeployment_statusokorwarningdeployment_warningsreadme_urlpreview_image_urlassets/robot.jpg; empty when absentJavaScript
curl
Python
API schema
GET /api/v1/packages.jsonreturns:GET /api/v1/robots.jsonreturns robot deployments under a top-levelrobots[]field.GET /api/v1/search.jsonreturns the combined catalog entries as a plain array.GET /api/v1/package/<package-name>.jsonreturns one package object.Package Manifest
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[].nameThe
package.nameinpackage_manifest.yamlmust exactly match the name incatalog.yaml.Robot Deployment Manifest
Robot deployment repositories are indexed from root-level
robonix_manifest.yaml. They do not need a separatepackage_manifest.yaml. The catalog metadata lives under a top-levelcatalog:block with the same fields as package metadata:A robot deployment repository may add
assets/robot.jpg. When present, the catalog exposes its raw URL aspreview_image_url, then generates 380 px and 720 px WebP previews for responsive robot list cards. Repositories without the file keep the same metadata and layout without an image placeholder.The builder also parses
primitive:,service:, andskill:entries fromrobonix_manifest.yamlintodeploy_dependencies[], linking dependencies back to cataloged ordinary packages when their repository is known. Each dependency includesresolution(catalog,robonix_source,robonix_deploy,robot_repository, orunresolved) andresolution_warning. A source is portable when it resolves to a cataloged repository, uses the exact${ROBONIX_SOURCE_PATH}/...source-tree root, uses the exact${ROBONIX_DEPLOY_DIR}/...boot-deployment root, or stays inside the robot repository through a relative path. Unresolved sources produce CI warnings and a report without failing catalog generation.Generated Outputs
CI validates
catalog.yaml, fetches every package manifest through the GitHub API, and generates:generated/api/v1/packages.jsongenerated/api/v1/robots.jsongenerated/api/v1/catalog.jsongenerated/api/v1/search.jsongenerated/api/v1/package/<package-name>.jsonpublic/index.htmlpublic/packages/index.htmlpublic/packages/<package-name>/index.htmlpublic/robots/index.htmlpublic/robots/<robot-name>/index.htmlpublic/api/...For compatibility, CI also keeps extensionless
/api/v1/...resources, but browser-facing links and new integrations should use the.jsonpaths above.The generated commit uses
[skip ci]; normal CI only triggers fromcatalog.yaml, the builder script, the workflow, or manual dispatch.Generated on
2026-08-01T19:35:22+00:00.Packages
robonix.primitive.agilex.piper.arm0.1.0primitiverobonix.primitive.agilex.piper.description0.1.0primitiverobonix.primitive.agilex.piper.handeye0.1.0primitiverobonix.primitive.agilex.ranger_mini_v3.chassis0.1.0primitiverobonix.primitive.audio.alsa0.1.0primitiverobonix.primitive.audio.client_bridge0.1.0primitiverobonix.primitive.beingbeyond.d1.arm0.1.0primitiverobonix.primitive.beingbeyond.d1.camera0.1.0primitiverobonix.primitive.beingbeyond.d1.hand0.1.0primitiverobonix.primitive.deep_robotics.lite3.description0.1.0primitiverobonix.primitive.deep_robotics.lite3.quadruped0.1.0primitiverobonix.primitive.intel.realsense_d435i.camera0.1.0primitiverobonix.primitive.livox.mid360.imu0.1.0primitiverobonix.primitive.livox.mid360.lidar0.1.0primitiverobonix.primitive.orbbec.dabai_dcw.camera0.1.0primitiverobonix.primitive.orbbec.gemini330.camera0.1.1primitiverobonix.primitive.robot_description0.1.0primitiverobonix.primitive.syswonder.minecraft_bot0.1.0primitiverobonix.robot.agilex.dual_piper0.1.0robotrobonix.robot.agilex.ranger_mini_v30.2.0robotrobonix.robot.beingbeyond.d10.1.0robotrobonix.robot.deep_robotics.lite30.2.0robotrobonix.robot.syswonder.minecraft_bot0.1.0robotrobonix.robot.unitree.go20.1.0robotrobonix.robot.wheeltec.r5500.1.0robotrobonix.robot.wowrobo.roboarm0.1.0robotrobonix.service.grasp_pose0.1.0servicerobonix.service.mapping0.5.0servicerobonix.service.memory.action_retrieval0.1.0servicerobonix.service.minecraft_costmap0.1.0servicerobonix.service.minecraft_navigation0.1.0servicerobonix.service.navigation0.1.0servicerobonix.service.navigation.vln0.4.1servicerobonix.service.object_detect0.1.0servicerobonix.service.pcld2lscan0.1.0servicerobonix.service.piper_moveit0.1.0servicerobonix.service.roboarm.ik0.1.0servicerobonix.service.vla.action_decision0.1.0servicerobonix.skill.dual_piper_initialize0.1.0skillrobonix.skill.dual_piper_transfer0.1.0skillrobonix.skill.explore0.1.0skillrobonix.skill.hand_gesture0.1.0skillrobonix.skill.minecraft_explore0.1.0skillrobonix.skill.openvla_oft_accel0.2.0skillrobonix.skill.pick.vertical_grasp0.1.0skillrobonix.skill.vertical_grasp_object0.1.0skillrobonix.skill.vla.openvla0.2.0skill