Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DGM_HOMENoThe workspace directory where devices, maps and routines live. Created on first run.~/.digitomancy
DGM_DEVICENoThe name of the device to use (from devices.yaml), as an alternative to passing -d NAME.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
releaseC

Stop uiautomator on the device so Tasker/AutoInput accessibility comes back.

devicesB

Registered devices (devices.yaml), the default, and which serials adb sees right now.

lookC

Current app + compact UI node list. Lines: #idx class 'text' id=res @(x,y normalized) [tap].

screenshotA

PNG of the screen (downscaled to save tokens). Use when look can't see it (games, canvases).

tapC

Tap. Floats in [0,1] are screen fractions (preferred); otherwise pixels.

tap_nodeC

Tap node #index from the last look on this device.

tap_anchorC

Tap a mapped anchor 'map:name' (selector first, saved point as fallback).

swipeB

Swipe between two points (fractions or pixels). Scroll down = swipe(0.5,0.75,0.5,0.25).

keyB

Press a key: home, back, enter, recent, power, volume_up, volume_down, delete…

type_textC

Type into the focused field.

launchC

Start an app by package name.

checkC

Evaluate a mapped screen 'map:screen' (optionally waiting). Returns ok + per-condition detail.

list_mapsC

All maps with their anchors and screens.

save_anchorC

Remember a tap target. From a look node (stores selector + point) or raw normalized x,y.

list_routinesC

Known routines with params and stage names (stages are resume points).

run_routineC

Run a routine. On failure returns the failed stage, snapshot dir, and a resume hint.

tasker_runB

Fire a Tasker task via broadcast (needs the DGM Dispatch profile, docs/TASKER.md).

tasker_lookupA

Search the Tasker catalog (built by dgm catalog) by task/profile name substring.

Returns matching tasks with their actions and calls, plus hazard flags. Never fire a task marked hazard; tasker_run refuses them anyway.

shellC

Raw adb shell escape hatch.

workspaceB

Where devices.yaml, maps/ and routines/ live (created and seeded if missing). Edit devices.yaml there.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 20 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but tap, tap_node, and tap_anchor overlap as three tap variants, and tasker_run versus run_routine could be confused without careful reading. The descriptions generally clarify when to use each tool, so ambiguity is limited.

Naming Consistency3/5

There is a mix of snake_case multiword names and bare nouns/single verbs such as shell, workspace, look, tap, and swipe. The convention is readable but not consistent across the set.

Tool Count3/5

20 tools is on the heavy side for a device-automation server, though most correspond to real primitives rather than duplicates. It sits in the borderline-heavy 16–25 range.

Completeness4/5

The set covers device inspection, interaction, maps/anchors, routines, Tasker, and raw adb shell. It lacks structured CRUD for maps and routines and some UI actions like long-press, but the shell escape hatch prevents hard dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues