# Composable Mini Apps

Build focused workspace apps and cross-app workflows, using A2A only when a task needs...

- Repository: https://github.com/BuilderIO/agent-native (7579 stars)
- Category: Design
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add BuilderIO/agent-native --skill composable-mini-apps -g -a claude-code -y`
Codex: `npx skills add BuilderIO/agent-native --skill composable-mini-apps -g -a codex -y`
Cursor: `npx skills add BuilderIO/agent-native --skill composable-mini-apps -g -a cursor -y`
Gemini CLI: `npx skills add BuilderIO/agent-native --skill composable-mini-apps -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add BuilderIO/agent-native`

## Description

Build focused workspace apps and cross-app workflows, using A2A only when a task needs a peer-owned capability. Use when designing mini-app boundaries.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Composable Mini-Apps

## Rule

Prefer many one-job apps in a workspace over one oversized app. A headless app
can own a provider, dataset, workflow, or specialist action surface without a
full UI. This architecture does not make every task a cross-app task: use the
current app's actions by default. Call a peer only when the user asks or the
outcome requires data, credentials, or a capability only that peer can provide.
A peer's availability or ability to enrich the result is not enough. The app
that owns an artifact remains responsible for authoring and editing it.

## Shape

- Give each mini-app one clear job, a concise `package.json` description, and
  action names that describe the job it owns.
- Keep provider credentials and upstream API details in the app that owns that
  provider or workflow. When a task needs its peer-exclusive data, credentials,
  or capability, delegate that bounded work instead of copying integration
  code.
- Use a tiny status/config screen only when users need to inspect state. A
  pure headless app is fine when its job is invoked by agents, automations, or
  sibling apps.
- If two workflows only share a helper, put the helper in `packages/shared`;
  keep the workflow actions in separate apps.

## Discovery And Invocation

The main agent should discover available siblings before assuming capability:

The rest: https://github.com/BuilderIO/agent-native/blob/HEAD/.agents/skills/composable-mini-apps/SKILL.md
