---
title: Installation
description: Install the RoutineOS plugin in Claude Code, check your environment with doctor, and know what each requirement is for.
sidebar:
  order: 4
---

RoutineOS ships as a Claude Code plugin. The plugin carries the skill Claude follows, the CLI, the templates and the Desk bundle.

## Requirements

| Requirement | Version | Why |
|---|---|---|
| Claude Code | 2.1.275 or later | The version the repository README names for the plugin install line |
| Python | 3.11 or later | The CLI uses `tomllib`, which arrived in Python 3.11 |
| Third-party Python packages | none | The CLI is standard library only, because a cloud run starts on a fresh sandbox |

The registry records the cloud sandbox as having Python 3.11 and the standard library (tagged pilot, checked by a run on 2026-10-28). A routine that depends on an installed package can fail on a later run; keep scripts to the standard library.

## Install the plugin

In Claude Code:

```
/plugin install routineos --marketplace devkindhq/routineos
```

The `--marketplace` form needs Claude Code v2.1.275 or later ([docs](https://code.claude.com/docs/en/discover-plugins), fetched 2026-10-30).

The marketplace manifest is `.claude-plugin/marketplace.json` in the repository, and the plugin manifest is `.claude-plugin/plugin.json` (name `routineos`, license MIT, author Devkind).

## Check your setup

From the repository root (or the plugin folder), run:

```
python3 skills/routineos/scripts/routineos.py doctor
```

With no folder, doctor checks the interpreter only:

```
Python 3.13.15
tomllib: ok
```

Pass a routine folder to also load the platform registry and check that folder. This is the output for the Hiring Signals folder built in the [Quickstart](/introduction/quickstart):

```
python3 skills/routineos/scripts/routineos.py doctor hiring-signals
Python 3.13.15
tomllib: ok
registry: ok (47 records)
delivery: hiring-signals: repo
ok: no problems
```

The `delivery` line appears for a folder with an `app.toml` and says how each routine's logic reaches the run (see [Routine kinds](/routine-kinds)). Add `--docs snapshot.json` to check a store snapshot against store limits:

```
python3 skills/routineos/scripts/routineos.py doctor --docs snapshot.json hiring-signals
```

## Exit codes

Every CLI command uses the same codes.

| Code | Meaning |
|---|---|
| 0 | OK |
| 1 | Lint problems (the command lists them) |
| 2 | Usage error, unreadable input or a contract error |

## Common pitfalls

- **`tomllib` missing.** You are on Python 3.10 or earlier. Install 3.11 or later and run `python3 --version` to confirm which interpreter `python3` resolves to.
- **Running from the wrong folder.** Paths in these docs are relative to the repository root. From elsewhere, give the full path to `routineos.py`.
- **Installing packages for a routine.** Do not. Sandbox package installs are not reliable across runs; see [Compute sandboxes](/infrastructure/compute-sandboxes) for running heavier work elsewhere.

## Related

- [Introduction](/introduction)
- [Quickstart](/introduction/quickstart)
- [CLI reference](/reference/cli)
