AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Apple Notes Import

skill-gregthegreek-claude-obsidian-apple-notes-import · by GregTheGreek

A Claude skill from GregTheGreek/claude-obsidian.

No reviews yet
0 installs
27 views
0.0% view→install

Install

$ agentstack add skill-gregthegreek-claude-obsidian-apple-notes-import

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-gregthegreek-claude-obsidian-apple-notes-import)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
7mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Apple Notes Import? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Apple Notes Import

Import notes from the "Claude Inbox" folder in iCloud Notes and dispatch content to appropriate agents based on @tags.

Manifest Tracking

The skill tracks imported notes in a manifest file to avoid re-processing:

Manifest location: ~/.claude/data/apple-notes-manifest.json

Manifest structure:

{
  "imported": {
    "Note Title": {
      "importedAt": "2026-01-19T12:00:00Z",
      "modificationDate": "2026-01-19T11:30:00Z",
      "contentHash": "abc123..."
    }
  }
}

Status logic:

  • NEW: Note name not in manifest
  • MODIFIED: Note in manifest but modification date changed
  • IMPORTED: Note in manifest with same modification date (already processed)

Workflow

Step 1: Check Prerequisites

First, verify the Claude Inbox folder exists:

osascript -e 'tell application "Notes" to tell account "iCloud" to exists folder "Claude Inbox"'

If this returns false, inform the user:

> The "Claude Inbox" folder doesn't exist in your iCloud Notes. > > To set up: > 1. Open the Notes app > 2. In the iCloud account section, create a new folder called "Claude Inbox" > 3. Add notes to this folder with @tags in the body (e.g., @thinking, @write) > 4. Run this skill again

If you get a permission error, inform the user:

> Terminal needs permission to control Notes. > > Go to System Preferences > Privacy & Security > Automation and enable "Notes" for Terminal.

Step 2: Load Manifest

Read the manifest file if it exists:

cat ~/.claude/data/apple-notes-manifest.json 2>/dev/null || echo '{"imported":{}}'

Parse the JSON to get the list of previously imported notes.

Step 3: Count and Extract Notes

Count notes in the inbox:

osascript -e 'tell application "Notes" to tell account "iCloud" to tell folder "Claude Inbox" to count of notes'

If count is 0, inform the user:

> Your Claude Inbox is empty. Add notes with @tags to import them: > - @thinking - Start a thinking session > - @write - Get writing feedback

Extract all notes with their names, modification dates, and content:

osascript -e '
tell application "Notes"
    tell account "iCloud"
        tell folder "Claude Inbox"
            set output to ""
            repeat with n in notes
                set noteName to name of n
                set noteBody to body of n
                set noteMod to modification date of n
                set output to output & "---NOTE_START---" & return & "NAME: " & noteName & return & "MODIFIED: " & noteMod & return & "BODY:" & return & noteBody & return & "---NOTE_END---" & return
            end repeat
            return output
        end tell
    end tell
end tell
'

Step 4: Compare Against Manifest

For each extracted note:

  1. Check if note name exists in manifest
  2. If exists, compare modification date
  3. Determine status: NEW, MODIFIED, or IMPORTED

Step 5: Parse Content and Present Notes

The note body comes as HTML. To extract plain text and @tags:

  1. Strip HTML tags: sed 's/]*>//g'
  2. Decode common HTML entities: sed 's/ / /g; s/&/\&/g; s/<//g; s/"/"/g'
  3. Find @tags: grep -oE '@[a-zA-Z]+'

Present notes grouped by status:

Notes in Claude Inbox:

NEW:
1. [Note Title] - @thinking

MODIFIED (content changed since last import):
2. [Another Note] - @write

ALREADY IMPORTED:
3. [Old Note] - @thinking (imported 2026-01-18)

Which note would you like to process? (enter number, "new" for all new notes, or "all")

If there are no NEW or MODIFIED notes:

> No new notes in your Claude Inbox. All notes have been imported previously. > > You can still re-process an existing note if needed, or add new notes to the inbox.

Use AskUserQuestion to let the user select.

Step 6: Route to Agent

Based on detected @tags, route to the appropriate agent:

| Tag | Action | |-----|--------| | @thinking | Launch thinking-partner agent with note as context | | @write | Launch writing_critic agent with note content | | @research | Inform user: "Research routing not yet implemented - would you like to process this note differently?" | | (no tag) | Ask user which agent to use | | (multiple tags) | Ask user which tag/agent to use |

Step 7: Update Manifest

After successfully processing a note, update the manifest:

  1. Ensure directory exists: mkdir -p ~/.claude/data
  2. Add/update the note entry with current timestamp and modification date
  3. Write updated manifest back to file

Use the Write tool to update ~/.claude/data/apple-notes-manifest.json.

Agent Dispatch

For @thinking

Present the note content, then transition to thinking-partner behavior:

> Imported from Apple Notes: [Note Title] > > [Note content here] > > --- > > I'll help you think through this. Are we continuing an existing thread, or starting fresh?

Then use the Task tool with subagent_type: "thinking-partner" to begin the session, passing the note content as context.

For @write

Present the note content, then transition to writing_critic behavior:

> Imported from Apple Notes: [Note Title] > > [Note content here] > > --- > > I'll help review this writing. What's the intended audience and purpose?

Then use the Task tool with subagent_type: "writing_critic" to begin the review, passing the note content as context.

Important Notes

  • Read-only on Notes: This skill never modifies or deletes notes from Apple Notes
  • Manifest tracking: Imported notes are tracked locally to avoid re-processing
  • macOS only: Uses AppleScript which is only available on macOS
  • iCloud account only: Only reads from the iCloud Notes account, not Gmail/Exchange
  • First run: The first time you run this, macOS will prompt to grant Terminal permission to control Notes - approve this to proceed

Example Session

User: /apple-notes-import

Claude: Checking Claude Inbox in iCloud Notes...

Found 3 notes:

NEW:
1. "Product Strategy Ideas" - @thinking

ALREADY IMPORTED:
2. "Draft Blog Post" - @write (imported 2026-01-18)
3. "Meeting Notes" - (no tags) (imported 2026-01-17)

Which note would you like to process?

User: 1

Claude: **Imported from Apple Notes:** Product Strategy Ideas

We should consider three main approaches for the Q2 launch:
1. Focus on enterprise features
2. Double down on developer experience
3. Hybrid approach with modular pricing

Each has tradeoffs I want to think through carefully.

---

I'll help you think through this. Are we continuing an existing thread, or starting fresh?

[After processing, manifest is updated to record this import]

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.