Open-source project
autonomous-ai/autonomous-os avatar
autonomous-ai/autonomous-os

Autonomous OS: an agentic operating system for robots, reviewed

The open-source operating system for robots — install it and your robot comes alive

362 stars53 forksPythonApache-2.0

At a glance

What is it?
Autonomous OS is an Apache-2.0 Python and Go stack that puts an agentic reasoning engine, a skill layer and a safety gate on a robot. It installs with one curl command on a Reachy Mini, and it expects a robot you can describe in four markdown files.
Who is it for?
Adopt Autonomous OS if you already own a supported robot (Lamp, Reachy Mini, Intern) or you are willing to write ROBOT.md, SOUL.md, SAFETY.md and SKILL.md for your own hardware, and you want the reasoning engine, voice stack and skills to be replaceable without flashing new firmware.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What problem Autonomous OS actually solves

Most consumer robots are remote-controlled or scripted. The README states the situation plainly: robots "have never been autonomous", because someone has to drive them with a remote and they stop at scripted demos. Autonomous OS is the layer that replaces that remote with a reasoning loop running on the robot itself. Everything the robot sees and hears is routed to an agentic engine (Hermes, OpenClaw, PicoClaw, Codex, Claude Code or OpenCode) that decides the next action, and the action is executed through skills rather than through vendor firmware calls.

The target user is narrower than the tagline suggests. The quick-start path assumes you own one of three robots the project says it has already tested: the Autonomous Lamp, Hugging Face's Reachy Mini, or the Autonomous Intern. The second path, "Bring your own robot," assumes you can write four markdown files describing the body, the persona, the safety bounds and one skill. If you can do neither, this repository is a reference architecture rather than something you can run tonight.

The interesting claim is not that a robot can talk. It is that the reasoning engine is a swappable component behind a single interface, so a better model or runtime arrives as a software update rather than a hardware purchase. That is the part worth evaluating.

The layer stack: apps, skills, runtime, os-server, HAL, safety gate

The architecture is explicitly layered: each layer uses only the layer below it, and every layer is a folder in the repository. That constraint is what makes component swapping plausible rather than aspirational.

At the top, the Autonomous mobile app adds a robot, sets up Wi-Fi, installs skills from the Skill Store and switches brains; the robot also serves its own setup and monitor UI from system/web/. Both talk to os-server on port 5000. Below that sit skills: one folder per behavior with a single SKILL.md inside, which is markdown the agent reads. The mechanism here is the notable design choice. A skill never touches a servo bus or a GPIO pin. It acts by writing markers of the form [HW:/path:{json}] into its reply, and the server package strips those markers out of the reply and POSTs them to HAL before the words are spoken. Skills therefore stay portable across hardware, and the hardware layer keeps a single choke point for actuation.

The agentic runtime layer holds six engines behind one 76-method AgentGateway. It reads the robot's SOUL.md and its installed skills. Switching engines happens live from the web UI, and the README states that persona, memory and connectors move with it.

os-server is a Go daemon on port 5000, one package per component. The intent package answers fixed commands from a local table with no model involved, which is a sensible latency and cost decision for commands that do not need reasoning. The bootstrap package handles OTA updates and is its own binary.

HAL is where the hardware specificity lives. Robots declare 13 capability names: audio, vision, sensing, presence, motion, light, display, expression, lifelike, media, connectivity, companion, system. Ten of them mount HTTP routes on port 5001, with 111 endpoints and live Swagger at /api/hardware/docs. Two, presence and lifelike, are loops with no route, and companion lives in os-server. HAL mounts only what ROBOT.md declares and, per the README, fails loud on a missing required driver. A safety gate sits below the engine and in every request path, described as a pure function of SAFETY.md covering brightness, quiet hours and similar bounds.

Installing on Reachy Mini and running a first skill

The Reachy Mini path is the only one in the README with a real command line, so it is the one to follow if you want to see the stack without buying the Lamp. The README says nothing is flashed and the Reachy daemon keeps the motors.

First, SSH into the robot:

bash
ssh [email protected]

Then run the installer as root. The README gives this exact one-liner; it fetches install.sh from the main branch of the repository and pipes it to a root shell, so read the script before you run it on hardware you care about.

bash
curl -fsSL https://raw.githubusercontent.com/autonomous-ai/autonomous-os/main/robots/reachy-mini/install.sh | sudo bash

After that, the flow moves to the mobile app: tap Add robot, choose Reachy Mini, and give it the address reachy-mini.local. The README says you should then be able to say something and watch the head tilt and the antennas lift in response.

Skills are installed from the Skill Store with one tap, or written on the spot by typing what you want into the app; the README states a new skill is live on the next conversation. Persona is a file edit. On Reachy Mini the file is at /opt/devices/reachy-mini/SOUL.md, and on the Intern it is at /opt/devices/intern-v2/SOUL.md. Change the file, and the next turn speaks as someone else.

One detail worth knowing before you place two robots in the same room: the README notes that each robot hears the other's answer as its next input, so a Lamp and a Reachy Mini will hold a conversation until you stop them.

Where Autonomous OS is the wrong tool

