ADE Mosaic cards
SkillCommunicationUse this skill when you want to ask the user for structured input (choices, toggles, numbers, short text, approvals) inside an ADE chat. Emit a fenced mosaic code block and ADE renders it as a native interactive card; the user's answers come back as your next user message.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the ADE Mosaic cards skill
What this skill tells your AI
The instructions your AI receives, as published by arul28/ade in apps/desktop/resources/agent-skills/ade-mosaic/SKILL.md and read by ahel’s review.
Emit a fenced code block with language mosaic containing strict JSON. ADE
desktop renders it as an interactive card in the transcript. When the user
submits, their selections arrive as the next user message: readable lines
plus a json fence with {"mosaic":1,"values":{...}} keyed by element id.
The card is data only — no expressions, no code, no host actions. If the JSON is malformed or uses unknown element types or versions, ADE shows the raw fence instead, so validate your JSON.
Terminal (TUI) chats show a one-line summary; iOS shows the raw fence. Ask plain-text questions when the user is likely not on desktop.
Schema (v1)
Top level: {"v": 1, "title"?, "submitLabel"?, "elements": [...]} — 1 to 24
elements. Interactive elements need a unique id.
| Element | Shape |
|---|---|
| Text | {"type":"text","text":"..."} |
| Single select | {"type":"select","id":"env","label"?,"options":[{"value":"prod","label"?}],"value"?} |
| Multi select | {"type":"multiselect","id":"features","label"?,"options":[...],"values"?} |
| Number / slider | {"type":"number","id":"n","label"?,"min"?,"max"?,"step"?,"value"?} (renders a slider when both min and max are set) |
| Short text | {"type":"input","id":"name","label"?,"placeholder"?,"value"?,"maxLength"?} |
| Approve / deny | {"type":"approval","id":"go","label"?,"approveLabel"?,"denyLabel"?} |
| Key-value table | {"type":"table","rows":[{"key":"...","value":"..."}]} (display only) |
Limits: 40 options per select, 50 table rows, labels ≤ 200 chars, values ≤ 1000 chars.
Example
{
"v": 1,
"title": "Release checklist",
"elements": [
{"type": "text", "text": "v1.3.0 is tagged and CI is green."},
{"type": "table", "rows": [
{"key": "Commits", "value": "18"},
{"key": "Risk", "value": "low"}
]},
{"type": "select", "id": "channel", "label": "Channel",
"options": [{"value": "beta"}, {"value": "stable"}], "value": "beta"},
{"type": "multiselect", "id": "targets", "label": "Targets",
"options": [{"value": "mac"}, {"value": "ios"}]},
{"type": "number", "id": "rollout", "label": "Rollout %", "min": 5, "max": 100, "step": 5, "value": 25},
{"type": "approval", "id": "ship", "label": "Publish the release?"}
],
"submitLabel": "Send"
}
Guidance
textandtableare display-only, so a card needs at least one interactive element to be submittable; use the display rows for the context the user needs to decide.- Do NOT use a mosaic card for plan approval or permission prompts — ADE has dedicated native surfaces for those.
Signals
- GitHub stars
- 104
- Forks
- 12
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ade-mosaic- Source
- github.com/arul28/ade