TopoThe Topo extension makes it easy for application developers to deploy containers to Arm-based edge devices running Linux, including systems with additional remote processors such as Cortex-M or Cortex-R. Features include:
Who is this for?You just got a board and want to see what it can do. Topo scans your target and finds Topo Projects that showcase its capabilities, from running an LLM to comparing SIMD performance. Each one deploys in minutes and is a real Compose project you can learn from or build on. You want a faster edit-build-deploy loop. Build on your laptop and deploy to a Pi or Jetson over SSH. Rebuilds are incremental, so after the first deploy you're often iterating in seconds. You have a heterogeneous device and want to use all of it. Your board has remote processors like a Cortex-M that normally need separate toolchains and manual firmware loading. Topo and Remoteproc Runtime let you orchestrate the whole device as one Docker Compose project. Not sure what these terms mean? The glossary defines Topo's core concepts. RequirementsHost machine (where this extension will run):
Target machine (the remote Arm system):
The host and target can be the same system. Getting Started
Target ManagementThe Target view appears in the Topo activity bar container and shows the currently selected target where deployments run. Select a TargetClick Select a target in the Target view title bar or status bar to open the target picker. The picker shows saved targets and hosts from your SSH config. Select an existing target, choose an SSH config host, or type an SSH destination (for example Remove a TargetSaved targets that do not come from SSH config can be removed from the picker with the inline trash button. Target TreeThe Target view header shows the selected SSH destination. The tree below it shows:
If no target is selected, the view shows a Select a target button. Target ActionsUse the buttons in the Target view title bar to access these actions:
Health ActionsUse the inline Fix button on a fixable health issue to run the executable fix command reported by the Topo health check. Use Fix Issues on the Health row to select and run fixes for multiple target health issues. Container ActionsUse the inline buttons on a service in the Projects tree to manage individual containers:
Deploy and StopDeploy or stop a project on the selected target. A deploy operation builds container images, transfers them to the target, and starts services. You can trigger either operation from:
Project ManagementThe Projects view appears in the Topo activity bar container and lists workspace projects discovered from top-level When a target is selected, each project can expand to show deployed containers for that project, grouped by processing domain. Use the inline buttons on a project row to deploy or stop that project's compose file on the selected target. These actions behave the same as running Topo Deploy or Topo Stop from the context menu of the project's compose file. Initialize a ProjectUse the Topo: Initialize Project command from the Command Palette to create a new Topo project in the current workspace. Clone a ProjectTwo clone commands are available from the Command Palette:
After cloning, the extension offers to open the project in the current window, a new window, or add it to the workspace. Protocol HandlerThe extension supports a URI scheme for cloning projects from external links:
Host Health CheckThe Host view appears in the Topo activity bar container and shows host health for tools such as Docker and SSH. Missing or unhealthy health checks are shown in the tree. Use the refresh button in the Host view title bar to reload host health. CommandsCommands available from the Command Palette:
Additional commands are available through inline buttons in the Target, Host, and Projects tree views. LoggingTopo writes extension logs to the DevelopmentSee the Development Guide for instructions on building, testing, and packaging the extension from source. Submit Feedback or Report IssuesTo submit feedback or report issues, please use GitHub Issues in the extension repository. License |