Skip to main content
skill CX Codex

contacts — Claude Code skill: a people vault with enrichment

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

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add joelhooks/joelclaw --skill contacts -a claude-code
Open on GitHub

What contacts 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.

What it helps with

  • 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 for the agent

  • 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

How to install contacts

1Skills CLI (Vercel)

npx skills add joelhooks/joelclaw --skill contacts -a claude-code

2Manually: put the files in place

~/.claude/skills/contacts/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/contacts/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about contacts

How do I install contacts in Claude Code?

Run npx skills add joelhooks/joelclaw --skill contacts -a claude-code. The skill lands at ~/.claude/skills/contacts/SKILL.md.

What does the contacts skill do?

It writes and updates markdown notes for people in ~/Vault/Contacts/, maintains the index, and can kick off Inngest enrichment that collects data from other sources.

How is full different from quick?

full checks all sources and runs an LLM synthesis; quick uses Slack and memory only. Reach for full on a new person or a scheduled refresh.

Similar skills

All skills for Agent setup: memory, context, orchestration →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor