pythonide-automation

A skill for writing PythonIDE automation scripts and non-game utility tools. It covers actions such as running named iOS Shortcuts, opening URLs or settings, adding editor keyboard helpers, and building scripts with legacy Pythonista-style interfaces.

In plain words
What is it for?
Use it to trigger user-provided Shortcuts, create URL or settings handoffs, add keyboard snippets, build legacy UI scripts, and write plain Python utilities with optional iOS integration.
Why use it?
It helps choose the right automation surface when a task needs device or editor actions rather than a full app interface. It also keeps game scenes, widgets, and native MiniApps on their separate paths.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/python-ide/pythonide-skills/pythonide-automation
Any agent
npx skills add Python-IDE/pythonide-skills --skill pythonide-automation
Clone the repo
git clone --depth 1 https://github.com/Python-IDE/pythonide-skills

Made for: Claude Code, Codex.

Per session 60 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 927 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00060 $0.00927
Opus 5 $0.00030 $0.00464
Sonnet 5 $0.00012 $0.00185
Haiku 4.5 $0.00006 $0.00093

Measured yesterday against content hash bfc5f5b1d8ab, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

pythonide-automation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

The scan reads SKILL.md. This mod also ships 1 executable file (examples/run_shortcut/main.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

pythonide-automation/SKILL.md · 117 lines

How it starts

The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.

PythonIDE Automation

Rules for scripts and automation surfaces that are not AppUI MiniApps or widgets.

Read Before Coding

  1. Shortcuts guide
  2. shortcuts module
  3. keyboard module
  4. ui module for legacy imperative UI
  5. Automation extension index
  6. Load pythonide-native when the script imports iOS modules

Use When

  • Run an existing iOS Shortcut by name
  • Open URL handoff or app settings through shortcuts
  • Add editor keyboard buttons/snippets
  • Build Pythonista-compatible ui scripts
  • Plain Python utilities with optional native module calls
  • JS/extension workflows referenced in js-api

Do Not Use When

  • The user wants a native MiniApp with navigation and forms → pythonide-appui
  • The user wants a Home Screen widget → pythonide-widget
  • The user wants a game or frame loop → pythonide-scene
  • PythonIDE can solve the task with only stdlib and no iOS integration

Shortcuts Pattern

import shortcuts


def open_daily_log():
    return shortcuts.run_shortcut("Daily Log")

Shortcuts Rules

  • Use only Shortcut names the user provided
  • Call run_shortcut, open_url, or open_settings from user-triggered actions
  • Treat False or empty results as failure; do not claim success without evidence
  • Do not invent installed Shortcuts
  • Do not launch shortcuts at import time or from AppUI body()

Keyboard Pattern

Use keyboard module for editor buttons, groups, snippets, and cursor insertion. Keep handlers short and user-triggered.

Legacy ui Pattern

import ui


class DemoView(ui.View):
    def __init__(self):
        super().__init__()
        self.frame = (0, 0, 320, 240)
        button = ui.Button(title="Tap")
        button.frame = (20, 20, 120, 40)
        button.action = self.tapped
        self.add_subview(button)

    def tapped(self, sender):
        ui.hud_alert("Tapped")


DemoView().present("sheet")

Read the full file on GitHub · 117 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 117 lines · 60 tokens per session scan A bfc5f5b1d8ab

Subscribe to this mod's changes

pythonide-automation is a skill published in the GitHub repository Python-IDE/pythonide-skills (6 stars, last pushed 1mo ago), licensed MIT. It adds 60 tokens to every session and 927 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.