Token导航 LogoToken导航TokenDH.com
研究检索执行命令clawhub未标认证来源可访问clear审计提醒

mac-contactsMac contacts 搜索

Agent Skill

mac-contacts 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

14,443

周安装

590

GitHub Stars

公开资料未说明

下载量

4,673
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:mac-contacts(Mac contacts 搜索)
来源仓库:https://github.com/bdwelle/mac-contacts
安装命令:
openclaw skills install mac-contacts
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install mac-contacts

简介

读取和管理 macOS 联系人数据库的 CLI 工具。

  • 适用于查找、筛选或批量处理通讯录信息的研究任务。
  • 支持按姓名、邮箱、电话等多字段组合查询。mac-contacts 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 需授权通讯录访问权限,涉及隐私数据应加密处理。
  • 搜索结果受限于系统 CNContactStore 的数据完整性。

SKILL.md

name
mac-contacts
description
>
compatibility
>
metadata
author
bdwelle

mac-contacts

macOS Contacts CLI backed by CNContactStore. All reads use unified contact views (iCloud + local + Exchange merged). All writes are atomic via CNSaveRequest. Group membership removal uses osascript to work around a silent no-op in CNSaveRequest.removeMember_fromGroup_ for iCloud-backed groups.

Dependencies

pip install pyobjc-framework-Contacts
pip install pyyaml

Grant Contacts access to Terminal (or your agent host) when prompted on first run, or via System Settings → Privacy & Security → Contacts.

Invocation

python3 skill://mac-contacts/scripts/mac-contacts.py <subcommand> [options]

All examples below use mac-contacts as shorthand for the full invocation.


Subcommands

search

Search contacts. With a positional query, performs a single-pass search across name, organisation, note, email, phone (digits normalised), and postal address fields. Use explicit flags to restrict to a specific field.

search [QUERY]
       [--list LIST]
       [--email EMAIL]
       [--phone PHONE]
       [--city CITY]
       [--country COUNTRY]
FlagDescription
QUERYComprehensive search across all fields. Phone digits are matched fuzzily (query digits must appear in contact's digit-stripped number; minimum 4 digits required for phone matching).
--list LISTReturn only contacts that are members of the named list/group.
--email EMAILMatch by email address (uses the CNContact native email predicate — efficient).
--phone PHONEMatch by phone number; non-digit characters stripped before comparison. Minimum 4 digits.
--city CITYMatch by city in any postal address.
--country COUNTRYMatch by country in any postal address.

Examples:

# Comprehensive — finds by name, org, email, phone, address
mac-contacts search "John"
mac-contacts search "john@example.com"   # auto-matches email
mac-contacts search "415-555"            # auto-matches phone (≥4 digits)
mac-contacts search "San Francisco"      # auto-matches city

# Explicit field targeting
mac-contacts search --email "john@acme.com"
mac-contacts search --phone "415"        # error: fewer than 4 digits
mac-contacts search --phone "4155551234"
mac-contacts search --city "London"
mac-contacts search --country "Germany"

# Filter to list members
mac-contacts search --list "Work"

Output per contact: name, organisation, phone(s), email(s), address(es).


show

Show every available field for a contact, including list membership.

show NAME

Output includes: full name (with prefix/middle/suffix), nickname, organisation, job title, department, phones, emails, postal addresses, URLs, social profiles, birthday, dates, note (if readable), and Lists.

mac-contacts show "Jane Doe"
mac-contacts show "Apple"        # matches any contact whose name contains "Apple"
Note: If multiple contacts match NAME, only the first result is shown.

create

Create a new contact. All flags except --first-name are optional.

create --first-name NAME
       [--last-name NAME]
       [--organization ORG]
       [--email EMAIL]     (repeatable)
       [--phone PHONE]     (repeatable)
       [--street STREET]
       [--city CITY]
       [--state STATE]
       [--zip ZIP]
       [--country COUNTRY]
       [--url URL]         (repeatable)
       [--birthday DATE]
mac-contacts create --first-name "Jane" --last-name "Doe" \
    --organization "Acme" \
    --email "jane@acme.com" --email "jane.personal@gmail.com" \
    --phone "415-555-0100" \
    --street "123 Main St" --city "San Francisco" \
    --state "CA" --zip "94102" --country "United States" \
    --url "https://jane.acme.com" \
    --birthday "1985-03-22"
Note: The --note flag is intentionally absent. Writing contact notes requires the com.apple.developer.contacts.notes entitlement, which Terminal-based tools do not hold.
--birthday format: YYYY-MM-DD for a full date (e.g. 1985-03-22), or --MM-DD to store month/day without a year (e.g. --03-22).

update

Update fields on an existing contact. Phone and email values are appended to existing values (not replaced). A new postal address block is appended if any address flag is provided.

update NAME
       [--organization ORG]
       [--email EMAIL]     (repeatable, appends)
       [--phone PHONE]     (repeatable, appends)
       [--street STREET]
       [--city CITY]
       [--state STATE]
       [--zip ZIP]
       [--country COUNTRY]
       [--url URL]         (repeatable, appends)
       [--birthday DATE]   (replaces existing)
mac-contacts update "Jane Doe" --phone "415-555-0199"
mac-contacts update "Jane Doe" --organization "New Corp" --city "Oakland"
mac-contacts update "Jane Doe" --birthday "1985-03-22"
mac-contacts update "Jane Doe" --url "https://jane.dev"

delete

Delete a contact. Prompts for confirmation unless --force is given.

delete NAME [--force]
mac-contacts delete "Jane Doe"           # prompts y/N
mac-contacts delete "Jane Doe" --force   # no prompt

add_to_list

Add a contact to a named list (CNGroup). Creates the list if it does not exist.

add_to_list NAME LIST
mac-contacts add_to_list "Jane Doe" "Work"

remove_from_list

Remove a contact from a named list.

remove_from_list NAME LIST
mac-contacts remove_from_list "Jane Doe" "Work"
Implementation note: Uses osascript (Contacts.app) because CNSaveRequest.removeMember_fromGroup_ silently no-ops for iCloud-backed groups.

list_groups

List all contact groups (lists) in the store.

list_groups
mac-contacts list_groups

Output conventions

  • search, show, and list_groups emit YAML (requires pyyaml).

search and list_groups return a YAML list; show returns a single YAML mapping. Parse with python3 -c "import sys,yaml; print(yaml.safe_load(sys.stdin))" or yq.

  • Success messages begin with Success:.
  • Error messages begin with Error: or [FATAL].
  • search and list_groups exit with code 1 when no results are found.
  • All other commands exit 1 on any failure.

Known limitations

  • Notes (write): Setting a contact note requires the

com.apple.developer.contacts.notes entitlement. create and update do not expose --note for this reason. Existing notes on contacts are readable via show.

  • update replaces nothing: Phone, email, and address values are always

appended, never replaced. To change a value, delete and recreate the contact, or edit via Contacts.app.

  • show NAME matching: Uses CNContact.predicateForContactsMatchingName_

which matches substrings across name fields. If ambiguous, the first result is returned.

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

92.04%
按下载量换算4,301

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

未展示

权限和风险

执行命令

安装流程涉及命令执行,可能通过 openclaw skills install mac-contacts 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills