apple-notes

A command-line tool workflow for managing Apple Notes on macOS. It can create, view, search, edit, and export notes, which can sync through iCloud.

In plain words
What is it for?
Use it to manage, find, change, or export Apple Notes from the command line.
Why use it?
It provides a terminal-based way to work with notes, while also checking for common setup and macOS automation-permission problems when a command fails.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/atomicbot-ai/atomic-agent/apple-notes
Any agent
npx skills add AtomicBot-ai/atomic-agent --skill apple-notes
Clone the repo
git clone --depth 1 https://github.com/AtomicBot-ai/atomic-agent

Made for: Claude Code, Codex.

Per session 27 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,299 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00027 $0.01299
Opus 5 $0.00014 $0.00649
Sonnet 5 $0.00005 $0.00260
Haiku 4.5 $0.00003 $0.00130

Measured 2d ago against content hash 1837ee149cb1, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

apple-notes scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

If `brew` itself is missing (`exit != 0`, `command not found: brew`), do NOT attempt to install Homebrew automatically — that requires `sudo` and a network curl-pipe-bash. Reply with: "You don't have Homebrew installed.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

If `brew` itself is missing (`exit != 0`, `command not found: brew`), do NOT attempt to install Homebrew automatically — that requires `sudo` and a network curl-pipe-bash. Reply with: "You don't have Homebrew installed.
starter-skills/apple-notes/SKILL.md · 127 lines

How it starts

The opening of the file, as written. The whole thing — 127 lines — stays where its author put it; the contents beside it link to each section on GitHub.

apple-notes

Drive Apple Notes from the terminal via memo. Notes sync across Apple devices through iCloud.

Setup check (lazy — do NOT probe every turn)

Do not run a memo --version probe before each request. Just run the memo command the user asked for directly. Only when a command fails map the error to a Setup playbook branch:

  • stderr mentions command not found / memo: command not foundSetup playbook → "memo is not installed".
  • stderr mentions osascript / "Not authorized to send Apple events to Notes" → Setup playbook → "Automation permission denied".
  • macOS not detected (e.g. uname returns Linux) → reply that this skill is macOS-only and stop. Do NOT try to install anything.

If unsure which branch applies, capture the actual stderr and ask the user before proceeding — never assume.

Setup playbook (when prerequisites are missing)

When a check fails, the agent's job is to OFFER concrete help and EXECUTE the fix itself — not to dump install instructions on the user. Use this dialogue shape:

  1. State plainly what is missing (one short reply).
  2. Offer the most direct remediation the agent can perform via tools.
  3. Wait for the user's yes/no reply.
  4. On yes, execute the fix (the runtime approval gate will surface the command for confirmation).
  5. Retry the original request; only then proceed.

memo is not installed

Reply (solo reply step):

"The memo utility is not installed. I can install it myself via Homebrew (brew install antoniorodr/memo/memo); it needs your confirmation and takes ~30 seconds. Install it?"

If user agrees, execute as two consecutive solo steps:

[{ "tool": "os.shell.run", "args": { "cmd": "brew", "args": ["tap", "antoniorodr/memo"] } }]
[{ "tool": "os.shell.run", "args": { "cmd": "brew", "args": ["install", "antoniorodr/memo/memo"] } }]

After both succeed, retry the original command.

If brew itself is missing (exit != 0, command not found: brew), do NOT attempt to install Homebrew automatically — that requires sudo and a network curl-pipe-bash. Reply with: "You don't have Homebrew installed. I can't install it automatically — that requires sudo and an interactive install. Install it manually from https://brew.sh/, then I'll continue."

Read the full file on GitHub · 127 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 127 lines · 27 tokens per session scan B 1837ee149cb1

Subscribe to this mod's changes

apple-notes is a skill published in the GitHub repository AtomicBot-ai/atomic-agent (2,438 stars, last pushed today), licensed MIT. It adds 27 tokens to every session and 1,299 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 2 findings (asks for root, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

lilbee-mcp

Search and manage the user's local lilbee knowledge base over MCP. Use whenever the user has indexed code, docs, PDFs, or web pages into lilbee and you need cited answers, or whenever they ask you to ingest content, swap models, or tune retrieval against their library. Every fact returned cites file and line.…

tobocop2/lilbee · 95 tokens

lilbee-mcp-wiki

Wiki layer for lilbee. Use only when the user explicitly asks about wiki / concept / entity / synthesis pages, or when lilbeestatus shows a built wiki. Requires the lilbee-mcp skill to be active for the underlying MCP connection.

tobocop2/lilbee · 60 tokens

tiktok-video

一句话需求 → 成品竖屏短视频:写分镜、自动搜免费素材、TTS 配音、逐字卡拉OK字幕、BGM、ffmpeg 合成 1080x1920 MP4(零 API key 可用).

Fangyuan025/Chaty · 59 tokens

harness-init-runner

Initialize a lightweight repo-local Node.js harness (harness/ + .harness/) WITHOUT AIOS dependency. Use ONLY when you need a standalone, portable harness. If AIOS is installed, use aios-long-running-harness instead — it has rex Command hosting, ContextDB integration, and checkpoint recovery.

rexleimo/aios · 70 tokens

run-inferbench-backend

Build, launch, smoke-test and drive the InferBench FastAPI backend (:7777) and its inference-engine orchestration. Use when asked to run, start, launch, boot, smoke-test, benchmark, or drive the inferbench backend / API / engines (llama.cpp, ollama, vLLM, SGLang, TGI), or to verify an engine actually starts and runs a…

JoniMartin27/inferbench · 90 tokens

manage-llm-server

Inspect and control the local LLM server(s) via llama-launcher — list profiles, see what's running, switch models, tail logs. Use when the user wants to know what model is loaded, change models, start/stop or restart the server, or troubleshoot a stuck load.

airiclenz/llama-launcher · 66 tokens