Platform Reference

Viam is a complete software platform for smart machines that runs on any 64bit Linux or macOS, supporting a wide variety of popular systems, including:


The open-source executable binary that runs on a Viam-powered machine is called viam-server. viam-server runs and manages everything on your machine, including communications between hardware, software, and the cloud.

What a machine is

A machine is any computer (SBC, server) running viam-server or any microcontroller running viam-micro-server, plus any hardware attached to that computer.

How machines are structured, configured and organized

Learn more about the structure and configuration of machines:

Structure…Configuration…Installation…
…of one machine ->ArchitectureMachine ConfigurationInstallation
…of many machines ->Cloud Organization HierarchyDeploy a Large FleetProvisioning

The things that make up a machine

On your machine, you configure components and services. Some are built-in, and many more are available in the registry. You can also write your own and add them to the registry.

You can configure the following components:

And you can use the following platform capabilities and services to make your machines smarter and better:

Ways to control a machine

You can control your machine using the SDKs that call standardized API endpoints for each component and service. You can also use your machine’s Viam app CONTROL tab that uses those same endpoints, or you can use the CLI.

Have questions, or want to meet other people working on robots? Join our Community Discord.

If you notice any issues with the documentation, feel free to file an issue or edit this file.