# contacts

Keeps a directory of people as markdown notes in ~/Vault/Contacts/, with an index and an enrichment pipeline that pulls from outside sources.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3300 installs · ★ 64
- Author: joel
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/joelhooks/joelclaw/tree/HEAD/skills/contacts/SKILL.md
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/skills/contacts

## What it does

Every person gets a file at `~/Vault/Contacts/<Name>.md`. The YAML header holds name, role, organizations, a `vip` flag and handles for Slack, GitHub, X and email; below it sit sections for contact channels, projects, working context and a dated activity log. All notes are listed as wikilinks in `~/Vault/Contacts/index.md`. The cheap route is to write the file yourself and add the link.

Heavier lookups go through Inngest. A `contact/enrich.requested` event triggers `contact-enrich`, which fans out to Slack, Roam, the web and GitHub, has an LLM merge what it found, then writes the vault file. `full` covers every source; `quick` stays on Slack and memory. Known identifiers seed the search, so pass them when you have them. Fire the event with `curl` against `http://localhost:8288/e/$INNGEST_EVENT_KEY` — the CLI hits an OTEL import bug under Bun v1.3.9.

Contacts flagged `vip: true` get a longer checklist: web presence, podcasts and interviews, GitHub and X profiles, a career timeline, shared connections, then indexing of their material in Typesense. The pipeline expects Inngest running, the Roam archive at `~/Code/joelhooks/egghead-roam-research/` and working API access for the sources you enable.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add joelhooks/joelclaw --skill contacts -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/contacts/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/contacts/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add joelhooks/joelclaw --skill contacts -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/contacts/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add joelhooks/joelclaw --skill contacts -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/contacts/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install joelhooks/joelclaw contacts
```

2. **Manually: put the files in place**
- File: `.github/skills/contacts/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add joelhooks/joelclaw --skill contacts -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/joelhooks/joelclaw --path skills/contacts
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/contacts/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add joelhooks/joelclaw --skill contacts -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/joelhooks/joelclaw/tree/HEAD/skills/contacts/SKILL.md

## When to use it
- create a person's note from just a name
- gather a dossier from Slack, GitHub and the web
- flag a VIP and keep their record current
- map who someone has worked with before
- refresh a note without dropping existing facts

## Example prompts
- Add a contact for Matt Pocock, GitHub handle `mattpocock`
- Enrich this person in full and update `Contacts/Matt Pocock.md`
- Who is this person from Slack? Look them up in the Roam archive and create a note

## Similar
- [setup-matt-pocock-skills](https://affpapa.org/en/nevibecode/skills/setup-matt-pocock-skills.md) — skill · 1052851 installs
- [ask-matt](https://affpapa.org/en/nevibecode/skills/ask-matt.md) — skill · 766587 installs
- [to-tickets](https://affpapa.org/en/nevibecode/skills/to-tickets.md) — skill · 711230 installs
- [writing-plans](https://affpapa.org/en/nevibecode/skills/writing-plans.md) — skill · 282859 installs
- [caveman-review](https://affpapa.org/en/nevibecode/skills/caveman-review.md) — skill · 411800 installs
- [caveman-compress](https://affpapa.org/en/nevibecode/skills/caveman-compress.md) — skill · 411500 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
