Agent skill

Contact Vcard Extractor

by OpenMinis in OpenMinis/MinisSkills

Extract contact information from text, chat logs, web pages, screenshots, business card photos, and QR codes/OCR results; clean names, phone numbers, email addresses, companies, job titles…

MITAuto-check passedDocuments & Office

Install Contact Vcard Extractor

skills CLI
$ npx skills add OpenMinis/MinisSkills --skill contact-vcard-extractor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OpenMinis/MinisSkills contact-vcard-extractor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OpenMinis/MinisSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/contact-vcard-extractor .claude/skills/contact-vcard-extractor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
contact-vcard-extractor
GitHub stars
446
Token cost
~1.6k tokens
SKILL.md length
778 words
Files
2 (incl. scripts)
Skills in repo
49
Repo updated
First seen
Licence
MIT

At a glance

Extract contact information from text, chat logs, web pages, screenshots, business card photos, and QR codes/OCR results; clean names, phone numbers, email addresses, companies, job titles…

  • Works in 5 steps: Receive Input → Extract Fields → User Confirmation → …
  • Words include: extract contacts
  • SKILL.md covers Objective, Typical Workflow, Image/OCR Command Pattern and Text-to-vCard Command, plus 3 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Contact Vcard Extractor is an agent skill from OpenMinis/MinisSkills. Extract contact information from text, chat logs, web pages, screenshots, business card photos, and QR codes/OCR results; clean names, phone numbers, email addresses, companies, job titles, addresses, and websites; generate vCard/.vcf files; and guide users to import them into iOS Contacts or share them with others. Trigger words include: extract contacts, save to contacts, generate vCard/.vcf, business card recognition, add contacts from images/screenshots/text, share contacts, and export contacts.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/contact_to_vcard.py`).

It sits in Documents & Office. It works with iOS. The repository describes itself as: Skills collection for Minis. The licence is MIT.

When your agent uses it

  • Words include: extract contacts
  • Save to contacts
  • Generate vCard/.vcf
  • Business card recognition

Example prompts

  • “/contact-vcard-extractor”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Receive Input
  2. Extract Fields
  3. User Confirmation
  4. Generate vCard
  5. Present and Import/Share

What it can do on your machine

Read from SKILL.md and the folder at commit ae8c5db. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Contact Vcard Extractor loads about 1.6k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 778 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~132
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from OpenMinis/MinisSkills at commit ae8c5db, republished under its MIT licence (© OpenMinis). 778 words, ~1,603 tokens.

Download SKILL.mdSave it as .claude/skills/contact-vcard-extractor/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
contact-vcard-extractor
description
Extract contact information from text, chat logs, web pages, screenshots, business card photos, and QR codes/OCR results; clean names, phone numbers, email addresses, companies, job titles, addresses, and websites; generate vCard/.vcf files; and guide users to import them into iOS Contacts or share them with others. Trigger words include: extract contacts, save to contacts, generate vCard/.vcf, business card recognition, add contacts from images/screenshots/text, share contacts, and export contacts.

Contact vCard Extractor

Objective

Convert contact information from user-provided text or images into previewable, importable, and shareable .vcf vCard files. Prioritize the real user experience: extract the data and have the user confirm it before generating the file. Mark any uncertain fields and do not silently fill in guesses.

Typical Workflow

  1. Receive Input
    • Text: Directly parse user messages, pasted text, or results extracted from web pages.
    • Images: Business card photos, screenshots, posters, or chat screenshots. First use apple-vision ocr to recognize text. If it appears to contain a QR code, use apple-vision barcode.
    • Files: First check /var/minis/attachments/, /var/minis/workspace/, and /var/minis/mounts/.
  2. Extract Fields
    • Name FN/N
    • Phone TEL: Multiple numbers must be split into separate TEL entries. The number field should contain only the number itself. Do not append labels such as "front desk," "mobile," or "WeChat" to the number. Export all phone numbers uniformly as TEL;TYPE=CELL; users can change the type themselves if needed. Labels can be shown in the summary and, if necessary, placed in notes.
    • Email EMAIL
    • Company ORG
    • Job title TITLE
    • Address ADR
    • Website URL
    • Notes NOTE: Source, WeChat ID, uncategorized but long-term useful information, and uncertain recognition items. Do not include temporary to-dos, reminders, or next follow-up items.
  3. User Confirmation
    • List the fields concisely and highlight content that may have been recognized incorrectly.
    • If the name or phone/email is missing, ask whether the user wants to add it. If the user is in a hurry, generate an "Unnamed Contact."
  4. Generate vCard
    • Use the bundled script: /var/minis/skills/contact-vcard-extractor/scripts/contact_to_vcard.py
    • Output to /var/minis/workspace/Contact Name.vcf. Remove special characters from the file name. If necessary, use contact.vcf.
  5. Present and Import/Share
    • Provide a Markdown file link: [Import Contact](minis://workspace/xxx.vcf).
    • Use minis-open /var/minis/workspace/xxx.vcf to preview/share within the app.
    • If the user explicitly wants to open the import screen, run apple-open /var/minis/workspace/xxx.vcf or minis-open. Usually, prefer minis-open to stay in the chat.

Image/OCR Command Pattern

sh
apple-vision ocr /var/minis/attachments/card.jpg --lang zh-Hans,en --level accurate --compact
apple-vision barcode /var/minis/attachments/card.jpg --compact

After saving the OCR output as a text file, run the parsing script.

Text-to-vCard Command

sh
python3 /var/minis/skills/contact-vcard-extractor/scripts/contact_to_vcard.py \
  --text-file /var/minis/workspace/contact_ocr.txt \
  --out /var/minis/workspace/contact.vcf \
  --json

Text can also be passed via stdin. Do not inline very long text in shell commands; for long text, first use file_write to write it to a file.

Show full SKILL.md (422 more words)Show less

User Experience Details

  • Do not include temporary information in contact notes: For example, to-dos such as "Send a quote next Tuesday," "Call back tomorrow," or "Follow up at the end of the month" should be removed from the vCard notes. In the reply, separately ask, "Would you like me to create a reminder or to-do item?" If the user explicitly agrees, use apple-reminders create to create the reminder.
  • Phone fields must be clean and consistently CELL: TEL may contain only numbers, such as 010-66668888 or 13344445555. For "010-66668888 (front desk), mobile 13344445555," split it into two phone entries. Use "front desk/mobile" only as display labels or notes, and do not append them to the number. When exporting, use TEL;TYPE=CELL for all phone numbers. Do not write types such as VOICE/HOME/WORK unless the user explicitly specifies them.
  • Do not import directly into Contacts unless the user explicitly confirms. First generate the vcf and have the user open it to confirm.
  • Keep privacy prompts lightweight: Contacts are personal information. Remind users to confirm authorization and content only when sharing or processing in batches.
  • Multiple contacts: If the text or image clearly contains multiple people, generate separate .vcf files, or merge them into one contacts.vcf file containing multiple vCards. Finally, list each person in a table.
  • QR codes: If the QR code content is MECARD:, BEGIN:VCARD, tel:, mailto:, WeChat, or a URL, parse it according to the content. Raw vCard content can be saved directly as .vcf; MECARD must be converted.
  • Chinese names: The vCard N field can use the first character as the family name and the remaining characters as the given name. If uncertain, prioritize correct display in FN.
  • International numbers: Preserve +Country Code, extensions, and spaces. Do not forcefully rewrite them.
  • File naming: Prefer Name.vcf; if the name is empty, use contact-YYYYMMDD-HHMM.vcf.
  • Final reply format:
    1. A one-sentence confirmation that it has been generated.
    2. A summary of the fields.
    3. A link to the file.
    4. "Tap it to add it to Contacts, or use the share button to send it to someone else."

Sample Reply

I’ve organized this business card:

FieldContent
NameZhang San
Phone+86 138 0000 0000
Emailzhangsan@example.com
CompanyExample Tech

Import/Share Contact

After opening it, you can add it to Contacts or share it directly with someone else.

Bundled Script Notes

contact_to_vcard.py performs basic rule-based extraction and vCard escaping. It is not the only method: for complex input, low-quality OCR, or messy layouts, use model judgment to manually correct the fields before generating the vCard.

© OpenMinis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in contact-vcard-extractor of OpenMinis/MinisSkills.

  • SKILL.md
  • scripts/contact_to_vcard.py

Open the folder on GitHubat commit ae8c5db

Compare with similar skills

Contact Vcard Extractor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Contact Vcard Extractor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Contact Vcard Extractor this skillOpenMinis/MinisSkills446—~1.6kAutomated safety check: PassMIT
Render iOS Keyboardgooseworks-ai/goose-skills1.2k1 repos~1.9kAutomated safety check: PassMIT
Live Previewvicoa-ai/vicoa504—~755Automated safety check: NotesAGPL-3.0
Repo Conventionskmworks/kmreader113—~19kAutomated safety check: PassMIT
Pdfkitdpearson2699/swift-ios-skills1.2k—~3.5kAutomated safety check: PassCustom licence
Rich Textkingstinct/react-native-healthkit716—~3.1kAutomated safety check: PassMIT

Similar skills

  • Render iOS Keyboard

    gooseworks-ai/goose-skills

    Render a static iOS QWERTY keyboard as inline HTML+CSS sized for the 750-wide 9:16 stage.

    1.2k GitHub starsUsed in 1 repo~1.9k tokens
    Documents & OfficeAuto-check passed
  • Live Preview

    vicoa-ai/vicoa

    Start a local app in the current user project, expose it through a tunnel, and return preview details in structured Markdown.

    504 GitHub stars~755 tokensUpdated today
    Documents & OfficeAuto-check: notes
  • Repo Conventions

    kmworks/kmreader

    KMReader subsystem conventions and invariants — reader state boundaries, reading-progress sync, offline downloads and caching, local database (GRDB) migrations, SSE dispatch, browse and dashboard…

    113 GitHub stars~19k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Pdfkit

    dpearson2699/swift-ios-skills

    Display and manipulate PDF documents using PDFKit. An agent skill from dpearson2699/swift-ios-skills.

    1.2k GitHub stars~3.5k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Rich Text

    kingstinct/react-native-healthkit

    Software Mansion's best practices for rich text in React Native using react-native-enriched and react-native-enriched-markdown.

    716 GitHub stars~3.1k tokensUpdated yesterday
    MobileAuto-check passed
  • Create Chatgpt Video Ad

    criptogus/agent-evolve-network

    Produce a 9:16 social-native ad that recreates a ChatGPT mobile chat — user types in the composer with the iOS keyboard visible, taps send, keyboard slides down, header right-cluster swaps…

    288 GitHub stars~5k tokensUpdated 2 days ago
    Testing & QAAuto-check passed

More from OpenMinis/MinisSkills

All 49 skills in this repo
  • Android UI Automation

    OpenMinis/MinisSkills

    Automate Android apps that have no public API or web version by driving the UI layer through the Accessibility Service.

    446 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Codex On Ish

    OpenMinis/MinisSkills

    Install and run OpenAI Codex CLI inside the Minis/iSH Alpine sandbox on iOS, where rustls TLS and async sockets are broken.

    446 GitHub stars~1k tokensUpdated 2 days ago
    Auto-check passed
  • Evidence Chain Builder

    OpenMinis/MinisSkills

    Score a claim against the evidence behind it. An agent skill from OpenMinis/MinisSkills.

    446 GitHub stars~2.4k tokensUpdated 2 days ago
    Auto-check passed
  • Hyperframes CLI

    OpenMinis/MinisSkills

    HyperFrames CLI and Minis rendering. An agent skill from OpenMinis/MinisSkills.

    446 GitHub stars~3.5k tokensUpdated 2 days ago
    Auto-check passed
  • Whenpeak

    OpenMinis/MinisSkills

    Predict when a person's brain works best from their sleep, using the WhenPeak performance-intelligence API, and turn it into concrete scheduling advice.

    446 GitHub stars~2.3k tokensUpdated 2 days ago
    Auto-check passed
  • Openstreetmap Marker

    OpenMinis/MinisSkills

    Generate a mobile-first, immersive, Amap(Gaode)-style custom landmark marker HTML map for travel itinerary planning, place showcasing, location sharing, etc.

    446 GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Contact Vcard Extractor

What does Contact Vcard Extractor do?

Extract contact information from text, chat logs, web pages, screenshots, business card photos, and QR codes/OCR results; clean names, phone numbers, email addresses, companies, job titles…. Contact Vcard Extractor is an agent skill from OpenMinis/MinisSkills.vcf files; and guide users to import them into iOS Contacts or share them with others.

When should I use Contact Vcard Extractor?

Contact Vcard Extractor fits situations like: words include: extract contacts; save to contacts; generate vCard/.vcf; business card recognition.

How do I install Contact Vcard Extractor in Claude Code?

Run `npx skills add OpenMinis/MinisSkills --skill contact-vcard-extractor -a claude-code`. Or copy the skill folder (contact-vcard-extractor in OpenMinis/MinisSkills) into .claude/skills/contact-vcard-extractor in your project. Claude Code loads it when a task matches its description.

How do I install Contact Vcard Extractor in Codex?

Run `npx skills add OpenMinis/MinisSkills --skill contact-vcard-extractor -a codex`. Or copy the skill folder (contact-vcard-extractor in OpenMinis/MinisSkills) into .agents/skills/contact-vcard-extractor in your project. Codex loads it when a task matches its description.

Can I use Contact Vcard Extractor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenMinis/MinisSkills --skill contact-vcard-extractor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/contact-vcard-extractor, .gemini/skills/contact-vcard-extractor, .github/skills/contact-vcard-extractor and .opencode/skills/contact-vcard-extractor in your project.

What does Contact Vcard Extractor need to run?

Going by SKILL.md and its folder, Contact Vcard Extractor needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Contact Vcard Extractor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Contact Vcard Extractor safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Contact Vcard Extractor use?

Contact Vcard Extractor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Contact Vcard Extractor use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Contact Vcard Extractor?

Skills that share tags, products or a category with Contact Vcard Extractor: Render iOS Keyboard (gooseworks-ai/goose-skills, 1.2k stars), Live Preview (vicoa-ai/vicoa, 504 stars), Repo Conventions (kmworks/kmreader, 113 stars) and Pdfkit (dpearson2699/swift-ios-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Contact Vcard Extractor?

OpenMinis (a GitHub organization) maintains it in OpenMinis/MinisSkills, which has 446 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 7, 2026.

Source: OpenMinis/MinisSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.