AGENT SKILL

notes_move_to_folder

Move a note (by exact title match) into a Notes folder (by exact folder name). Pure AppleScript — no UI scripting, no flakiness. The folder must already exist; create it with osascript or via the Notes UI before calling this skill. Why a skill (not raw shell osascript): models routinely emit the wrong AppleScript syntax for `move`, hit "Can't make ... into type specifier" errors, or move into the wrong account's folder. This skill encapsulates the canonical pattern + cross-account search.

License 许可
Apache-2.0
所属仓库
LocalKinAI/kinclaw
最近更新
2026-11-01
Stars
★ 9
Forks
3

01 前言 Front Matter

args
[ "{{note}}", "{{folder}}" ]
name
notes_move_to_folder
schema
{ "note": { "type": "string", "required": true, "description": "Exact note title to move" }, "folder": { "type": "string", "required": true, "description": "Exact name of the destination folder" } }
command
[ "sh", "-c", "NOTE=\"$1\"; FOLDER=\"$2\"\n[ -z \"$NOTE\" ] && { echo \"note title required\" >&2; exit 1; }\n[ -z \"$FOLDER\" ] && { echo \"folder name required\" >&2; exit 1; }\n\nosascript 2>&1 <<APPLE\ntell application \"Notes\"\n set theNote to missing value\n set targetFolder to missing value\n repeat with acct in accounts\n try\n set ms to (every note of acct whose name = \"$NOTE\")\n if (count of ms) > 0 then set theNote to item 1 of ms\n end try\n try\n set fs to (every folder of acct whose name = \"$FOLDER\")\n if (count of fs) > 0 then set targetFolder to item 1 of fs\n end try\n end repeat\n if theNote is missing value then\n return \"ERR: note '$NOTE' not found in any account\"\n end if\n if targetFolder is missing value then\n return \"ERR: folder '$FOLDER' not found in any account\"\n end if\n move theNote to targetFolder\n return \"moved '$NOTE' -> '$FOLDER'\"\nend tell\nAPPLE\n", "_" ]
timeout
30
description
Move a note (by exact title match) into a Notes folder (by exact folder name). Pure AppleScript — no UI scripting, no flakiness. The folder must already exist; create it with osascript or via the Notes UI before calling this skill. Why a skill (not raw shell osascript): models routinely emit the wrong AppleScript syntax for `move`, hit "Can't make ... into type specifier" errors, or move into the wrong account's folder. This skill encapsulates the canonical pattern + cross-account search.

02 资源文件 4

03 SKILL.md 正文

notes_move_to_folder — move a Notes note into a folder

Pure AppleScript wrapper for the move <note> to <folder> pattern, with cross-account search so it works regardless of whether the note lives in iCloud, "On My Mac", or another account.

Examples

notes_move_to_folder note="KinBench Move 176" folder="kinbench-folder"
  → moved 'KinBench Move 176' -> 'kinbench-folder'

If the note or folder is missing, returns a clear ERR: line — the caller should create the folder first via osascript or skip the move.

04 同仓库更多 Skills

LocalKinAI
LocalKinAI/kinclaw

web

Universal web tool — fetches and interacts with web pages through real Chromium (Playwright). Renders JavaScript, follows redirects, handles cookies, bypasses many anti-scrape stubs that block plain `web_fetch`. Each call launches a fresh browser, executes the requested flow, closes. ~2-3s cold start; no persistent state. Use INSTEAD of `web_fetch` when: - Target is a JS-heavy SPA (prices via XHR, lazy content) - `web_fetch` returned an anti-scrape placeholder (Zhihu's "click here" stub, JD's chrome-only HTML) - You need to interact (click, fill input) before extracting Common patterns: fetch rendered text: url=X wait for content then read: url=X wait_for=".price" extract specific element: url=X selector=".product-list" click and read result: url=X click=".search-button" fill form, then read: url=X click="input[name=q]" type_text="kinclaw" fill + Enter (React forms): url=X click="input" type_text="hi" press_enter=true wait_for=".reply" screenshot the page: url=X screenshot=true (returns image:// marker) run JS and get result: url=X js="document.title" First-time setup (one-time per machine, ~500MB Chromium download): pip install playwright playwright install chromium

文档处理测试与质量
★ 9
LocalKinAI
LocalKinAI/kinclaw

weather

Current conditions plus a three-day forecast (today / tomorrow / day after) for a place, in metric, from wttr.in. No API key. Use this for any weather question — including "明天" and "后天" — before reaching for web search.

★ 9
LocalKinAI
LocalKinAI/kinclaw

tts

Synthesize speech from text and play it through the macOS speakers. Talks to a local LocalKin Service Audio Server (default :8001 / Kokoro). When `record` is running with audio=true, the spoken audio is captured into the recording — use this in place of `shell say` for high-quality multilingual narration in demo videos. Set the TTS_ENDPOINT env var to point at a different server.

图像与多媒体Skill与智能体开发
★ 9
LocalKinAI
LocalKinAI/kinclaw

translate

Translate text between languages using the system's translate command

★ 9
LocalKinAI
LocalKinAI/kinclaw

summarize

Summarize a file's contents into key bullet points

资料检索与研究
★ 9
LocalKinAI
LocalKinAI/kinclaw

stt

Transcribe an audio file (wav/mp3/mp4/m4a) into text via a local LocalKin Service Audio Server (default :8000 / SenseVoice). Pair with `record action=start mic=true` to turn a recorded mic track into text. Set STT_ENDPOINT env var to point at a different server.

图像与多媒体
★ 9