Rut

For developers

Put your household's chores on a dashboard in the hall, tick them off from a home automation button, or let a script add them. Rut has the same API the app uses.

Rut in AI assistants

Rut has an MCP server at https://rut-app.se/mcp. Add it to Claude, ChatGPT or another assistant that takes MCP servers, and ask it what's due today, to tick off the dishes, or to put milk on the shopping list.

The assistant sends you to Rut to sign in, and you choose whether it may change things or only read. It then acts as you, with your role in the household. Disconnect it under Account in the web app.

Your own MCP clients can also use an API key as a bearer token instead of signing in.

API keys

A household admin creates keys in the web app: Household → API keys. A key acts as the admin who created it, for as long as they're an admin. Copy it when it's created; it isn't shown again.

No key can manage members, invites, devices, the household's settings, sign-in or other keys. Revoke a key there too, and it stops working at once.

Calling the API

The API is Connect: every call is a POST of JSON to https://rut-app.se/rut.v1.<Service>/<Method>, with the key as a bearer token.

curl https://rut-app.se/rut.v1.ChoreService/ListChores \
  -H "Authorization: Bearer rut_…" \
  -H "Content-Type: application/json" \
  -d '{}'

Some calls to start with:

The full API, with every field explained, is in the .proto files in proto/rut/v1. With them, buf generates typed clients for Go, TypeScript, Swift, Kotlin and more.

Errors come back as JSON with a code such as unauthenticated (the key is wrong or revoked), permission_denied (the key's scope or the admin's role doesn't allow it) or failed_precondition (say, the chore was already done).