altic-dev/altic-mcp/altic-studio
Claude Code and agent skill by altic-dev/altic-mcp
- community
Checking that the SKILL.md file is still in the repository.
macOS automation skill for AppleScript actions and Chrome browser control via MCP CDP tools.
Install
npx vskill@latest install altic-dev/altic-mcp/altic-studioSKILL.md
Altic Studio
altic-studio provides two automation modes:
- 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.
Mode A: AppleScript (macOS apps)
- 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:
AppleScript Capabilities
The full Altic automation surface is exposed as scripts under skills/altic-studio/scripts:
open-application.applescript- args:<app_name>send-message.applescript- args:<phone_or_handle> <message>messages-manager.applescript- args:<list_chats|send_file> ...read-recent-messages.applescript- args:<phone_or_handle> <count>fetch-all-contacts.applescript- args: nonecontacts-manager.applescript- args:<get|create|update> ...set-reminder.applescript- args:<text> <YYYY-MM-DD HH:MM> [list_name]reminders-manager.applescript- args:<list_lists|list|search|complete|delete|reschedule|update|show> ...create-note.applescript- args:<title> <body> [folder]search-for-note.applescript- args:<query> [max_results]notes-manager.applescript- args:<list_folders|list|get|append|update|delete|move> ...create-calendar-event.applescript- args:<title> <YYYY-MM-DD HH:MM> <duration_minutes> [calendar]list-all-calendar-events-for-day.applescript- args:<YYYY-MM-DD>calendar-manager.applescript- args:<list_calendars|list|search|update|delete|availability|create_recurring> ...open-safari-tab.applescript- args:[url]close-safari-tab.applescript- args:[tab_index|-1]get-safari-tabs.applescript- args: noneswitch-safari-tab.applescript- args:<tab_index>run-safari-javascript.applescript- args:<javascript_code>navigate-safari.applescript- args:<url>reload-safari-page.applescript- args: nonesafari-go-back.applescript- args: nonesafari-go-forward.applescript- args: noneopen-safari-window.applescript- args:[url]close-safari-window.applescript- args: noneget-safari-page-info.applescript- args: nonedecrease-brightness.applescript- args:[amount_0_to_1]increase-brightness.applescript- args:[amount_0_to_1]turn-up-volume.applescript- args:[amount_0_to_100]turn-down-volume.applescript- args:[amount_0_to_100]capture-screenshot.applescript- args:[output_path] [full|interactive|window]capture-active-screen.swift- args:<output_path>(captures full display containing frontmost app)clipboard.swift- subcommands:get-files,set-files <paths...>,save-image <output_path>,set-image <image_path>window-manager.swift- subcommands:get_frontmost_app,list_windows,focus_window,move_window,resize_window,center_window,tile_windows,minimize,hide_app,quit_app
Swift command template (for active-display screenshots):
Swift command template (for window management):
Mode B: Reminders, Calendar, And Notes (MCP)
Use MCP tools for structured Messages, Contacts, Reminders, Calendar, and Notes workflows. These newer tools return JSON envelopes with ok, action, data, and error. Delete tools default to dry_run=true; only delete after explicit user confirmation.
Available Messages tools:
list_chats- args:[limit]send_file_message- args:<recipient> <path> [message] [recipient_type]
Available Contacts tools:
get_contact- args:<identifier>create_contact- args:<first_name> <last_name> [organization] [phone] [email] [note]update_contact- args:<identifier> [first_name] [last_name] [organization] [phone] [email] [note]
Available Reminders tools:
list_reminder_lists- args: nonelist_reminders- args:[list_name] [include_completed]search_reminders- args:<query> [list_name] [include_completed]complete_reminder- args:<identifier> [list_name]delete_reminder- args:<identifier> [list_name] [dry_run]reschedule_reminder- args:<identifier> <YYYY-MM-DD HH:MM> [list_name]update_reminder- args:<identifier> [list_name] [name] [body] [datetime] [completed] [priority] [flagged]show_reminder- args:<identifier> [list_name]
Available Calendar tools:
list_calendars- args: nonelist_calendar_events- args:<start_date> <end_date> [calendar_name]search_calendar_events- args:<query> [start_date] [end_date] [calendar_name]update_calendar_event- args:<identifier> [title] [start_datetime] [duration_minutes] [calendar_name] [location] [notes_text]delete_calendar_event- args:<identifier> [start_date] [end_date] [calendar_name] [dry_run]check_calendar_availability- args:<start_datetime> <duration_minutes> [calendar_name]create_recurring_event- args:<title> <start_datetime> <duration_minutes> <frequency> [interval] [count] [until_date] [calendar_name] [location] [notes_text]
Available Notes tools:
list_note_folders- args: nonelist_notes- args:[folder] [max_results]get_note- args:<identifier>append_to_note- args:<identifier> <body>update_note- args:<identifier> <body>delete_note- args:<identifier> [dry_run]move_note- args:<identifier> <folder>
Workflow rules:
- Call list/search tools before mutating when the target is ambiguous.
- Treat
identifieras either an app-provided id or an exact title/name match. - 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
YYYY-MM-DD, date-times use
YYYY-MM-DD HH:MM.
- For
send_file_message, preferrecipient_type="chat"afterlist_chats
when continuing an existing group thread; use recipient_type="handle" for a direct phone number or email handle.
Mode C: Chrome Browser Control (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.
Mode D: File Finder and File Operations (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 Error: ... strings for failures.
Available tools:
find_files- args:<query> [root] [max_results] [include_hidden] [kind]list_directory- args:<path> [include_hidden] [max_results]get_file_info- args:<path>copy_file- args:<source> <destination> [overwrite] [dry_run]copy_directory- args:<source> <destination> [overwrite] [dry_run]move_file- args:<source> <destination> [overwrite] [dry_run]rename_file- args:<path> <new_name> [overwrite] [dry_run]trash_file- args:<path> [dry_run]reveal_in_finder- args:<path>get_finder_selection- args: none
File workflow rules:
- If the user refers to selected files, the current Finder window, or "this file",
call get_finder_selection first.
- For ambiguous file names, call
find_files, thenget_file_info; ask for
disambiguation when multiple plausible matches remain.
- Prefer
dry_run=truebeforecopy_file,copy_directory,move_file,
rename_file, or trash_file when the target or destination is ambiguous.
- Do not overwrite unless the user explicitly asks for replacement; default
overwrite=false.
- Use
trash_file, not permanent deletion. - Use
reveal_in_finderafter file operations when the user wants to see the
result in Finder.
Mode E: Clipboard Operations (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, Error: ... strings for failures, and image content for saved clipboard images.
Available tools:
get_clipboard_text- args:[max_chars]set_clipboard_text- args:<text>clear_clipboard- args: noneget_clipboard_files- args: noneset_clipboard_files- args:<paths>save_clipboard_image- args:[output_path]set_clipboard_image- args:<path>
Clipboard workflow rules:
- Ask before overwriting clipboard contents unless the user explicitly asks to
copy, set, clear, or replace the clipboard.
- Use
get_clipboard_textfirst when the user asks what text is currently copied. - Use
get_clipboard_fileswhen the user says they copied files in Finder or
wants to paste copied files somewhere else.
- Use
save_clipboard_imagewhen the user wants to inspect, store, or transform
an image currently on the clipboard.
- Use
set_clipboard_fileswith existing paths only; resolve ambiguous file
names with find_files before changing the clipboard.
- Use
set_clipboard_imageonly for existing image files.
Mode F: Window and Workspace Operations (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 Error: ... strings for failures.
Available tools:
get_frontmost_app- args: nonelist_windows- args:[app_name] [include_minimized]focus_window- args:[app_name] [window_id] [window_index]move_window- args:<x> <y> [app_name] [window_id] [window_index] [display_index]resize_window- args:<width> <height> [app_name] [window_id] [window_index] [display_index]center_window- args:[app_name] [window_id] [window_index] [display_index] [width] [height]tile_windows- args:[layout=columns|rows|grid] [app_names] [display_index] [padding]minimize- args:[app_name] [window_id] [window_index]hide_app- args:<app_name>quit_app- args:<app_name>
Window workflow rules:
- Call
list_windowsbefore moving, resizing, minimizing, or focusing when the
target app has multiple windows or the target is ambiguous.
- Prefer
app_namefor user-facing workflows andwindow_idfor precise
follow-up operations after list_windows.
- Use
display_indexwhen arranging windows on a specific display; otherwise
tools choose the display containing the target window.
- Use
tile_windowswith explicitapp_nameswhen preparing a multi-app task. - Do not call
quit_appunless the user explicitly asked to close or quit that
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.
Operational Rules
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/altic-studio/SKILL.md
Popularity
- Repository stars
- 62
- Repository forks
- 5
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 26 Jun 2026, 4 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/altic-dev/altic-mcp/altic-studio)