Claude-code-plugins-plus-skills apple-notes-multi-env-setup

install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/apple-notes-pack/skills/apple-notes-multi-env-setup" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-apple-notes-multi-env-setup && rm -rf "$T"
manifest: plugins/saas-packs/apple-notes-pack/skills/apple-notes-multi-env-setup/SKILL.md
source content

Apple Notes Multi-Environment Setup

Overview

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.

Account Discovery

# 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");
'

Environment-Based Configuration

// 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";
}

Account-Scoped Operations

// 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();
}

Enable "On My Mac" Account

# "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";
'

Error Handling

IssueCauseSolution
"On My Mac" account not foundDisabled in Notes settingsNotes > Settings > enable "On My Mac" account
Gmail account shows no notesIMAP notes not enabledSystem Settings > Internet Accounts > Gmail > enable Notes
Folder creation fails on GmailIMAP accounts have read-only folder structureUse 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 environmentsSame iCloud account, different foldersUse distinct folder names per environment (
Prod/
,
Staging/
)

Resources

Next Steps

For access control across accounts, see

apple-notes-enterprise-rbac
. For monitoring account health, see
apple-notes-observability
.