Skillshub apple-notes-local-dev-loop
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/apple-notes-local-dev-loop" ~/.claude/skills/comeonoliver-skillshub-apple-notes-local-dev-loop && rm -rf "$T"
manifest:
skills/jeremylongshore/claude-code-plugins-plus-skills/apple-notes-local-dev-loop/SKILL.mdsource 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
mkdir apple-notes-automation && cd apple-notes-automation npm init -y npm install -D chokidar tsx typescript
Step 2: JXA Runner with Hot Reload
// 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
// 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 4: Dev Scripts
{ "scripts": { "dev": "tsx src/dev/watch-runner.ts", "test:notes": "tsx src/dev/test-notes.ts" } }
Output
- Hot-reload JXA development with file watching
- Test helpers for note CRUD operations
- Iterative script development workflow