Skip to main content

macos-use

macOS automation with **activation energy** for machine skill rediscovery:

Quellinformationen

Repository
plurigrid/asi
Letzte Quellaktivität
10. Juni 2026 um 11:55
Erkannte Sprache von SKILL.md
Englisch
Sterne
67
Forks
12

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
macos-use
description
macOS automation with **activation energy** for machine skill rediscovery:
# macos-use Skill > *"Resilient macOS automation through curiosity-driven skill rediscovery."* ## Overview macOS automation with **activation energy** for machine skill rediscovery: - **Human skill**: TTS feedback (`say`), visual cues, accessibility - **Machine resilience**: Self-recovery via bisimulation game - **Activation energy**: Compression progress rewards exploration ## GF(3) Triad | Component | Trit | Role | |-----------|------|------| | keychain-secure | -1 | Validate credentials | | macos-use | 0 | Coordinate automation | | curiosity-driven | +1 | Generate exploration | **Conservation**: (-1) + (0) + (+1) = 0 ✓ ## TTS Interface (say) ```bash # Basic speech say "Hello from the machine" # Voice selection say -v Alex "Default voice" say -v Samantha "Alternative voice" # Rate control (words per minute) say -r 200 "Faster speech" say -r 100 "Slower speech" # Inline modifiers say "Normal [[slnc 500]] pause [[rate 200]] faster [[volm 0.5]] quieter" say "[[emph +]]Emphasized[[emph -]] word" say "[[pbas +10]]Higher pitch" ``` ## Curiosity-Driven Rediscovery When a skill installation fails, the agent should: ```python class MacOSUseRediscovery: """ Activation energy = compression progress on macOS APIs. """ def explore_api(self, api_name: str) -> float: """ Explore an API and measure learnability. """ # Before: what we know len_before = self.compress(self.world_model) # Probe the API result = subprocess.run(['man', api_name], capture_output=True) self.update_world_model(result.stdout) # After: what we learned len_after = self.compress(self.world_model) # Activation energy = compression progress return len_before - len_after def rediscover_skill(self, skill_name: str) -> bool: """ Rediscover a failed skill through exploration. """ candidates = [ 'say', 'security', 'osascript', 'defaults', 'open', 'pbcopy', 'pbpaste', 'screencapture' ] for api in candidates: progress = self.explore_api(api) if progress > self.activation_threshold: # Found learnable pattern! self.install_capability(api, skill_name) return True return False ``` ## Resilience via Bisimulation ```yaml # .ruler/skills/macos-use.yaml macos-use: dispersal: primary: ~/.codex/skills/macos-use/ mirrors: - ~/.claude/skills/macos-use/ - ~/.cursor/skills/macos-use/ recovery: strategy: bisimulation-game on_failure: - role: attacker action: probe_alternative_apis trit: -1 - role: defender action: restore_from_mirror trit: +1 - role: arbiter action: verify_gf3_conservation trit: 0 ``` ## Core APIs | API | Purpose | Example | |-----|---------|---------| | `say` | Text-to-speech | `say -v Alex "Hello"` | | `security` | Keychain access | `security find-generic-password` | | `osascript` | AppleScript/JXA | `osascript -e 'display dialog "Hi"'` | | `defaults` | Preferences | `defaults read com.apple.finder` | | `open` | Launch apps | `open -a Safari` | | `screencapture` | Screenshots | `screencapture -x screen.png` | | `pbcopy/pbpaste` | Clipboard | `echo "text" | pbcopy` | ## Babashka Integration ```clojure #!/usr/bin/env bb (ns macos-use (:require [babashka.process :as p] [cheshire.core :as json])) (defn say! "Speak text with options." [text & {:keys [voice rate] :or {voice "Alex" rate 175}}] (p/shell "say" "-v" voice "-r" (str rate) text)) (defn keychain-get "Get password from keychain." [service account] (:out (p/shell {:out :string} "security" "find-generic-password" "-s" service "-a" account "-w"))) (defn notify! "Display macOS notification." [title message] (p/shell "osascript" "-e" (format "display notification \"%s\" with title \"%s\"" message title))) (defn compression-progress "Measure curiosity reward for API exploration." [api-name world-model] (let [before (count (str world-model)) man-page (:out (p/shell {:out :string} "man" api-name)) after (count (str world-model man-page))] (- before after))) ; Positive = learned something compressible ``` ## Activation Energy Protocol When skill installation fails: 1. **Detect failure**: Component doesn't regenerate its producer 2. **Inject curiosity**: Explore related APIs for compression progress 3. **Accumulate energy**: Each learnable pattern adds activation energy 4. **Threshold crossing**: When energy > threshold, attempt reinstall 5. **Verify bisimulation**: Check new state is equivalent to intended ```sql -- Track activation energy in DuckDB INSERT INTO events (event, data, ts) VALUES ( 'activation:energy', '{"skill":"macos-use","api":"say","progress":42.5,"threshold":50.0}', NOW() ); ``` ## Commands ```bash just macos-say "text" # Speak via TTS just macos-notify "title" "msg" # Display notification just macos-keychain-get svc acc # Get keychain password just macos-rediscover skill # Curiosity-driven rediscovery ``` ## See Also - [keychain-secure](../keychain-secure/SKILL.md) - Credential management (-1) - [curiosity-driven](../curiosity-driven/SKILL.md) - Activation energy (+1) - [bisimulation-game](../bisimulation-game/SKILL.md) - Resilience - [say-ducklake-xor](../say-ducklake-xor/SKILL.md) - TTS integration ## References 1. Schmidhuber, J. (2010). "Formal Theory of Creativity, Fun, and Intrinsic Motivation." 2. Maturana & Varela (1980). "Autopoiesis and Cognition." 3. Apple Developer Documentation: Speech Synthesis Manager
Auf GitHub ansehen