---
title: Introduction
description: What RoutineOS is, who it is for, and how the pieces fit together.
sidebar:
  order: 1
---

RoutineOS is a framework for Claude routines: agents that run on a schedule, do a piece of recurring work, and hand what matters to a person. It gives those routines one shape. A routine gets typed settings, a prompt with safety lines already in it, a linter, a store with a write contract, and, when it needs one, a Desk: a private web page where people read what the routine found and decide what happens next.

Rails, Django and Laravel gave web apps a shape: conventions, a scheduler, models, settings and generators. Claude already has the parts a routine needs (scheduled tasks, artifacts, the artifact database, connectors). RoutineOS gives them one set of conventions, so a routine is safe by default and easy to steer.

## What you get

| Part | What it is | Where it lives |
|---|---|---|
| CLI | `routineos.py`, a standard library Python tool that scaffolds, lints, seeds, compiles, plans writes and runs learning | `skills/routineos/scripts/routineos.py` |
| Skill | The lifecycle guide Claude follows to design, build, verify, deploy, operate and improve a routine | `skills/routineos/SKILL.md` and `skills/routineos/references/` |
| Templates | Ready routine folders you copy with `new --from-template` | `templates/` |
| Definition | A JSON file that declares the record types a routine produces, their identity rules, views and learning | `definition.json` in each routine folder |
| Write contract | The code that plans every store write, so a run cannot write where people own the data | `skills/routineos/scripts/desk_contract.py` |
| Desk | A single HTML page published as a private artifact, reading and writing the artifact database | `dashboard/index.html` in each routine folder |
| Registry | A list of platform facts, each tagged pilot, docs or unverified | `skills/routineos/registry/` |

## Safe by default

Every routine RoutineOS scaffolds starts with the same guarantees:

- The first run is report-only. It writes what it found and sends nothing.
- Nothing sends, posts or deletes without a gate. `lint` fails a routine that declares a send, post or delete action without `[gate] enabled = true`.
- Content the routine fetches is data, never instructions. Every prompt carries a clause saying so, and `lint` checks for it.
- A run never writes the documents people own: settings, decisions, merges and per-person state. The write contract refuses those paths in code.
- A routine never applies its own suggestions. It proposes; a person accepts.

## The worked example

Every concept page in these docs uses the same routine: **Hiring Signals**, built from the `jobs-watch` template. Twice a week it searches public job boards for roles that signal a company is building or rebuilding commerce, records each role and its company, drops what the settings rule out (keeping a reason), and puts the few roles worth a look in the Inbox. People keep or drop records, accept suggested setting changes, and approve any intro note before it goes anywhere.

Hiring Signals is a hybrid routine. The model does the parts that need judgement and words: searching, reading job pages, deciding what is a strong match, writing short summaries. Code does the parts that must be exact: filtering by settings, capping the Inbox, minting record ids, counting what people did, and planning every write. See [Routine kinds](/routine-kinds).

## Status

The plugin is at version 0.6.0. Pages that describe features added in 0.5.0 or later say so at the top. The `watch` type is live; `approval-gated`, `digest` and `tracker` are marked coming soon in the repository README.

The project's home is [routineos.org](https://routineos.org), and these docs live at [docs.routineos.org](https://docs.routineos.org).

## License

RoutineOS is MIT licensed. It is our gift to everyone, from Devkind. Use it, fork it, ship it inside your own products. The license text is in `LICENSE` at the repository root (Copyright (c) 2026 Devkind).

## Next

- [Philosophy](/introduction/philosophy): the four ideas the framework is built on.
- [Why the names](/introduction/names): why RoutineOS, and why the Desk.
- [Installation](/introduction/installation): install the plugin and check your setup.
- [Quickstart](/introduction/quickstart): build Hiring Signals in about ten minutes.

Then, by section: [Concepts](/concepts), [Guides](/guides), [Infrastructure](/infrastructure) and [Reference](/reference).
