atl-browser
Mobile browser and native app automation via ATL (iOS Simulator).
Skill by LeoYeAI
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/leoyeai-atl-browser
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/atl-browser
What's inside
- Skill name
atl-browser- Description
- Mobile browser and native app automation via ATL (iOS Simulator). Navigate, click, screenshot, and automate web and native app tasks on iPhone/iPad simulators.
- License
- MIT
- Instructions
- 758 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Agent Skills spec issues
- name: "atl-browser" does not match folder "atl-mobile"
- body: 758 lines (spec recommends under 500)
Files (3)
- SKILL.md
- _meta.json
- setup.sh · scripts/
SKILL.md (first lines)
# ATL — Agent Touch Layer
> The automation layer between AI agents and iOS
ATL provides HTTP-based automation for iOS Simulator — both **browser** (mobile Safari) and **native apps**. Think Playwright, but for mobile.
## 🔀 Two Servers: Browser & Native
ATL uses **two separate servers** for browser and native app automation:
| Server | Port | Use Case | Key Commands |
|--------|------|----------|--------------|
| **Browser** | `9222` | Web automation in mobile Safari | `goto`, `markElements`, `clickMark`, `evaluate` |
| **Native** | `9223` | iOS app automation (Settings, Contacts, any app) | `openApp`, `snapshot`, `tapRef`, `find` |
```
┌─────────────────────────────────────────────────────────────┐
│ BROWSER SERVER (9222) │ NATIVE SERVER (9223) │
│ (mobile Safari/WebView) │ (iOS apps via XCTest) │
│ │ │
│ markElements + clickMark │ snapshot + tapRef │
│ CSS selectors │ accessibility tree │
│ DOM evaluation │ element references │
│ tap, swipe, screenshot │ tap, swipe, screenshot │
└─────────────────────────────────────────────────────────────┘
```
**Why two ports?** Native app automation requires XCTest APIs (XCUIApplication, XCUIElement) which are only available in UI Test bundles. The native server runs as a UI Test that exposes an HTTP API.
### Starting the Servers
```bash
# Browser server (starts automatically with AtlBrowser app)
xcrun simctl launch booted com.atl.browser
curl http://localhost:9222/ping # → {"status":"ok"}
# Native server (run as UI Test)
cd ~/Atl/core/AtlBrowser
xcodebuild test -workspace AtlBrowser.xcworkspace \
-scheme AtlBrowser \
-destination 'id=<SIMULATOR_UDID>' \
-only-testing:AtlBrowserUITests/NativeServer/testNativeServer &
# Wait for it to start, then:
curl http://localhost:9223/ping # → {"status":"ok","mode":"native"}
```
### Quick Port Reference
| Task | Port | Example |
|------|------|---------|
| Browse websites | 9222 | `curl localhost:9222/command -d '{"method":"goto",...}'` |
| Open native app | 9223 | `curl localhost:9223/command -d '{"method":"openApp",...}'` |
| Screenshot (browser) | 9222 | `curl localhost:9222/command -d '{"method":"screenshot"}'` |
| Screenshot (native) | 9223 | `curl localhost:9223/command -d '{"method":"screenshot"}'` |
---
## 📱 Native App Automation (Port 9223)
Native automation uses **port 9223** and automates **any iOS app** using the accessibility tree — no DOM, no JavaScript, just direct element interaction.
### Opening & Closing Apps
```bash
# Open an app by bundle ID
curl -s -X POST http://localhost:9223/command \
-d '{"method":"openApp","params":{"bundleId":"com.apple.Preferences"}}'
# → {"success":true,"result":{"bundleId":"com.apple.Preferences","mode":"native","state":"running"}}
# Check current app state
curl -s -X POST http://localhost:9223/command \
-d '{"method":"appState"}'
# → {"success":true,"result":{"mode":"native","bundleId":"com.apple.Preferences","state":"running"}}
# Close current app
curl -s -X POST http://localhost:9223/command \
-d '{"method":"closeApp"}'
# → {"success":true,"result":{"closed":true}}
```
### Common Bundle IDs
| App | Bundle ID |
|-----|-----------|
| Settings | `com.apple.Preferences` |
| Contacts | `com.apple.MobileAddressBook` |
| Calculator | `com.apple.calculator` |
| Calendar | `com.apple.mobilecal` |
| Photos | `com.apple.mobileslideshow` |
| Notes | `com.apple.mobilenotes` |
| Reminders | `com.apple.reminders` |
| Clock | `com.apple.mobiletimer` |
| Maps | `com.apple.Maps` |
| Safari | `com.apple.mobilesafari` |
### The `snapshot` Command
`snapshot` returns the accessibility tree — all visible elements with their properties and tap-able references.
```bash
curl -s -X POST http://localhost:9223/command \
-d '{"method":"snapshot","params":{"interactiveOnly":true}}' | jq '.result'
```
**Example output:**
```json
{
"count": 12,
"elements": [
{
"ref": "e0",
"type": "cell",
"label": "Wi-Fi",
"value": "MyNetwork",
"identifier": "",
"x": 0,
"y": 142,
"width": 393,From LeoYeAI/openclaw-master-skills, MIT.
More from LeoYeAI/openclaw-master-skills
- 0.734score
audit-website
squirrelscan
Audit websites for SEO, performance, security, technical, content, and 15 other issue cateories with 230+ rules using the squirrelscan CLI.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.734score
arista-device-health
network-security-skills-suite
Arista EOS device health check and triage procedure.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.733score
analyticscli-ts-sdk
wotaso
Use when integrating or upgrading the AnalyticsCLI TypeScript SDK in web, TypeScript, React Native, or Expo apps.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.731score
ai-headshot-generation
eachlabs
Generate professional AI headshots from casual photos using each::sense AI.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.731score
acl-rule-analysis
network-security-skills-suite
Vendor-agnostic ACL and firewall rule analysis with shadowed rule detection, overly permissive rule identification, unused rule discovery, redundant rule…
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.729score
agentic-street
agentic-street
Earn yield on USDC by investing in AI-managed DeFi funds, or launch your own fund and build a public track record on Base.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.728score
aureus-arena
aureus-arena
Build and operate autonomous AI agents that compete in Aureus Arena, a fully on-chain Colonel Blotto game on Solana.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.728score
agent-bom
msaad00
Open security platform for agentic infrastructure — broad scanning plus MCP discovery, CVEs, blast radius, SBOMs, CIS benchmarks (AWS, Azure, GCP, Snowflake)…
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.727score
aster-futures
Aster
Aster Futures request using the Aster API.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.725score
anvevoice
AnveVoice
Add AI voice assistants to your website.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.724score
anima
animaapp
Turns ideas into live, full-stack web applications with editable code, built-in database, user authentication, and hosting.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.719score
xaut-trade
aurehub
Buy or sell XAUT (Tether Gold) on Ethereum.
SkillCFreshness: C★ 2.2KClaude Code +9
Signals
- Stars
- 2,168
- Forks
- 325
- Open issues
- 13
- Last commit (this folder)
- May 5, 2026 (5 months ago)
- Last release
- Jul 20, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Website
- myclaw.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from LeoYeAI
- 0.552score
aavegotchi-gbm-skill
LeoYeAI
View, create, cancel, bid, and claim Aavegotchi GBM auctions on Base mainnet (8453).
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
aqara-open-api
LeoYeAI
Query and control Aqara/Lumi Studio smart home devices and manage spaces via the Aqara Open Platform API (HTTP JSON).
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
aawp
LeoYeAI
AAWP (AI Agent Wallet Protocol) — the only crypto wallet protocol built exclusively for AI Agents on EVM-compatible blockchains.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
ai-task-hub
LeoYeAI
AI task hub for image analysis, background removal, speech-to-text, text-to-speech, markdown conversion, and async execute/poll/presentation orchestration.
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
animation-shader
LeoYeAI
READ this skill when implementing or configuring animation-style shaders (Toon/Cel Shaders) — including outlines, rim lighting, toon shading, MatCap…
SkillCFreshness: C★ 2.2KClaude Code +9 - 0.552score
adaptive-learning-playbook
LeoYeAI
World-Class Adaptability & Learning Playbook.
SkillCFreshness: C★ 2.2KClaude Code +9
Cite this page
atl-browser skill. Agent Mart. https://agentmart.dev/skills/leoyeai-atl-browser (last updated 2026-10-24)