From apple-notes-pack
Configures Apple Notes automation for multiple accounts and environments, enabling environment separation (iCloud vs local). Trigger: 'apple notes multi account'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/apple-notes-pack:apple-notes-multi-env-setupThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Apple Notes supports multiple accounts simultaneously: iCloud (default), Gmail/Yahoo/AOL via IMAP, Exchange, and the local "On My Mac" account. Each account has isolated folders and notes, making accounts the natural boundary for environment separation. Use this to separate personal vs work notes, production vs development data, or synced vs local-only content. The "On My Mac" account is especi...
Apple Notes supports multiple accounts simultaneously: iCloud (default), Gmail/Yahoo/AOL via IMAP, Exchange, and the local "On My Mac" account. Each account has isolated folders and notes, making accounts the natural boundary for environment separation. Use this to separate personal vs work notes, production vs development data, or synced vs local-only content. The "On My Mac" account is especially useful for development and testing because it never syncs to iCloud, so experiments stay local.
# List all configured Notes accounts
osascript -l JavaScript -e '
const Notes = Application("Notes");
Notes.accounts().map(a =>
a.name() + " — " + a.notes().length + " notes, " +
a.folders().map(f => f.name()).join(", ")
).join("\n");
'
// src/config/environments.ts
interface NotesEnvConfig {
accountName: string;
defaultFolder: string;
autoSync: boolean;
description: string;
}
const ENVIRONMENTS: Record<string, NotesEnvConfig> = {
production: {
accountName: "iCloud",
defaultFolder: "Production",
autoSync: true,
description: "Live notes synced across all devices via iCloud",
},
staging: {
accountName: "iCloud",
defaultFolder: "Staging",
autoSync: true,
description: "Test notes visible on other devices for QA",
},
development: {
accountName: "On My Mac",
defaultFolder: "Dev",
autoSync: false,
description: "Local-only notes for development and testing",
},
};
function getEnv(): string {
return process.env.NOTES_ENV || "development";
}
// JXA wrapper that enforces account isolation
const Notes = Application("Notes");
function getAccount(envName) {
const config = {
production: "iCloud",
staging: "iCloud",
development: "On My Mac",
};
const accountName = config[envName] || config.development;
const account = Notes.accounts().find(a => a.name() === accountName);
if (!account) throw new Error(`Account "${accountName}" not found. Enable it in Notes > Settings > Accounts.`);
return account;
}
function getFolder(account, folderName) {
let folder = account.folders().find(f => f.name() === folderName);
if (!folder) {
// Create folder if it does not exist
folder = Notes.Folder({ name: folderName });
account.folders.push(folder);
}
return folder;
}
function createNote(envName, folderName, title, body) {
const account = getAccount(envName);
const folder = getFolder(account, folderName);
const note = Notes.Note({ name: title, body: body });
folder.notes.push(note);
return note.id();
}
# "On My Mac" is disabled by default on newer macOS versions
# Enable via Notes preferences:
# Notes > Settings > check "Enable the On My Mac account"
# Verify it is available
osascript -l JavaScript -e '
const Notes = Application("Notes");
const local = Notes.accounts().find(a => a.name() === "On My Mac");
local ? "On My Mac: enabled (" + local.notes().length + " notes)" : "On My Mac: DISABLED";
'
| Issue | Cause | Solution |
|---|---|---|
| "On My Mac" account not found | Disabled in Notes settings | Notes > Settings > enable "On My Mac" account |
| Gmail account shows no notes | IMAP notes not enabled | System Settings > Internet Accounts > Gmail > enable Notes |
| Folder creation fails on Gmail | IMAP accounts have read-only folder structure | Use iCloud or "On My Mac" for custom folders |
| Notes appear in wrong account | defaultAccount used instead of explicit account | Always specify account by name; never rely on default |
| Sync conflict between environments | Same iCloud account, different folders | Use distinct folder names per environment (Prod/, Staging/) |
For access control across accounts, see apple-notes-enterprise-rbac. For monitoring account health, see apple-notes-observability.
6plugins reuse this skill
First indexed Jul 10, 2026
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin apple-notes-packImplement access control for multi-user Apple Notes automation. Trigger: "apple notes access control".
Automates Apple Notes via JXA. Use when asked to "create notes programmatically", "automate Notes app", "JXA notes scripting", or "organize notes with automation". Covers accounts/folders/notes, HTML bodies, queries, moves, and Objective-C/UI fallbacks for Notes.app automation on macOS.
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.