altic-studio
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAltic Studio
Altic Studio
altic-studio- AppleScript mode for macOS apps and system actions
- MCP CDP mode for Google Chrome browser control
- MCP file mode for safe Finder and filesystem operations
- MCP clipboard mode for text, file, and image pasteboard operations
- MCP window/workspace mode for arranging macOS apps and windows
It also includes Swift utility scripts for active-display screenshots, clipboard
file/image operations, and window/workspace management on macOS.
altic-studio- 适用于macOS应用和系统操作的AppleScript模式
- 用于Google Chrome浏览器控制的MCP CDP模式
- 用于安全执行Finder和文件系统操作的MCP文件模式
- 用于文本、文件和图片剪贴板操作的MCP剪贴板模式
- 用于排列macOS应用和窗口的MCP窗口/工作区模式
它还包含Swift实用脚本,用于macOS上的活动显示器截图、剪贴板文件/图片操作以及窗口/工作区管理。
Mode A: AppleScript (macOS apps)
模式A:AppleScript(macOS应用)
- Always execute AppleScript through Bash with .
osascript - Always run from workspace root as the working directory.
- Quote script paths and arguments.
- Prefer direct script invocation; do not route through Python wrappers unless explicitly requested.
Command templates:
bash
osascript "skills/altic-studio/scripts/<script>.applescript" [arg1] [arg2] ...- 始终通过Bash使用执行AppleScript。
osascript - 始终以工作区根目录作为工作目录运行。
- 对脚本路径和参数添加引号。
- 优先直接调用脚本;除非明确要求,否则不要通过Python包装器路由。
命令模板:
bash
osascript "skills/altic-studio/scripts/<script>.applescript" [arg1] [arg2] ...AppleScript Capabilities
AppleScript功能
The full Altic automation surface is exposed as scripts under :
skills/altic-studio/scripts- - args:
open-application.applescript<app_name> - - args:
send-message.applescript<phone_or_handle> <message> - - args:
messages-manager.applescript<list_chats|send_file> ... - - args:
read-recent-messages.applescript<phone_or_handle> <count> - - args: none
fetch-all-contacts.applescript - - args:
contacts-manager.applescript<get|create|update> ... - - args:
set-reminder.applescript<text> <YYYY-MM-DD HH:MM> [list_name] - - args:
reminders-manager.applescript<list_lists|list|search|complete|delete|reschedule|update|show> ... - - args:
create-note.applescript<title> <body> [folder] - - args:
search-for-note.applescript<query> [max_results] - - args:
notes-manager.applescript<list_folders|list|get|append|update|delete|move> ... - - args:
create-calendar-event.applescript<title> <YYYY-MM-DD HH:MM> <duration_minutes> [calendar] - - args:
list-all-calendar-events-for-day.applescript<YYYY-MM-DD> - - args:
calendar-manager.applescript<list_calendars|list|search|update|delete|availability|create_recurring> ... - - args:
open-safari-tab.applescript[url] - - args:
close-safari-tab.applescript[tab_index|-1] - - args: none
get-safari-tabs.applescript - - args:
switch-safari-tab.applescript<tab_index> - - args:
run-safari-javascript.applescript<javascript_code> - - args:
navigate-safari.applescript<url> - - args: none
reload-safari-page.applescript - - args: none
safari-go-back.applescript - - args: none
safari-go-forward.applescript - - args:
open-safari-window.applescript[url] - - args: none
close-safari-window.applescript - - args: none
get-safari-page-info.applescript - - args:
decrease-brightness.applescript[amount_0_to_1] - - args:
increase-brightness.applescript[amount_0_to_1] - - args:
turn-up-volume.applescript[amount_0_to_100] - - args:
turn-down-volume.applescript[amount_0_to_100] - - args:
capture-screenshot.applescript[output_path] [full|interactive|window] - - args:
capture-active-screen.swift(captures full display containing frontmost app)<output_path> - - subcommands:
clipboard.swift,get-files,set-files <paths...>,save-image <output_path>set-image <image_path> - - subcommands:
window-manager.swift,get_frontmost_app,list_windows,focus_window,move_window,resize_window,center_window,tile_windows,minimize,hide_appquit_app
Swift command template (for active-display screenshots):
bash
swift "skills/altic-studio/scripts/capture-active-screen.swift" "/tmp/active-screen.png"Swift command template (for window management):
bash
swift "skills/altic-studio/scripts/window-manager.swift" "list_windows" '{"include_minimized":false}'完整的Altic自动化功能以脚本形式暴露在目录下:
skills/altic-studio/scripts- - 参数:
open-application.applescript<app_name> - - 参数:
send-message.applescript<phone_or_handle> <message> - - 参数:
messages-manager.applescript<list_chats|send_file> ... - - 参数:
read-recent-messages.applescript<phone_or_handle> <count> - - 参数:无
fetch-all-contacts.applescript - - 参数:
contacts-manager.applescript<get|create|update> ... - - 参数:
set-reminder.applescript<text> <YYYY-MM-DD HH:MM> [list_name] - - 参数:
reminders-manager.applescript<list_lists|list|search|complete|delete|reschedule|update|show> ... - - 参数:
create-note.applescript<title> <body> [folder] - - 参数:
search-for-note.applescript<query> [max_results] - - 参数:
notes-manager.applescript<list_folders|list|get|append|update|delete|move> ... - - 参数:
create-calendar-event.applescript<title> <YYYY-MM-DD HH:MM> <duration_minutes> [calendar] - - 参数:
list-all-calendar-events-for-day.applescript<YYYY-MM-DD> - - 参数:
calendar-manager.applescript<list_calendars|list|search|update|delete|availability|create_recurring> ... - - 参数:
open-safari-tab.applescript[url] - - 参数:
close-safari-tab.applescript[tab_index|-1] - - 参数:无
get-safari-tabs.applescript - - 参数:
switch-safari-tab.applescript<tab_index> - - 参数:
run-safari-javascript.applescript<javascript_code> - - 参数:
navigate-safari.applescript<url> - - 参数:无
reload-safari-page.applescript - - 参数:无
safari-go-back.applescript - - 参数:无
safari-go-forward.applescript - - 参数:
open-safari-window.applescript[url] - - 参数:无
close-safari-window.applescript - - 参数:无
get-safari-page-info.applescript - - 参数:
decrease-brightness.applescript[amount_0_to_1] - - 参数:
increase-brightness.applescript[amount_0_to_1] - - 参数:
turn-up-volume.applescript[amount_0_to_100] - - 参数:
turn-down-volume.applescript[amount_0_to_100] - - 参数:
capture-screenshot.applescript[output_path] [full|interactive|window] - - 参数:
capture-active-screen.swift(捕获包含最前端应用的完整显示器内容)<output_path> - - 子命令:
clipboard.swift,get-files,set-files <paths...>,save-image <output_path>set-image <image_path> - - 子命令:
window-manager.swift,get_frontmost_app,list_windows,focus_window,move_window,resize_window,center_window,tile_windows,minimize,hide_appquit_app
Swift命令模板(用于活动显示器截图):
bash
swift "skills/altic-studio/scripts/capture-active-screen.swift" "/tmp/active-screen.png"Swift命令模板(用于窗口管理):
bash
swift "skills/altic-studio/scripts/window-manager.swift" "list_windows" '{"include_minimized":false}'Mode B: Reminders, Calendar, And Notes (MCP)
模式B:提醒事项、日历和备忘录(MCP)
Use MCP tools for structured Messages, Contacts, Reminders, Calendar, and Notes workflows. These
newer tools return JSON envelopes with , , , and .
Delete tools default to ; only delete after explicit user
confirmation.
okactiondataerrordry_run=trueAvailable Messages tools:
- - args:
list_chats[limit] - - args:
send_file_message<recipient> <path> [message] [recipient_type]
Available Contacts tools:
- - args:
get_contact<identifier> - - args:
create_contact<first_name> <last_name> [organization] [phone] [email] [note] - - args:
update_contact<identifier> [first_name] [last_name] [organization] [phone] [email] [note]
Available Reminders tools:
- - args: none
list_reminder_lists - - args:
list_reminders[list_name] [include_completed] - - args:
search_reminders<query> [list_name] [include_completed] - - args:
complete_reminder<identifier> [list_name] - - args:
delete_reminder<identifier> [list_name] [dry_run] - - args:
reschedule_reminder<identifier> <YYYY-MM-DD HH:MM> [list_name] - - args:
update_reminder<identifier> [list_name] [name] [body] [datetime] [completed] [priority] [flagged] - - args:
show_reminder<identifier> [list_name]
Available Calendar tools:
- - args: none
list_calendars - - args:
list_calendar_events<start_date> <end_date> [calendar_name] - - args:
search_calendar_events<query> [start_date] [end_date] [calendar_name] - - args:
update_calendar_event<identifier> [title] [start_datetime] [duration_minutes] [calendar_name] [location] [notes_text] - - args:
delete_calendar_event<identifier> [start_date] [end_date] [calendar_name] [dry_run] - - args:
check_calendar_availability<start_datetime> <duration_minutes> [calendar_name] - - args:
create_recurring_event<title> <start_datetime> <duration_minutes> <frequency> [interval] [count] [until_date] [calendar_name] [location] [notes_text]
Available Notes tools:
- - args: none
list_note_folders - - args:
list_notes[folder] [max_results] - - args:
get_note<identifier> - - args:
append_to_note<identifier> <body> - - args:
update_note<identifier> <body> - - args:
delete_note<identifier> [dry_run] - - args:
move_note<identifier> <folder>
Workflow rules:
- Call list/search tools before mutating when the target is ambiguous.
- Treat as either an app-provided id or an exact title/name match.
identifier - If a mutation returns multiple matches, ask the user to disambiguate.
- Keep destructive actions in dry-run mode until the user explicitly confirms.
- Validate dates before calling tools: dates use , date-times use
YYYY-MM-DD.YYYY-MM-DD HH:MM - For , prefer
send_file_messageafterrecipient_type="chat"when continuing an existing group thread; uselist_chatsfor a direct phone number or email handle.recipient_type="handle"
使用MCP工具实现结构化的信息、联系人、提醒事项、日历和备忘录工作流。这些较新的工具返回包含、、和的JSON数据包。删除工具默认;仅在用户明确确认后执行删除操作。
okactiondataerrordry_run=true可用的信息工具:
- - 参数:
list_chats[limit] - - 参数:
send_file_message<recipient> <path> [message] [recipient_type]
可用的联系人工具:
- - 参数:
get_contact<identifier> - - 参数:
create_contact<first_name> <last_name> [organization] [phone] [email] [note] - - 参数:
update_contact<identifier> [first_name] [last_name] [organization] [phone] [email] [note]
可用的提醒事项工具:
- - 参数:无
list_reminder_lists - - 参数:
list_reminders[list_name] [include_completed] - - 参数:
search_reminders<query> [list_name] [include_completed] - - 参数:
complete_reminder<identifier> [list_name] - - 参数:
delete_reminder<identifier> [list_name] [dry_run] - - 参数:
reschedule_reminder<identifier> <YYYY-MM-DD HH:MM> [list_name] - - 参数:
update_reminder<identifier> [list_name] [name] [body] [datetime] [completed] [priority] [flagged] - - 参数:
show_reminder<identifier> [list_name]
可用的日历工具:
- - 参数:无
list_calendars - - 参数:
list_calendar_events<start_date> <end_date> [calendar_name] - - 参数:
search_calendar_events<query> [start_date] [end_date] [calendar_name] - - 参数:
update_calendar_event<identifier> [title] [start_datetime] [duration_minutes] [calendar_name] [location] [notes_text] - - 参数:
delete_calendar_event<identifier> [start_date] [end_date] [calendar_name] [dry_run] - - 参数:
check_calendar_availability<start_datetime> <duration_minutes> [calendar_name] - - 参数:
create_recurring_event<title> <start_datetime> <duration_minutes> <frequency> [interval] [count] [until_date] [calendar_name] [location] [notes_text]
可用的备忘录工具:
- - 参数:无
list_note_folders - - 参数:
list_notes[folder] [max_results] - - 参数:
get_note<identifier> - - 参数:
append_to_note<identifier> <body> - - 参数:
update_note<identifier> <body> - - 参数:
delete_note<identifier> [dry_run] - - 参数:
move_note<identifier> <folder>
工作流规则:
- 当目标不明确时,在执行变更操作前先调用列表/搜索工具。
- 将视为应用提供的ID或精确的标题/名称匹配。
identifier - 如果变更操作返回多个匹配结果,请用户明确指定目标。
- 在用户明确确认前,破坏性操作保持试运行模式。
- 在调用工具前验证日期格式:日期使用,日期时间使用
YYYY-MM-DD。YYYY-MM-DD HH:MM - 对于,当继续现有群组对话时,在
send_file_message之后优先使用list_chats;对于直接电话号码或邮箱账号,使用recipient_type="chat"。recipient_type="handle"
Mode C: Chrome Browser Control (MCP CDP)
模式C:Chrome浏览器控制(MCP CDP)
Use MCP tools for deterministic Chrome automation:
chrome_open_sessionchrome_navigatechrome_wait_forchrome_clickchrome_typechrome_extractchrome_screenshotchrome_close_sessionchrome_list_sessionscapture_active_screen
Execution pattern:
- Open a Chrome session.
- Navigate and wait for stable selectors.
- Interact with click and type actions.
- Verify state with extraction.
- Capture screenshots on checkpoints or failures.
- Close session.
使用MCP工具实现确定性的Chrome自动化:
chrome_open_sessionchrome_navigatechrome_wait_forchrome_clickchrome_typechrome_extractchrome_screenshotchrome_close_sessionchrome_list_sessionscapture_active_screen
执行流程:
- 打开Chrome会话。
- 导航并等待选择器稳定。
- 通过点击和输入操作进行交互。
- 通过提取操作验证状态。
- 在检查点或失败时捕获截图。
- 关闭会话。
Mode D: File Finder and File Operations (MCP)
模式D:文件查找和文件操作(MCP)
Use MCP file tools instead of shell commands when the user asks to find, inspect,
copy, move, rename, reveal, or trash files. These tools return JSON for
successful lookups and operations, and strings for failures.
Error: ...Available tools:
- - args:
find_files<query> [root] [max_results] [include_hidden] [kind] - - args:
list_directory<path> [include_hidden] [max_results] - - args:
get_file_info<path> - - args:
copy_file<source> <destination> [overwrite] [dry_run] - - args:
copy_directory<source> <destination> [overwrite] [dry_run] - - args:
move_file<source> <destination> [overwrite] [dry_run] - - args:
rename_file<path> <new_name> [overwrite] [dry_run] - - args:
trash_file<path> [dry_run] - - args:
reveal_in_finder<path> - - args: none
get_finder_selection
File workflow rules:
- If the user refers to selected files, the current Finder window, or "this file",
call first.
get_finder_selection - For ambiguous file names, call , then
find_files; ask for disambiguation when multiple plausible matches remain.get_file_info - Prefer before
dry_run=true,copy_file,copy_directory,move_file, orrename_filewhen the target or destination is ambiguous.trash_file - Do not overwrite unless the user explicitly asks for replacement; default
.
overwrite=false - Use , not permanent deletion.
trash_file - Use after file operations when the user wants to see the result in Finder.
reveal_in_finder
当用户要求查找、检查、复制、移动、重命名、显示或删除文件时,使用MCP文件工具而非shell命令。这些工具在查找和操作成功时返回JSON,失败时返回字符串。
Error: ...可用工具:
- - 参数:
find_files<query> [root] [max_results] [include_hidden] [kind] - - 参数:
list_directory<path> [include_hidden] [max_results] - - 参数:
get_file_info<path> - - 参数:
copy_file<source> <destination> [overwrite] [dry_run] - - 参数:
copy_directory<source> <destination> [overwrite] [dry_run] - - 参数:
move_file<source> <destination> [overwrite] [dry_run] - - 参数:
rename_file<path> <new_name> [overwrite] [dry_run] - - 参数:
trash_file<path> [dry_run] - - 参数:
reveal_in_finder<path> - - 参数:无
get_finder_selection
文件工作流规则:
- 如果用户提及选中的文件、当前Finder窗口或“此文件”,先调用。
get_finder_selection - 对于模糊的文件名,先调用,再调用
find_files;当存在多个合理匹配结果时,请用户明确指定。get_file_info - 当目标或目的地不明确时,在执行、
copy_file、copy_directory、move_file或rename_file前优先设置trash_file。dry_run=true - 除非用户明确要求替换,否则不要覆盖文件;默认。
overwrite=false - 使用而非永久删除。
trash_file - 当用户希望在Finder中查看操作结果时,在文件操作后调用。
reveal_in_finder
Mode E: Clipboard Operations (MCP)
模式E:剪贴板操作(MCP)
Use MCP clipboard tools instead of shell commands when the user asks to inspect,
copy, paste, clear, or save clipboard contents. These tools return JSON for text
and file operations, strings for failures, and image content for
saved clipboard images.
Error: ...Available tools:
- - args:
get_clipboard_text[max_chars] - - args:
set_clipboard_text<text> - - args: none
clear_clipboard - - args: none
get_clipboard_files - - args:
set_clipboard_files<paths> - - args:
save_clipboard_image[output_path] - - args:
set_clipboard_image<path>
Clipboard workflow rules:
- Ask before overwriting clipboard contents unless the user explicitly asks to copy, set, clear, or replace the clipboard.
- Use first when the user asks what text is currently copied.
get_clipboard_text - Use when the user says they copied files in Finder or wants to paste copied files somewhere else.
get_clipboard_files - Use when the user wants to inspect, store, or transform an image currently on the clipboard.
save_clipboard_image - Use with existing paths only; resolve ambiguous file names with
set_clipboard_filesbefore changing the clipboard.find_files - Use only for existing image files.
set_clipboard_image
当用户要求检查、复制、粘贴、清除或保存剪贴板内容时,使用MCP剪贴板工具而非shell命令。这些工具在文本和文件操作成功时返回JSON,失败时返回字符串,保存剪贴板图片时返回图片内容。
Error: ...可用工具:
- - 参数:
get_clipboard_text[max_chars] - - 参数:
set_clipboard_text<text> - - 参数:无
clear_clipboard - - 参数:无
get_clipboard_files - - 参数:
set_clipboard_files<paths> - - 参数:
save_clipboard_image[output_path] - - 参数:
set_clipboard_image<path>
剪贴板工作流规则:
- 除非用户明确要求复制、设置、清除或替换剪贴板,否则在覆盖剪贴板内容前先询问用户。
- 当用户询问当前复制的文本内容时,先调用。
get_clipboard_text - 当用户表示已在Finder中复制文件或想要将复制的文件粘贴到其他位置时,调用。
get_clipboard_files - 当用户想要检查、存储或转换当前剪贴板中的图片时,调用。
save_clipboard_image - 仅使用现有路径;在更改剪贴板前,通过
set_clipboard_files解析模糊的文件名。find_files - 仅用于现有图片文件。
set_clipboard_image
Mode F: Window and Workspace Operations (MCP)
模式F:窗口和工作区操作(MCP)
Use MCP window tools when the user asks to arrange the workspace, focus an app or
window, tile apps side by side, resize windows, minimize windows, hide apps, quit
apps, or inspect the frontmost app. These tools return JSON for successful
operations and strings for failures.
Error: ...Available tools:
- - args: none
get_frontmost_app - - args:
list_windows[app_name] [include_minimized] - - args:
focus_window[app_name] [window_id] [window_index] - - args:
move_window<x> <y> [app_name] [window_id] [window_index] [display_index] - - args:
resize_window<width> <height> [app_name] [window_id] [window_index] [display_index] - - args:
center_window[app_name] [window_id] [window_index] [display_index] [width] [height] - - args:
tile_windows[layout=columns|rows|grid] [app_names] [display_index] [padding] - - args:
minimize[app_name] [window_id] [window_index] - - args:
hide_app<app_name> - - args:
quit_app<app_name>
Window workflow rules:
- Call before moving, resizing, minimizing, or focusing when the target app has multiple windows or the target is ambiguous.
list_windows - Prefer for user-facing workflows and
app_namefor precise follow-up operations afterwindow_id.list_windows - Use when arranging windows on a specific display; otherwise tools choose the display containing the target window.
display_index - Use with explicit
tile_windowswhen preparing a multi-app task.app_names - Do not call unless the user explicitly asked to close or quit that app.
quit_app - If a window mutation fails with an Accessibility error, tell the user to grant Accessibility permission to the host app running the MCP server.
当用户要求整理工作区、聚焦应用或窗口、并排平铺应用、调整窗口大小、最小化窗口、隐藏应用、退出应用或检查最前端应用时,使用MCP窗口工具。这些工具在操作成功时返回JSON,失败时返回字符串。
Error: ...可用工具:
- - 参数:无
get_frontmost_app - - 参数:
list_windows[app_name] [include_minimized] - - 参数:
focus_window[app_name] [window_id] [window_index] - - 参数:
move_window<x> <y> [app_name] [window_id] [window_index] [display_index] - - 参数:
resize_window<width> <height> [app_name] [window_id] [window_index] [display_index] - - 参数:
center_window[app_name] [window_id] [window_index] [display_index] [width] [height] - - 参数:
tile_windows[layout=columns|rows|grid] [app_names] [display_index] [padding] - - 参数:
minimize[app_name] [window_id] [window_index] - - 参数:
hide_app<app_name> - - 参数:
quit_app<app_name>
窗口工作流规则:
- 当目标应用有多个窗口或目标不明确时,在执行移动、调整大小、最小化或聚焦操作前先调用。
list_windows - 面向用户的工作流优先使用,在
app_name之后的精确后续操作中使用list_windows。window_id - 在特定显示器上排列窗口时使用;否则工具会选择包含目标窗口的显示器。
display_index - 准备多应用任务时,使用带有明确的
app_names。tile_windows - 除非用户明确要求关闭或退出该应用,否则不要调用。
quit_app - 如果窗口变更操作因辅助功能错误失败,请告知用户向运行MCP服务器的宿主应用授予辅助功能权限。
Operational Rules
操作规则
- Validate date/time format before running reminder/calendar scripts.
- If contact lookup returns multiple options, ask for disambiguation before sending.
- If script output indicates permission issues, report exact permissions to enable.
- Prefer explicit CSS selectors and call before click/type on dynamic pages.
chrome_wait_for - After mutating actions in Chrome, verify expected page state with .
chrome_extract - For file mutations, verify the target with or
get_file_infoafter the operation when the user needs confirmation.list_directory - For clipboard mutations, verify with ,
get_clipboard_text, orget_clipboard_fileswhen the user needs confirmation.save_clipboard_image - For window mutations, verify with when the user needs confirmation.
list_windows
- 在运行提醒事项/日历脚本前验证日期/时间格式。
- 如果联系人查找返回多个选项,在发送前请用户明确指定。
- 如果脚本输出显示权限问题,告知用户需要启用的具体权限。
- 优先使用明确的CSS选择器,在动态页面上执行点击/输入操作前调用。
chrome_wait_for - 在Chrome中执行变更操作后,通过验证预期页面状态。
chrome_extract - 对于文件变更操作,当用户需要确认时,在操作后通过或
get_file_info验证目标。list_directory - 对于剪贴板变更操作,当用户需要确认时,通过、
get_clipboard_text或get_clipboard_files验证。save_clipboard_image - 对于窗口变更操作,当用户需要确认时,通过验证。
list_windows
Permissions Checklist
权限清单
- Contacts access
- Calendars access
- Reminders access
- Automation permission for app control
- Accessibility permission for system controls and window management
- Screen Recording permission for screenshots and improved window discovery
- Safari setting: Allow JavaScript from Apple Events
- Google Chrome installed for CDP tools
- Full Disk Access for reading Messages database
- Automation permission for Finder when revealing, trashing, or reading selection
- 联系人访问权限
- 日历访问权限
- 提醒事项访问权限
- 应用控制自动化权限
- 系统控制和窗口管理辅助功能权限
- 截图和窗口识别优化的屏幕录制权限
- Safari设置:允许来自Apple Events的JavaScript
- 安装Google Chrome以使用CDP工具
- 读取信息数据库的全盘访问权限
- 显示、删除或读取选中内容时的Finder自动化权限