> ## Documentation Index
> Fetch the complete documentation index at: https://agent.minimax.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Features

> What Mini App can do: interface and windows, devices, backend and data, working with the Agent, sessions, building and distribution, operations, and security.

This page introduces Mini App features and use cases. See [Capabilities and progress](https://agent.minimax.io/docs/miniapp/progress.md) for version support and release plans.

## What you can build

* **Professional workspaces:** bring material scattered across platforms into one page where people and the Agent move the work forward on the same data, like the official Stocks Mini App.
* **Dashboards and monitors:** pages that need filters, charts, and live refresh, such as Token usage, Git history, or session trajectories.
* **Business system front ends:** connect authorized apps such as Notion or Jira, create, edit, and delete on the page, and sync changes back.
* **Planning and generation:** chain maps, search, and image generation into one flow, like the road trip planner.
* **Working with the Agent:** prepare context on the page and hand it to the Agent, or start an Agent session and approve and answer on the page.
* **Small tools and games:** a Pomodoro timer, a notes board, a divination app, anything you want close at hand.

## Interface and windows

> [card] [Full web interface](https://agent.minimax.io/docs/miniapp/authors/client-api.md#page-rules)
>
> HTML, CSS, and JavaScript with any front-end framework or chart library: tables, drag and drop, live refresh.

> [card] [Opens in the session sidebar](https://agent.minimax.io/docs/miniapp/sessions.md#open)
>
> Open it from the panel's "+" menu, with @ in a conversation, or by the Agent; the page appears in the current session's right panel.

> [card] [Open a specific page](https://agent.minimax.io/docs/miniapp/authors/quickstart.md#tool)
>
> `open` with a `path` opens any address inside the plugin, such as a record's detail page.

> [card] [Pop-out window](https://agent.minimax.io/docs/miniapp/authors/client-api.md#window)
>
> Pop the page out of the file panel into its own window, with its position remembered; the manifest declares size, always-on-top, transparency, and click-through, which suits floating widgets. Switching modes may rebuild the page, so save state first; see [Page rebuild hints](https://agent.minimax.io/docs/miniapp/reference/client-api.md#window-reload).

> [card] [Window handle](https://agent.minimax.io/docs/miniapp/authors/client-api.md#window)
>
> The page reads and adjusts its own pop-out window: mode, position, size, always-on-top, click-through. The interface may change, so feature-detect before use.

## Devices

Camera and system notifications require MiniMax Code v3.1.9 or later.

> [card] [Microphone and speech-to-text](https://agent.minimax.io/docs/miniapp/authors/client-api.md#speech)
>
> Record audio on the page and pass it to the host with `speech.transcribe` for transcription; microphone access must be declared and enabled.

> [card] [Camera](https://agent.minimax.io/docs/miniapp/authors/client-api.md#camera)
>
> Declare `deviceAccess: ["camera"]` to access the camera stream through standard browser APIs; users can turn access off in the permission panel.

> [card] [System notifications](https://agent.minimax.io/docs/miniapp/authors/client-api.md#notifications)
>
> Declare `deviceAccess: ["notifications"]` to send system notifications from the page and let users know when results are ready.

## Backend and data

> [card] [Node backend service](https://agent.minimax.io/docs/miniapp/authors/node-runtime.md#contract)
>
> Export `start(context)`; the host assigns the port and handles start and stop. Push live updates over SSE or WebSocket.

> [card] [Backends in any language](https://agent.minimax.io/docs/miniapp/authors/node-runtime.md#child)
>
> The Node entry can launch Python, Go, or other services and reverse-proxy to them from the assigned port.

> [card] [Persistent data](https://agent.minimax.io/docs/miniapp/authors/data.md#state)
>
> The host isolates a `dataDir` for each plugin; data survives service restarts and plugin updates.

> [card] [Apps the user authorized](https://agent.minimax.io/docs/miniapp/authors/data.md#host-connector)
>
> Host Connector calls Notion and other apps with the account the user authorized in MiniMax Code; the plugin stores no credentials.

> [card] [CLIs, HTTP APIs, SDKs, local files](https://agent.minimax.io/docs/miniapp/authors/data.md#methods)
>
> The Node service can call local command-line tools, third-party APIs, or files the user authorized.

> [card] [Unified tool entry](https://agent.minimax.io/docs/miniapp/progress.md#backend)
>
> `context.tool` lists and calls the host's mounted MCP tools and Connectors with one API, judged by the user's permission rules for the Agent.

## Working with the Agent

> [card] [The Agent calls your tools](https://agent.minimax.io/docs/miniapp/authors/agent.md#mcp)
>
> Managed MCP: the Node service exposes business capabilities as tools, so the page and the Agent work on the same data.

> [card] [Hand off to the message input](https://agent.minimax.io/docs/miniapp/authors/client-api.md#append)
>
> The page puts prepared content into the current session's message input; the user confirms, edits, and sends it.

> [card] [Start Agent sessions from the page](https://agent.minimax.io/docs/miniapp/authors/agent.md#agent-page)
>
> The page runs an Agent turn, streams the reply, and renders tool approvals and questionnaires itself.

> [card] [Run the Agent in the background](https://agent.minimax.io/docs/miniapp/authors/agent.md#agent-node)
>
> The Node service uses `context.agent` to work on tasks and write results back; set a concurrency limit and extra calls wait in line.

> [card] [Hand off to the chat panel](https://agent.minimax.io/docs/miniapp/sessions.md#open-in-chat)
>
> `open(sessionId)` shows a Mini App's Agent session in the chat side panel, where you follow it, approve, and answer.

> [card] [Choose models and agents](https://agent.minimax.io/docs/miniapp/authors/agent.md#agent-session)
>
> List the models you can use and the agents you configured; switch a session's model or start a session as a specific agent.

## Sessions

A Mini App's service is shared per plugin and its pages are per session; see [Mini Apps and sessions](https://agent.minimax.io/docs/miniapp/sessions.md) for the full rules.

> [card] [Starts when referenced](https://agent.minimax.io/docs/miniapp/sessions.md#open)
>
> As soon as a Mini App reference appears in the input, the backend starts; the sidebar expands only after the page opens.

> [card] [One service for every session](https://agent.minimax.io/docs/miniapp/sessions.md#shared)
>
> Each session has its own page, all backed by the same service and the same data.

> [card] [Reopening keeps your place](https://agent.minimax.io/docs/miniapp/sessions.md#open)
>
> If the service hasn't restarted, the page hasn't reloaded, and no explicit `path` is supplied, selecting or opening it again in the same session reuses the tab and keeps the current route and state.

> [card] [Session list indicator](https://agent.minimax.io/docs/miniapp/sessions.md#open)
>
> The session list marks sessions that have a Mini App open.

> [card] [Local sessions only](https://agent.minimax.io/docs/miniapp/sessions.md#open)
>
> Cloud, SSH, and Remote Control sessions never start or open Mini Apps on your machine.

> [card] [Survives sign-in changes](https://agent.minimax.io/docs/miniapp/sessions.md#accounts)
>
> Refreshing sign-in credentials doesn't affect running Mini Apps; after signing back in with the same account, list the tools again and continue.

## Building and distribution

> [card] [Create from one sentence](https://agent.minimax.io/docs/miniapp/authors/quickstart.md)
>
> With /miniapp-creator, the Agent verifies data access, writes the page and backend, publishes, and opens the app.

> [card] [Screenshot acceptance](https://agent.minimax.io/docs/miniapp/authors/quickstart.md#flow)
>
> The Agent checks structure, text, and interactions in the built-in browser and reports what passed and what couldn't be verified.

> [card] [Install a finished package](https://agent.minimax.io/docs/miniapp/authors/quickstart.md#finished)
>
> Hand a Mini App directory or ZIP to the Agent; it inspects and publishes it without running bundled instructions or installing dependencies.

> [card] [Plugin marketplace](https://agent.minimax.io/docs/miniapp/authors/share.md#enterprise)
>
> Official Mini Apps install, update, and uninstall through the marketplace; official packages can't be edited locally.

> [card] [Open-source community](https://agent.minimax.io/docs/miniapp/authors/share.md#community)
>
> Share through a pull request to MiniMax-Code-MiniApps; the team regularly selects apps for the marketplace.

> [card] [Other capabilities in the same package](https://agent.minimax.io/docs/miniapp/authors/package.md#plugin-json)
>
> Skills, ordinary MCP, and Apps in the package keep working whether or not the Mini App is running.

## Operations

> [card] [Starts on demand](https://agent.minimax.io/docs/miniapp/authors/node-runtime.md#lifecycle)
>
> Enabling a plugin never starts it; up to 3 different Mini App services run at once.

> [card] [Publishing that rolls back](https://agent.minimax.io/docs/miniapp/authors/publish.md#pipeline)
>
> Stage, install, and start happen in steps, and a failed install restores the previous version.

> [card] [Status and diagnostics](https://agent.minimax.io/docs/miniapp/authors/publish.md#inspect)
>
> `inspect` shows the source, runtime status, and diagnostics for the latest run without starting the service.

> [card] [Stop and restart](https://agent.minimax.io/docs/miniapp/authors/quickstart.md#tool)
>
> Stopping ends only the service and keeps the plugin and its other capabilities; the toolbar offers a restart from the failed state.

> [card] [Traceable startup failures](https://agent.minimax.io/docs/miniapp/authors/publish.md#inspect)
>
> Startup failures go into the runtime log and are packaged with your feedback report to help pin down the problem.

> [card] [Permission panel](https://agent.minimax.io/docs/miniapp/progress.md#security)
>
> Switch each of a Mini App's permissions on or off from the plugin detail page; on by default, and switching one off immediately restricts new calls without a restart.

## Security

> [card] [Port authentication](https://agent.minimax.io/docs/miniapp/authors/node-runtime.md#auth)
>
> Each run gets its own credential, so only the Mini App page and managed MCP can reach the service port; no plugin code changes.

> [card] [Plugins and pages never handle credentials](https://agent.minimax.io/docs/miniapp/host/security.md#boundaries)
>
> The host makes third-party calls on the user's behalf; host credentials, internal ports, and tool references never reach the page.

> [card] [Explicit grants](https://agent.minimax.io/docs/miniapp/reference/manifest.md)
>
> Connector providers, Agent access, always-on-top, and click-through work only when declared in the manifest.

> [card] [User confirmation](https://agent.minimax.io/docs/miniapp/host/security.md#human)
>
> Handing off to the input always needs confirmation; Agent approvals are only "allow once" and "deny", and a Mini App can't write the user's global permission rules.
