Skip to content
cccskills
FreePublished on GitHub

Shortcuts

Build a macOS Shortcut once through computer use, then list or run it from the command line. This connects LifeOS to Apple-only actions such as HomeKit when no other automation route or API is available.

OriginalShow the original description

Bridges macOS Shortcuts.app into LifeOS: build a Shortcut once via computer use, then call it as a CLI to reach Apple-only capabilities like HomeKit. USE WHEN build a shortcut, create a shortcut, macOS shortcut, shortcuts app, run a shortcut, automate a native mac task, HomeKit automation that needs a shortcut, thermostat shortcuts, control home from CLI, wrap an Apple-only action, no API for this app. NOT FOR web automation (Interceptor), shell-scriptable tasks (Bash), devices reachable by API (Home / Network).

danielmiessler/LifeOS19,635 stars(GitHub 19,635 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Creating a Shortcut for a native macOS action
  • Running a saved HomeKit Shortcut from the CLI
  • Listing available Shortcuts or checking a name
  • Calling an Apple-only action with input

Files included (6)

  • SKILL.md4.9 KB
  • Intents/BuildShortcut.md5.2 KB
  • Intents/ListShortcuts.md1.1 KB
  • Intents/RunShortcut.md1.4 KB
  • Setup.md2.9 KB
  • Tools/Shortcuts.ts3.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Shortcuts

Turn GUI-only macOS Shortcuts into callable LifeOS automation. Shortcuts reaches Apple-only surfaces (HomeKit/Home, native system actions, app intents) that have no other automation path. Computer use is slow and pixel-fragile, while the shortcuts CLI is fast and deterministic but can only run shortcuts, never build them. So each capability is built once (BuildShortcut) and is plain CLI from then on (RunShortcut, through Tools/Shortcuts.ts). This is CLI-first doctrine applied to the no-API problem.

Ideal State

  • Each Apple-only capability is built once as a Shortcut under the exact name its consumers call, and is proven by a run whose output matches the spec, never by how the editor looks.
  • Every later use is plain CLI through Tools/Shortcuts.ts or shortcuts run, with no pixels and no computer use.
  • A failed run or missing shortcut is diagnosed against the exact registered names, so a case or whitespace mismatch is caught before anything is rebuilt.

Intent Routing

IntentTriggerFile
BuildShortcut"build a shortcut", "create a shortcut", "set up the X shortcut"Intents/BuildShortcut.md
RunShortcut"run the X shortcut", "invoke X", any consumer calling a built shortcutIntents/RunShortcut.md
ListShortcuts"list shortcuts", "what shortcuts exist", "does X exist"Intents/ListShortcuts.md
FileRead when
Setup.mdfirst-time setup, a worked example of adding your own shortcut, and the read-only proof commands

Gotchas

  • Creation is GUI-only: there is no shortcuts create. The shortcuts CLI runs, lists, and views, but cannot author. Never claim a shortcut was "built" via CLI.
  • Name matching is exact, case and spaces included. shortcuts run "Casa Set Zone 1 Temp" fails silently-ish (nonzero exit) if the registered name is casa set zone 1 temp or has a trailing space. Confirm with exists after building, register the exact string a consumer expects, and on a nonzero run with no clear error, diff the target string against list before rebuilding anything.
  • Input arrives on stdin; output is whatever the last action returns. The CLI pipes --input to the shortcut's stdin and captures the final action's output on stdout; without a final output action, stdout comes back empty.

Data & Config

The skill keeps no per-user data. Shortcut names belong to the consumer that calls them: a home-control skill, for example, builds its thermostat names from thermostat_shortcut_prefix and thermostat_room lines in its own Config.md. There is no config file for this skill. First-time setup, a worked example and a read-only proof: Setup.md.

The frontmatter evals check (list) proves this skill on its own. A consumer that depends on a particular shortcut name can check it with Tools/Shortcuts.ts exists "<name>", which exits 1 when that name is not registered.

Examples

Example 1: Build the thermostat status shortcut

User: "build the thermostat status shortcut"
→ BuildShortcut, authored through Skill("ComputerUse", "Drive") --app Shortcuts
→ "<prefix> Thermostat Status" exists, reads every thermostat through Home actions,
  and `bun Tools/Shortcuts.ts run "<prefix> Thermostat Status"` returns
  "Zone 1 21 heating, Zone 2 20 idle"

Example 2: A consumer runs a built shortcut

A home-control skill's thermostat script calls `shortcuts run "<prefix> Set Zone 1 Temp"`
with "21" on stdin → RunShortcut path → deterministic, no computer use

Example 3: Check what's there

User: "do my <prefix> shortcuts exist yet?"
→ ListShortcuts: bun Tools/Shortcuts.ts list | rg "<prefix>"
→ the matching names, or a plain "not built yet"

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

AnnualReports

FreeSummary

Find and fetch vendor cybersecurity reports, then compare their findings on topics such as ransomware, breaches, cloud security, and AI. Analyses identify the reports consulted and cite each figure by vendor, year, and report, including where sources disagree.

  • Find reports in a cybersecurity topic area
  • Fetch a specific vendor report
  • Compare ransomware findings across reports
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Compare a component's own design needs with the goals of the larger system through three structured passes. The result identifies conflicts, recommends an appropriate scope, and assesses whether the proposed design fits the whole.

  • Choosing between a service, a library, and inline code
  • Comparing feature requests with product goals
  • Checking how new components fit an existing system
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Aphorisms

FreeSummary

Find quotes that fit a text’s themes, with attribution and a short reason for each suggestion. Add sourced quotes, research thinkers, and organize a quote collection by theme and usage history to avoid repetition.

  • Finding a fitting quote for a newsletter
  • Saving sourced quotes without duplicates
  • Researching a thinker’s quotes by theme
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Art

FreeSummary

Create blog illustrations, technical diagrams, comparisons, comics, and icons through workflows tailored to each format. The skill guides composition, color, and model selection, then stages generated images for review before they are used in a project.

  • Creating blog header illustrations
  • Explaining a system with a technical diagram
  • Visualizing comparisons and timelines
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArtDirection

FreeSummary

Assess the visual quality of images, films, slides, and site captures against a brief and craft criteria. Two vision judges score the work and rank defects, guiding bounded revision; delivery is gated on a passing critique, with human calibration labels recorded separately.

  • Reviewing a render and listing the most important visual defects
  • Iterating on a film or slide deck until it meets a defined bar
  • Checking whether an image reads as professional
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArXiv

FreeSummary

Find arXiv papers by topic, research category, or paper ID. Retrieve titles, authors, abstracts, and links, check new submissions, and add AlphaXiv's AI-generated overviews when available to help decide which papers to read.

  • Checking new AI and machine learning papers
  • Finding papers on a specific research topic
  • Looking up a paper by its ID or arXiv URL
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

See all skills by danielmiessler

Report a problem with this skill