Agent skill

Screen Layout

by physiclaw in physiclaw/PhysiClaw

First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons.

MITAuto-check passed

Install Screen Layout

skills CLI
$ npx skills add physiclaw/PhysiClaw --skill screen-layout -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install physiclaw/PhysiClaw screen-layout --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/physiclaw/PhysiClaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/physiclaw/agent/claude/skills/screen-layout .claude/skills/screen-layout && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
screen-layout
GitHub stars
388
Token cost
~1.1k tokens
SKILL.md length
499 words
Files
2
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons.

  • Works in 5 steps: home_screen (skip if already on home —… → tap the search field; peek — keyboard up. → screenshot; read the search field… → …
  • SKILL.md covers How to save, Page 1 — Spotlight (keyboard up), Page 2 — Chat input, keyboard… and Page 3 — Chat input, keyboard UP, plus 1 more section
  • Runs Python scripts from its folder; calls uv

What it does

Screen Layout is an agent skill from physiclaw/PhysiClaw. First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons. Run once when SYSTEM shows the first-run notice, before opening apps by search or sending messages. Screenshot each page, read the box coordinates off the returned elements, save them with the screenlayout.py CLI.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `screen_layout.py`).

The repository describes itself as: The AI agent that physically operates a phone — the way you do. The licence is MIT.

Example prompts

  • “/screen-layout”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. home_screen (skip if already on home — it opens the App Switcher there) → swipe down from mid-screen → Spotlight opens.
  2. tap the search field; peek — keyboard up.
  3. screenshot; read the search field (spotlight_input) and the keyboard's space, backspace, and return keys.
  4. spotlight_paste: put any text on the clipboard, long-press the search field, screenshot, read the Paste button.
  5. Save them all in one call, e.g.

What it can do on your machine

Read from SKILL.md and the folder at commit c4abd39. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Screen Layout loads about 1.1k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 499 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from physiclaw/PhysiClaw at commit c4abd39, republished under its MIT licence (© physiclaw). 499 words, ~1,063 tokens.

Download SKILL.mdSave it as .claude/skills/screen-layout/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
screen-layout
description
First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons. Run once when SYSTEM shows the first-run notice, before opening apps by search or sending messages. Screenshot each page, read the box coordinates off the returned elements, save them with the screen_layout.py CLI.

Learn the screen layout

Opening apps (Spotlight) and messaging the user (IM) both need exact input-box positions. First run only, capture the three pages below.

Read coordinates from screenshot (pixel-perfect), never camera peek — but DO peek to confirm what a tap did (keyboard up, chat open). Copy each element's bbox verbatim — the exact [left, top, right, bottom] (0–1, 3 decimals) the screenshot returned; never eyeball, re-estimate, or re-round. The keyboard must be the system default (no third-party keyboard).

How to save

Boxes are written through a single CLI — never edit layout.json by hand:

bash
uv run python "$SKILL_DIR/screen_layout.py" record \
  --page <spotlight | chat-no-keyboard | chat-keyboard> \
  [--app <chat app>] \
  --box <field>=<l,t,r,b> [--box <field>=<l,t,r,b> ...]
  • One --box per element you read; pass every box for a page in one call.
  • --app = the chat app you opened (wechat, whatsapp, telegram, signal, …) — chat pages only; it labels the chat boxes. Omit for Spotlight.
  • Each box is sanity-checked and saved to ~/.physiclaw/screen-layout/; the command prints the layout so far and how many boxes remain. A box rejected as out-of-region means you picked a neighbouring element — re-read that box off the screenshot and run again (re-recording a field overwrites it).
  • $SKILL_DIR is provided by Claude Code; it resolves to this skill's directory.
  • Check progress any time with uv run python "$SKILL_DIR/screen_layout.py" status.

Page 1 — Spotlight (keyboard up)

Fields: spotlight_input, space, backspace, return, spotlight_paste.

  1. home_screen (skip if already on home — it opens the App Switcher there) → swipe down from mid-screen → Spotlight opens.
  2. tap the search field; peek — keyboard up.
  3. screenshot; read the search field (spotlight_input) and the keyboard's space, backspace, and return keys.
  4. spotlight_paste: put any text on the clipboard, long-press the search field, screenshot, read the Paste button.
  5. Save them all in one call, e.g.:
bash
uv run python "$SKILL_DIR/screen_layout.py" record --page spotlight \
  --box spotlight_input=0.020,0.582,0.958,0.660 \
  --box space=... --box backspace=... --box return=... --box spotlight_paste=...
Show full SKILL.md (225 more words)Show less

Page 2 — Chat input, keyboard DOWN

Field: chat_input_kb_hidden. Pass --app.

  1. home_screen, then open the dock's IM app; if the dock has none, open one via im / open-app using the Spotlight boxes you just read. Enter any real thread, keyboard hidden.
  2. screenshot; read the chat input bar.
  3. ... record --page chat-no-keyboard --app wechat --box chat_input_kb_hidden=…

Page 3 — Chat input, keyboard UP

Fields: chat_input_kb_visible, send, chat_paste. Same --app as Page 2.

  1. tap the chat input box; peek — keyboard fully up (all rows, no predictive-bar collapse).
  2. screenshot; read the input bar and Send — either a bottom-right keyboard key (WeChat-style) or an input-bar button on the right (WhatsApp-style). Send hidden while the input is empty → tap any key so it appears (step 3 clears it).
  3. chat_paste: clear the input (backspace until empty — a non-empty box shifts Paste in the popover), put text on the clipboard → long-press the input box → screenshot → read Paste.
  4. Save all three with the same --app.

