---
name: nimekirjad
description: Help the visitor use Nimekirjad, an offline-first list PWA in this browser. Use when they want shopping, packing, or task lists, to add items with quantities, mark items done, or understand that list data never leaves the device.
---

# Nimekirjad

Nimekirjad (Lists) is a free, installable progressive web app by House of Laigna.

Canonical URL: https://list.houseoflaigna.com

There is **no account**, **no cloud sync**, and **no public HTTP API**. Lists live in IndexedDB in the visitor’s browser (`oma-nimekiri`). Clearing site data deletes them. Never invent REST endpoints, login, sharing, or multi-device sync.

## When to use this skill

- The user is on list.houseoflaigna.com and wants to manage local lists.
- They ask how the app works, where data is stored, or which languages exist.
- They want you to add shopping/packing items, mark them done, or look up existing lists **in this browser**.

Do not use this skill to fetch other people’s lists. You can only see the current visitor’s local data, and only through in-page WebMCP tools.

## Languages and UI

Default UI language is Estonian (`et`). Settings can switch to en, ja, de, fi, fr, es, it, lv, lt. The URL does not change with language. User-created names are not translated. Theme is light only.

## URL routes

These are client-side History API routes. Unknown paths, including most `/.well-known/*` files, return HTTP 404.

- `/` — home (groups and ungrouped lists)
- `/g/{groupId}` — one group
- `/l/{listId}` — one list (add items here)

## How to use WebMCP tools

Feature-detect `document.modelContext` first, then `navigator.modelContext`. Tools are registered on page load. They read and write **this browser only**.

Destructive tool: `remove_item` is annotated `consequentialHint: true`. Confirm with the user before calling it.

### 1. See what exists

```
list_lists
list_lists { "groupName": "Pood" }
```

Then open a list:

```
get_list { "list": "Igapäevane" }
get_list { "list": "<list-id>" }
```

If several lists share a name, the tool asks you to pass the id.

### 2. Shopping list

```
create_list { "title": "Pood täna", "groupName": "Pood" }
add_item { "list": "Pood täna", "text": "piim x2" }
add_item { "list": "Pood täna", "text": "leib", "qty": 1 }
```

Quantity parsing also accepts `2 piim` and `piim ×2`.

### 3. Packing list

```
create_list { "title": "Puhkuse kott", "groupName": "Reis" }
add_item { "list": "Puhkuse kott", "text": "Pass" }
add_item { "list": "Puhkuse kott", "text": "Laadija" }
set_item_done { "itemId": "<id-from-get_list>", "done": true }
```

### 4. Search and clean up

```
search_items { "query": "piim" }
remove_item { "itemId": "<id>" }
```

On the open list screen, the add field is also a **declarative** WebMCP form (`add_item_on_page`) with `toolname` / `tooldescription` / `toolparamdescription`. Prefer the imperative `add_item` tool when you know the list id.

## Privacy and limits

- No sign-in, no tracking accounts, no sharing links.
- JSON backup export/import stays on the device (Settings).
- Demo seed lists on first launch are Estonian sample data.
- There is no MCP server, OAuth, API catalog, or commerce protocol. In-page WebMCP is the only agent API, and it cannot reach other devices.

## Discovery

- https://list.houseoflaigna.com/llms.txt
- https://list.houseoflaigna.com/.well-known/agent-skills/index.json
- https://list.houseoflaigna.com/robots.txt
