# apps

> Reference for the apps tool of Geenius MVP: web apps, kits, the spec, members, records and publishing, with every action.

Source: https://mvp.geenius.io/docs/reference/apps/

A web app is a site (its words, pages and design) plus a spec: kits, the member area's interior, members and custom entities. Members are the app's own people, never Geenius OS accounts. Your AI writes the spec or patches a preset; Geenius MVP checks it, previews it and publishes it.

Call it as `geenius_mvp(tool: "apps", action: "<action>", args: {...})` through Geenius OS.

## Actions

| Action | What it does |
|---|---|
| `access_log` | A member's requests and sign-ins (never content). |
| `create` | A web app: the site and its app (test mode). |
| `describe` | The spec's shape, kits, presets and rules: read it once. |
| `grant_add` | Share a Geenius OS file or document with one member. |
| `grant_remove` | Stop sharing. |
| `grants_list` | What is shared with members. |
| `interior_options` | The interior designs, accents and layouts. |
| `interior_set` | Set the member area's interior. |
| `kit_add` | Add a kit. |
| `kit_config` | Configure a kit: config is merged. |
| `kit_describe` | One kit's config schema and an example. |
| `kit_remove` | Remove a kit (members stays). |
| `kits` | Every kit an app can have. |
| `list` | The workspace's web apps. |
| `member_approve` | Approve a request to join. |
| `member_block` | Block a member (signs them out everywhere). |
| `member_export` | Everything kept about a member. |
| `member_invite` | Invite a member by e-mail. |
| `member_link` | Link a member to a contact. |
| `member_remove` | Erase a member with their records. |
| `member_resend` | A fresh invitation. |
| `member_signout` | Sign a member out everywhere. |
| `members_list` | The app's members. |
| `message_send` | Send a secure message. |
| `outbox` | Test-mode mails to test addresses. |
| `presets` | The starting specs: a ready start per business type. |
| `preview` | The app's preview link. |
| `preview_image` | Pictures of the app (PNG). |
| `publish` | Publish the site and the member area. |
| `records_create` | A row of a custom entity. |
| `records_delete` | Delete a row of a custom entity. |
| `records_list` | Every row of a custom entity. |
| `records_seed` | The spec's sample rows into the app. |
| `records_update` | Change a row of a custom entity. |
| `sample_clear` | All of a sample's demo data out again. |
| `sample_load` | Fictional demo data for a client portal. |
| `single_user` | Make the app single-user or multi-user again. |
| `spec_read` | The spec and its revision. |
| `spec_template` | A spec to start from (nothing is made). |
| `spec_validate` | Check a spec without saving it. |
| `spec_write` | Write the spec, whole or as a patch. |
| `staff_link` | A staff sign-in link for yourself, never mailed. |
| `status` | The app, its resolved draft spec, its members and addresses. |
| `thread_read` | One conversation. |
| `threads_list` | The secure conversations. |

> [!TIP]
> Ask for the exact arguments of any action with `action: "help", of: "access_log"`. The server answers from its own definitions, so that answer is always current.

> [!NOTE]
> An argument an action does not take is refused by name, never dropped. Several actions need an admin or owner seat, and a refusal names the role it needs.