Done

When every box is in, the CLI reports the layout complete. From the next wake the SYSTEM prompt carries the full layout under ## Screen layout. Proceed with the original task, or emit >> IDLE if learning the layout was the only reason you woke.

Note: keyboard geometry is device-global — learned once from Spotlight, it holds in every app. Input/Send boxes are per-context but stable.

© physiclaw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in src/physiclaw/agent/claude/skills/screen-layout of physiclaw/PhysiClaw.

  • SKILL.md
  • screen_layout.py

Open the folder on GitHubat commit c4abd39

Compare with similar skills

Screen Layout next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Screen Layout compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Screen Layout this skillphysiclaw/PhysiClaw388—~1.1kAutomated safety check: PassMIT
Learning to Learn (OpenMAIC)THU-MAIC/OpenMAIC40k—~502Automated safety check: PassMIT
Scikit LearnK-Dense-AI/scientific-agent-skills48k1 repos~3.3kAutomated safety check: NotesBSD-3-Clause
Project Learnings Managergarrytan/gstack136k—~8.2kAutomated safety check: NotesMIT
Continuous Learningaffaan-m/ECC276k—~1.1kAutomated safety check: PassMIT
Continuous Learningaffaan-m/ECC276k—~1.2kAutomated safety check: PassMIT

Similar skills

  • A Chinese-language skill that embeds learning strategies like retrieval practice and self-explanation as a parallel goal inside an OpenMAIC subject lesson, without making study skills the topic.

    40k GitHub stars~502 tokensUpdated today
    EducationAuto-check passed
  • Scikit Learn

    K-Dense-AI/scientific-agent-skills

    Supports machine learning in Python with scikit-learn. An agent skill from K-Dense-AI/scientific-agent-skills.

    48k GitHub starsUsed in 1 repo~3.3k tokens
    Data & AnalyticsAuto-check: notes
  • Lets you review, search, prune and export the learnings gstack has collected across sessions, and surfaces them when a past fix or pattern comes up.

    136k GitHub stars~8.2k tokensUpdated today
    Agent WorkflowsAuto-check: notes
  • [DEPRECATED - use continuous-learning-v2] Legacy v1 stop-hook skill extractor.

    276k GitHub stars~1.1k tokensUpdated 4 days ago
    Auto-check passed
  • [OBSOLETO - usar continuous-learning-v2] Extractor de skill por hook Stop v1 heredado.

    276k GitHub stars~1.2k tokensUpdated 4 days ago
    Auto-check passed
  • Harness Learn

    ruvnet/ruflo

    Run a GEPA learning cycle via metaharness learn (upstream ADR-235, metaharness@0.3.0) — optimizes a harness genome against a SWE-bench-style slice manifest.

    74k GitHub stars~800 tokensUpdated today
    Research & ScienceAuto-check: notes

More from physiclaw/PhysiClaw

  • Jobs

    physiclaw/PhysiClaw

    A skill your agent uses when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job.

    388 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Jd

    physiclaw/PhysiClaw

    Shop on the 京东 (JD) app. An agent skill from physiclaw/PhysiClaw.

    388 GitHub stars~558 tokensUpdated yesterday
    Auto-check passed
  • Taobao

    physiclaw/PhysiClaw

    Shop on the 淘宝 (Taobao) app. An agent skill from physiclaw/PhysiClaw.

    388 GitHub stars~137 tokensUpdated yesterday
    Auto-check passed

Questions about Screen Layout

What does Screen Layout do?

First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons. Screen Layout is an agent skill from physiclaw/PhysiClaw. First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons.

How do I install Screen Layout in Claude Code?

Run `npx skills add physiclaw/PhysiClaw --skill screen-layout -a claude-code`. Or copy the skill folder (src/physiclaw/agent/claude/skills/screen-layout in physiclaw/PhysiClaw) into .claude/skills/screen-layout in your project. Claude Code loads it when a task matches its description.

How do I install Screen Layout in Codex?

Run `npx skills add physiclaw/PhysiClaw --skill screen-layout -a codex`. Or copy the skill folder (src/physiclaw/agent/claude/skills/screen-layout in physiclaw/PhysiClaw) into .agents/skills/screen-layout in your project. Codex loads it when a task matches its description.

Can I use Screen Layout in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add physiclaw/PhysiClaw --skill screen-layout -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/screen-layout, .gemini/skills/screen-layout, .github/skills/screen-layout and .opencode/skills/screen-layout in your project.

What does Screen Layout need to run?

Going by SKILL.md and its folder, Screen Layout needs Python for the scripts in its folder and the command-line tools its instructions call (uv). Our summary lists: Python 3.

Does Screen Layout access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Screen Layout safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Screen Layout use?

Screen Layout is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Screen Layout use?

About 1.1k tokens (SKILL.md is roughly 4.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Screen Layout?

Skills that share tags, products or a category with Screen Layout: Learning to Learn (OpenMAIC) (THU-MAIC/OpenMAIC, 40k stars), Scikit Learn (K-Dense-AI/scientific-agent-skills, 48k stars), Project Learnings Manager (garrytan/gstack, 136k stars) and Continuous Learning (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Screen Layout?

physiclaw (a GitHub user) maintains it in physiclaw/PhysiClaw, which has 388 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 8, 2026.

Source: physiclaw/PhysiClaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.