> ## 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.

# Capabilities and progress

> The status of every Mini App capability by module: released, experimental, coming soon, or planned.

<div className="code-docs">
  Status as of October 20, 2026. "Released" refers to MiniMax Code v3.1.4; actual features and release dates depend on the shipped version.

  * <Badge color="green" size="sm">Released</Badge> Available in the current release
  * <Badge color="orange" size="sm">Experimental</Badge> Interface may change; feature-detect before use
  * <Badge color="blue" size="sm">Coming soon</Badge> Shipping in an upcoming release; the interface is final only once released
  * <Badge color="gray" size="sm">Planned</Badge> Not available yet

  <h2 id="agent">
    Working with the Agent
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | [The Agent calls your tools](/docs/miniapp/authors/agent#mcp) | <Badge color="green" size="sm">Released</Badge> | Managed MCP: the Node service exposes business capabilities as tools, so the page and the Agent work on the same data |
  | [Hand off to the message input](/docs/miniapp/authors/client-api#append) | <Badge color="green" size="sm">Released</Badge> | `message.append` puts prepared content into the current session's input; you confirm before sending |
  | [Start Agent sessions](/docs/miniapp/authors/agent#agent-api) | <Badge color="green" size="sm">Released</Badge> | Both the page and the Node service can start one: replies stream in, approvals and questionnaires are handled in the page, or `open(sessionId)` shows the session in the chat side panel; Node sets a concurrency limit and extra calls wait in line; you can choose the model and agent |
  | Follow up while a session is busy | <Badge color="blue" size="sm">Coming soon</Badge> | `run` with `whenBusy`: when the target session is busy, wait in line for it to go idle, or inject the message into the running turn |

  <h2 id="sessions">
    Sessions
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | [Open in a session](/docs/miniapp/sessions#open) | <Badge color="green" size="sm">Released</Badge> | A reference in the input starts the backend and opens the page; `open` with a `path` opens any address inside the plugin; reopening in the same session keeps the current route and state |
  | [One service for every session](/docs/miniapp/sessions#shared) | <Badge color="green" size="sm">Released</Badge> | One service per plugin, one page per session |
  | [Survives sign-in changes](/docs/miniapp/sessions#accounts) | <Badge color="green" size="sm">Released</Badge> | Refreshing sign-in credentials doesn't affect running Mini Apps; after the same account signs back in, list the tools again and continue without republishing |
  | Read and observe user sessions | <Badge color="blue" size="sm">Coming soon</Badge> | `agent.sessions` lists your sessions, `agent.session` reads one, and `agent.observe` subscribes to its progress; requires `session.read` in the manifest, and you can switch it off in the permission panel at any time |

  <h2 id="ui">
    Interface and windows
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | [Standalone window](/docs/miniapp/authors/client-api#window) | <Badge color="green" size="sm">Released</Badge> | Pop the page out of the file panel; `surface.window` declares size, always-on-top, transparency, and click-through, the position is remembered, and visibility doesn't follow the main window |
  | [Page-side window handle](/docs/miniapp/authors/client-api#window) | <Badge color="orange" size="sm">Experimental</Badge> | `window.mcode.miniapp.window` reads and adjusts the pop-out window |

  <h2 id="devices">
    Devices
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | Microphone and speech-to-text | <Badge color="blue" size="sm">Coming soon</Badge> | With `deviceAccess` declared in the manifest, the page can use the microphone, and `speech.transcribe` hands the recording to the host for transcription |

  <h2 id="backend">
    Backend and data
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | [Backend service](/docs/miniapp/authors/node-runtime#contract) | <Badge color="green" size="sm">Released</Badge> | Export `start(context)`; the host assigns the port and handles start and stop. The Node entry can also launch Python, Go, or other services and reverse-proxy to them from the assigned port |
  | [Persistent data](/docs/miniapp/authors/data#state) | <Badge color="green" size="sm">Released</Badge> | Each plugin gets an isolated `dataDir` that survives service restarts and plugin updates |
  | [Data access](/docs/miniapp/authors/data#methods) | <Badge color="green" size="sm">Released</Badge> | Host Connector calls Notion and other apps with the account you authorized in MiniMax Code, and the plugin stores no credentials; CLIs, HTTP APIs, SDKs, and local files work directly too |
  | Unified tool entry | <Badge color="blue" size="sm">Coming soon</Badge> | With `toolAccess` declared in the manifest, `context.tool` lists and calls the host's mounted MCP tools and Connectors with one API; every call is judged by the permission rules you set for the Agent, and the host prompts when confirmation is needed |

  <h2 id="security">
    Permissions and security
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | [Port authentication](/docs/miniapp/authors/node-runtime#auth) | <Badge color="green" size="sm">Released</Badge> | Each run gets its own credential, so only the Mini App page and managed MCP can reach the service port; no plugin code changes |
  | [Plugins and pages never handle credentials](/docs/miniapp/host/security#boundaries) | <Badge color="green" size="sm">Released</Badge> | The host makes third-party calls on your behalf; host credentials, internal ports, and tool references never reach the page |
  | [Grants and confirmation](/docs/miniapp/host/security) | <Badge color="green" size="sm">Released</Badge> | Connector providers, Agent access, always-on-top, and click-through must be declared in the manifest; handing off to the input always needs confirmation; Agent approvals are only "allow once" and "deny", and a Mini App can't write your global permission rules |
  | Permission panel | <Badge color="blue" size="sm">Coming soon</Badge> | The plugin detail page gets a switch for each of the Mini App's permissions: Connectors, Agent sessions, reading sessions, tool calls, and microphone; on by default, and switching one off takes effect immediately without a restart |
  | System permissions denied by default | <Badge color="blue" size="sm">Coming soon</Badge> | Only Mini Apps that declare and enable the microphone permission can use the microphone; camera, location, notifications, and other system permissions are not available to pages |

  <h2 id="build">
    Building, publishing, and operations
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | [Create and install](/docs/miniapp/authors/quickstart) | <Badge color="green" size="sm">Released</Badge> | `/miniapp-creator` builds from one sentence and checks the result with screenshots in the built-in browser; you can also hand an existing directory or ZIP to the Agent to publish; official Mini Apps install, update, and uninstall through the marketplace |
  | [Operations](/docs/miniapp/authors/publish) | <Badge color="green" size="sm">Released</Badge> | Publishing happens in steps and a failed install restores the previous version; `inspect` shows the source, runtime status, and diagnostics; `stop` and `restart`, with a restart offered from the failed state |
  | Marketplace updates don't interrupt running Mini Apps | <Badge color="blue" size="sm">Coming soon</Badge> | When the marketplace has a new version, running instances keep the current one; the toolbar and plugin page offer an "Update" action so you choose when to switch |
  | Scheduled work | <Badge color="gray" size="sm">Planned</Badge> | Update data or run recurring work on a schedule |

  <h2 id="compat">
    Versions and compatibility
  </h2>

  | Capability | Status | Description |
  | - | - | - |
  | Minimum version and capability detection | <Badge color="blue" size="sm">Coming soon</Badge> | Declare the minimum MiniMax Code version in the manifest; older hosts don't load the Mini App, while Skills and ordinary MCP in the same package keep working. `capabilities.has(name)` checks which interfaces the current host supports, so you can degrade gracefully on older versions |

  Need a runtime capability Mini App doesn't have yet? Comment on the pinned [capability wishlist](https://github.com/MiniMax-AI/MiniMax-Code-MiniApps/issues/9) in the community repository.
</div>
