원클릭으로
apple-notes
Manage Apple Notes via the `memo` CLI on macOS — create, view, search, edit, export.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Manage Apple Notes via the `memo` CLI on macOS — create, view, search, edit, export.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Transcribe speech from audio files (mp3, m4a, wav, ogg, flac, webm) to text using the local `whisper` CLI — no API key. Use whenever a task hinges on the spoken content of an audio attachment.
Read macOS Calendar events via the `icalBuddy` CLI and create events via AppleScript (osascript). Use to check the user's calendar, agenda, upcoming events, or add an event on macOS.
Manage Apple Reminders via the `remindctl` CLI on macOS — list, add, complete, delete, manage lists.
Manage Docker containers, images, volumes, and Compose stacks via the `docker` CLI — list, inspect, logs, run, build, stop, remove, compose up/down. Use for local container ops.
Process audio and video with the `ffmpeg` / `ffprobe` CLIs — convert, trim, extract audio, resize, change format, make GIFs, inspect media. Use for any audio/video transformation.
Drive GitHub via the official `gh` CLI — repos, issues, pull requests, releases, gists, Actions runs, and raw REST through `gh api`. Use when the user asks to inspect or manage GitHub.
| name | apple-notes |
| description | Manage Apple Notes via the `memo` CLI on macOS — create, view, search, edit, export. |
| version | 1.2.1 |
| requires_tools | ["os.shell.run"] |
| dangerous | false |
| platforms | ["darwin"] |
Drive Apple Notes from the terminal via memo. Notes sync across Apple devices through iCloud.
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:
command not found / memo: command not found → Setup playbook → "memo is not installed".osascript / "Not authorized to send Apple events to Notes" → Setup playbook → "Automation permission denied".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.
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:
Reply (solo reply step):
«Утилита
memoне установлена. Я могу поставить её сам через Homebrew (brew install antoniorodr/memo/memo), это потребует подтверждения и ~30 секунд. Поставить?»
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: «У вас не установлен Homebrew. Я не могу поставить его автоматически — это требует sudo и интерактивной установки. Ставить вручную с https://brew.sh/, потом я продолжу.»
memo talks to Notes.app via AppleScript; macOS guards this behind Privacy & Security → Automation. The agent cannot toggle that switch programmatically. Help the user navigate there:
[{ "tool": "os.shell.run", "args": { "cmd": "open", "args": ["x-apple.systempreferences:com.apple.preference.security?Privacy_Automation"] } }]
Then reply:
«Я открыл нужную панель. Найдите там вашу терминальную программу или
atomic-agentи включите галочку рядом с Notes. После этого скажите "готово" — я повторю проверку.»
When user says готово / done, retry a benign read (memo notes -s __probe__ to trigger the OS prompt if still pending), then proceed.
obsidian skill instead.memory.notes.store tool.memo only talks to Apple Notes.All examples invoke os.shell.run with cmd: "memo" and the args array shown.
| Goal | args |
|---|---|
| List all notes | ["notes"] |
| Filter by folder | ["notes", "-f", "Folder Name"] |
| Fuzzy search | ["notes", "-s", "query"] |
| Goal | args |
|---|---|
| Open interactive editor | ["notes", "-a"] |
| Quick add with title | ["notes", "-a", "Note Title"] |
| Goal | args |
|---|---|
| Pick a note to edit (interactive) | ["notes", "-e"] |
| Pick a note to delete (interactive) | ["notes", "-d"] |
| Move a note to another folder (interactive) | ["notes", "-m"] |
| Goal | args |
|---|---|
| Export to HTML/Markdown | ["notes", "-ex"] |
-a without title, -e, -d, -m, -ex) need a real TTY. They will hang or error from a non-interactive shell — prefer the explicit-title form (-a "Title") when scripting.obsidian (vault) or memory.notes.store (agent memory).