insodimension/phone
v0.1.1
Phone - the Code session surface laid out for a 360-430px phone. The same shared components as Code (Assembled), bound to a layout with no switcher column (phone-switcher mounts in the rail drawer's head). The space Inso Mobile lands in; on a desktop, the honest preview of what a phone sees.
What this package declares
The file a client reads when it loads this plugin, exactly as this revision carries it.
plugin.json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "phone",
"version": "0.1.1",
"description": "Phone - the Code session surface laid out for a 360-430px phone. The same shared components as Code (Assembled), bound to a layout with no switcher column (phone-switcher mounts in the rail drawer's head). The space Inso Mobile lands in; on a desktop, the honest preview of what a phone sees.",
"author": {
"name": "Dimension"
},
"keywords": [
"layout",
"space",
"phone",
"mobile"
],
"extensions": {
"ai.insodimension.dimension": {
"contractVersion": 1,
"title": "Phone",
"category": "layout",
"defaultEnabled": true,
"channel": "canary",
"spaces": [
{
"specVersion": 1,
"id": "phone",
"label": "Phone",
"icon": "phone",
"order": 32,
"description": "The Code session surface laid out for a 360-430px phone. Same shared components as Code (Assembled) — independent-rail, independent-thread, independent-composer, classic-workspace, classic-dock — bound to a layout whose only structural difference is the SWITCHER: `phone-switcher` declares `placement: rail-head`, so the space menu lives in the session-rail drawer's head and the 56px switcher column collapses to 0 (measured 2026-09-06 at 390px: the column was a sixth of the screen and clipped every tool-card header). The rail is the kit's phone-width left drawer with a scrim; the dock is the kit's phone-width sheet. Inso Mobile mounts the shell with `enabledSpaces: [\"phone\"]`, so this is the space a phone lands in; on a desktop it is just another space in the switcher, and the honest way to see what the phone sees.",
"preview": {
"screenshots": [
"assets/preview/session.webp",
"assets/preview/drawer.webp",
"assets/preview/start.webp"
],
"tagline": "Your sessions, tool cards and approvals on a phone — the same components, laid out for one hand."
},
"mark": {
"accent": "#f59e0b"
},
"layout": "phone",
"components": {
"ph-switcher": "phone-switcher",
"ph-rail": "independent-rail",
"ph-workspace": "classic-workspace",
"ph-dock": "classic-dock"
},
"rail": {
"actions": [
{
"id": "new-session",
"label": "New session",
"icon": "plus",
"target": "new-session",
"kbd": "Cmd+N",
"primary": true
},
{
"id": "loops",
"label": "Autonomy",
"icon": "orbit",
"target": "loops"
},
{
"id": "models",
"label": "Models",
"icon": "bot",
"target": "models"
},
{
"id": "plugins",
"label": "Capabilities",
"icon": "box",
"target": "plugins"
}
]
},
"workspace": {
"surfaces": [
"session",
"autonomy",
"models"
],
"start": "session",
"session": "session",
"switchPolicy": "remember",
"actions": [
"environment",
"dock"
],
"sections": {
"thread": "independent-thread",
"composer": "independent-composer"
}
},
"generalAgents": {
"list": "discoverable",
"default": "coding"
},
"requires": {
"plugins": [
"phone-switcher",
"independent-rail",
"classic-workspace",
"classic-dock",
"independent-thread",
"independent-composer",
"classic-environment"
]
},
"widgets": {
"pinned": [
{
"fill": "classic-environment",
"post": "top-right",
"station": "environment"
}
]
}
}
],
"type": "layout",
"slots": [
{
"id": "ph-switcher",
"contract": "switcher"
},
{
"id": "ph-rail",
"contract": "rail",
"items": "sessions"
},
{
"id": "ph-workspace",
"contract": "workspace"
},
{
"id": "ph-dock",
"contract": "dock"
}
]
}
}
}
Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- ai.insodimension.dimension