apple-notes-local-dev-loop

Solid

Set up local development workflow for Apple Notes automation with JXA hot reload. Trigger: "apple notes dev loop".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 97/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Apple Notes Local Dev Loop ## Overview Iterative development workflow for Apple Notes JXA scripts with file watching and test helpers. ## Instructions ### Step 1: Project Setup ```bash mkdir apple-notes-automation && cd apple-notes-automation npm init -y npm install -D chokidar tsx typescript ``` ### Step 2: JXA Runner with Hot Reload ```typescript // src/dev/watch-runner.ts import { watch } from "chokidar"; import { execSync } from "child_process"; watch("scripts/*.js", { ignoreInitial: true }).on("change", (path) => { console.log(`Changed: ${path} — running...`); try { const output = execSync(`osascript -l JavaScript "${path}"`, { encoding: "utf8" }); console.log(output); } catch (err: any) { console.error(err.stderr); } }); console.log("Watching scripts/*.js for changes..."); ``` ### Step 3: Test Helper ```typescript // src/dev/test-notes.ts import { execSync } from "child_process"; function runJxa(script: string): string { return execSync(`osascript -l JavaScript -e '${script}'`, { encoding: "utf8" }).trim(); } function getNoteCount(): number { return parseInt(runJxa("Application(\"Notes\").defaultAccount.notes.length")); } function createTestNote(title: string): string { return runJxa(` const Notes = Application("Notes"); const note = Notes.Note({name: "${title}", body: "<p>Test</p>"}); Notes.defaultAccount.folders[0].notes.push(note); note.id(); `); } export { runJxa, getNoteCount, createTestNote }; ``` ### Step ...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category