Extensions¶
Extensions are folder-based packages discovered at runtime. They can declare:
- services your extension ships (out-of-process)
- optional UI tabs for
vros-toolsand/orvros-desktop(typically WebView-backed)
Manifest: extension.toml¶
[extension]
id = "hello"
name = "Hello Extension"
version = "0.1.0"
description = "Example extension with a Tools/Desktop tab"
[[services]]
name = "hello-service"
required = false
[[ui.tabs]]
host = "vros-tools"
id = "hello"
title = "Hello"
icon = "👋"
url = "http://127.0.0.1:3412/"
requires_service = "hello-service"
order = 100
[[ui.tabs]]
host = "vros-desktop"
id = "hello"
title = "Hello"
icon = "👋"
url = "http://127.0.0.1:3412/"
requires_service = "hello-service"
order = 100
Discovery Rules¶
Search roots (in order):
VROS_EXTENSIONS_DIR(path list;;on Windows,:elsewhere)<exe_dir>/extensions,<exe_dir>/plugins<cwd>/extensions,<cwd>/plugins
Accepted layouts inside a root:
<root>/<id>/extension.toml(recommended)<root>/*.toml(flat)
Packaging Layout¶
For the recommended layout:
Starter Template¶
Use sdk/hello-extension/ as a reference:
- Builds a service that connects with
catnet-sdk - Hosts a small local HTTP UI
- Exposes tabs in
vros-tools/vros-desktop