The hard boundary is hardware support. HAL mounts only the capabilities a robot declares in ROBOT.md, and the README states it fails loud on a missing required driver. There is no documented graceful degradation for a board that is not in hal/board/boards.json. If your robot has a servo controller nobody has written a driver for, you are writing that driver before anything else works, and the README does not describe how long that takes or what the driver interface looks like beyond the capability names.

The second limitation is that the repository is a multi-language build. The Makefile header lists four components: Go for os, bootstrap and buddy, Python for HAL, and TypeScript for the web UI. The Go module targets go 1.24.0, and the default build targets GOOS=linux GOARCH=arm64. Contributing to the system services or HAL means working in two languages with different toolchains and different test commands (go test ./... versus whatever the Python side uses, which the README does not cover).

Third, the reasoning path is not offline by default in any documented sense. The README names hosted engines and a docs/hosted.md for models, and the realtime voice layer is built on Gemini Live, OpenAI Realtime or Qwen. A robot with no network and no local model has no documented fallback beyond the intent package's fixed command table. If your use case is a disconnected robot in a field, verify that before assuming the agent loop runs.

Finally, the safety gate is described as a pure function of SAFETY.md covering brightness, quiet hours and similar bounds. That is a constraint on what the robot does, not a certification. Anyone deploying near people should treat the gate as one input among several, not as a substitute for their own limits.

How it differs from Home Assistant and from robot SDKs

The closest comparison in spirit is Home Assistant: a local-first hub that unifies devices behind an integration layer and lets users automate them. The difference is where the intelligence sits. Home Assistant's automations are rules a human writes; Autonomous OS routes perception to an agentic engine that decides the next action, and its skills are markdown the agent reads rather than YAML triggers and actions. Home Assistant also assumes a house full of devices speaking existing protocols. Autonomous OS assumes one robot with a declared capability set, and it owns the actuation path through HAL.

The other comparison is a vendor robot SDK, such as the stack that ships with Reachy Mini itself. A vendor SDK gives you direct control of that robot's motors and sensors, with no abstraction over the reasoning layer. Autonomous OS deliberately puts a boundary in between: the skill writes [HW:/path:{json}] markers and never touches the bus. You trade direct control for portability across boards and for the ability to switch engines without rewriting behavior. If your project is a research rig where you need microsecond-level control of a specific joint, that abstraction is in your way.

Maintenance, licensing and the cost of upgrades

The repository is not archived, and the last push was on 2026-08-27, the same day as the v0.1.6 release. The release cadence visible in the repository is tight: v0.1.5 on 2026-08-25, an aarch64 wheel for aec-audio-processing 1.0.1 on 2026-08-26, and v0.1.6 the next day. That pattern suggests active work, but the version numbers also tell you this is early software. A 0.1.x line with three releases in three days is not a stability promise.

The upgrade cost depends on which layer you touched. The README claims every component is swappable, and the OTA path is the bootstrap package, which is its own binary. If you only install skills and edit SOUL.md, upgrades are the project's problem. If you wrote a HAL driver for an unsupported board, you own that driver across every release, and the README does not describe a driver compatibility contract.

Licensing is Apache-2.0 at the repository root, which permits commercial use and modification and includes a patent grant. That matters if you plan to ship a product built on this. It does not answer the separate question of what the hosted engines and voice providers require, and the README points to docs/hosted.md for models without stating terms. Check those provider terms yourself; the Apache-2.0 file covers this repository's code, not the services it calls.

Editorial conclusion

Adopt Autonomous OS if you already own a supported robot (Lamp, Reachy Mini, Intern) or you are willing to write ROBOT.md, SOUL.md, SAFETY.md and SKILL.md for your own hardware, and you want the reasoning engine, voice stack and skills to be replaceable without flashing new firmware. Do not adopt it if your robot's board is not one of the boards listed in hal/board/boards.json and you have no way to write a HAL driver, because the README says HAL fails loud on a missing required driver, and there is no documented path around that. Before committing, verify three things on your own hardware: that the Reachy Mini install script's documented undo procedure in robots/reachy-mini/README.md matches your setup, that your board appears in boards.json, and that the 76-method AgentGateway is implemented for the runtime you intend to use, since the README lists six runtimes but does not state which methods each one covers.

Frequently asked questions

Is Autonomous OS an AI-based operating system?

It is an operating system for robots in the sense that it provides the runtime, hardware abstraction and app layer a robot runs on, and the decision-making comes from an agentic engine such as Hermes or Claude Code running on the robot. It is not a general-purpose desktop OS.

Which operating system does Autonomous OS use in robotics?

Autonomous OS is its own software stack rather than a layer on top of a general-purpose OS. Its system services are a Go daemon called os-server on port 5000, and its HAL mounts HTTP routes on port 5001 for the capabilities a robot declares in ROBOT.md.

What does it mean that Autonomous OS makes a robot autonomous?

The README states that everything the robot sees and hears goes to an agentic reasoning engine running on the robot itself, which decides what to do next. The robot then acts through skills that emit hardware markers rather than driving motors directly.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/autonomous-ai-autonomous-os.svg)](https://hysenlabs.com/projects/autonomous-ai-autonomous-os)