Skip to content
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