Skip to main content
Glama

start_session

Launch an isolated X11 or Wayland session with its own display, D-Bus, and scratch home to run and inspect GUI programs without touching the host desktop.

Instructions

Start a sealed session: a display of its own (X11 under Xvfb, or Wayland under a headless sway), its own D-Bus and accessibility bus, and a scratch home. Nothing in it reaches the desktop of the person you're working for, and nothing of theirs reaches it. Start one, spawn a program in it, then look with accessible_tree (cheap, text) before screenshot (pixels). It lasts until stop_session, or until this server stops.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tzNoIts time zone, Europe/Berlin (UTC)
netNoA network its programs share and nothing else is on: nothing reaches in or out
a11yNoAn accessibility bus (default true)
darkNoGTK and libadwaita's dark style
nameNoWhat to call it (s1, s2... by default)
audioNoA sound server whose sink plays to nowhere
clockNoISO 8601, 2026-09-26T18:40:00, in tz or UTC: where its wall clock starts and runs on from, so dates in pictures don't change (needs libfaketime)
usageNoSay, when it's stopped, what its programs used: peak memory and CPU time
screenNoWIDTHxHEIGHT (1280x800)
waylandNoWayland, not X11
gamepadsNoVirtual Xbox 360 pads, for the gamepad tool
identityNoUSER@HOST: who and where its programs are, for whoami, hostname, ls -l and $USER
xwaylandNoWayland, with Xwayland for X programs
text_scaleNoTheir text size, 1.25 for 125%
high_contrastNoTheir high contrast style

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic profile (readOnlyHint=false, openWorldHint=false, destructiveHint=false); the description adds the genuinely non-obvious traits: the isolation guarantee in both directions, and the session's lifetime and termination condition. That is meaningful context the structured fields cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core capability, then the workflow, then the lifetime. The rhetorical pair ('nothing in it reaches the desktop ... nothing of theirs reaches it') earns its space by making the isolation guarantee unambiguous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter tool with no output schema, the description supplies the mental model, workflow, and lifetime, which is most of what is needed. The one gap is that it never says what starting a session returns (presumably the name/handle that spawn and stop_session take), which an agent must infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with 15 well-annotated optional properties (each has a concrete description, enum, or bounds), so the schema carries the parameter burden entirely. The description adds no parameter-level syntax or defaults beyond what is already there, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Start a sealed session') and immediately enumerates what that session contains: its own display (X11/Xvfb or Wayland/sway), D-Bus and a11y bus, and a scratch home. That level of specification lets an agent distinguish it from siblings like stop_session or spawn without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit ordered workflow ('Start one, spawn a program in it, then look with accessible_tree (cheap, text) before screenshot (pixels)') and names the terminating alternative ('lasts until stop_session, or until this server stops'). Both when-to-use and the choice between inspection siblings are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.