contacts
AI-powered unified contact management with semantic search, relationship tracking, entity resolution, graph queries, and multi-platform integration.
소스 정보
- 저장소
- kimasplund/clawdbot-contacts
- 최근 소스 활동
- 2026년 3월 1일 00:33
- 감지된 SKILL.md 언어
- 영어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SKILL.md 표시 중
SKILL.md
소스 지침 · 읽기 전용 미리보기- name
- contacts
- description
- AI-powered unified contact management with semantic search, relationship tracking, entity resolution, graph queries, and multi-platform integration.
- metadata
- {"clawdbot":{"emoji":"👥","requires":{"bins":"[Truncated]"}}}
# Contacts Skill
Manage contacts across multiple platforms with AI-powered semantic search, relationship strength tracking, entity resolution, graph queries (Neo4j), and interaction tracking (TimescaleDB).
## CLI Usage
Run commands via node:
```bash
node ~/projects/clawdbot-contacts/dist/cli.js <command> [options]
```
## Commands
### Add a contact
```bash
node ~/projects/clawdbot-contacts/dist/cli.js add --name "Jane Smith" --email "jane@acme.com" --org "Acme Corp"
```
### Search contacts (semantic)
```bash
node ~/projects/clawdbot-contacts/dist/cli.js search "engineers in San Francisco"
```
### List contacts
```bash
node ~/projects/clawdbot-contacts/dist/cli.js list --limit 20 --page 1
node ~/projects/clawdbot-contacts/dist/cli.js list --tier close
```
### View contact details
```bash
node ~/projects/clawdbot-contacts/dist/cli.js view <contact-id>
```
### Edit contact
```bash
node ~/projects/clawdbot-contacts/dist/cli.js edit <id> --name "New Name" --tier close
```
### Delete contact
```bash
node ~/projects/clawdbot-contacts/dist/cli.js delete <contact-id>
```
### Find by identifier
```bash
node ~/projects/clawdbot-contacts/dist/cli.js find email jane@example.com
node ~/projects/clawdbot-contacts/dist/cli.js find phone +1234567890
```
### Find duplicates
```bash
node ~/projects/clawdbot-contacts/dist/cli.js duplicates
```
### Merge contacts
```bash
node ~/projects/clawdbot-contacts/dist/cli.js merge <keep-id> <merge-id>
```
### Create relationship
```bash
node ~/projects/clawdbot-contacts/dist/cli.js relate <id1> <id2> --type colleague --label "team lead"
```
Relationship types: family, friend, colleague, acquaintance, mentor, mentee, manager, report, client, vendor, partner, collaborator
### Get AI suggestions
```bash
node ~/projects/clawdbot-contacts/dist/cli.js suggest
```
## Graph Queries (Neo4j)
### Find degrees of separation
Find how two contacts are connected:
```bash
# Via programmatic API
skill.findDegreesOfSeparation(contact1Id, contact2Id)
# Returns: { degrees: 2, path: [...] }
```
### Who knows who
Find all contacts who know a specific person:
```bash
# Via programmatic API
skill.whoKnows(contactId, depth?)
# Returns list of contacts connected to this person
```
### Mutual connections
Find contacts that both people know:
```bash
# Via programmatic API
skill.getMutualConnections(contact1Id, contact2Id)
# Returns list of shared connections
```
## Interaction Tracking (TimescaleDB)
### Record interactions
Track when you interact with contacts:
```typescript
// Via programmatic API
await skill.recordView(contactId); // Contact was viewed
// Messages, calls, emails are tracked automatically when using adapters
```
### Stale contacts
Find contacts you haven't interacted with recently:
```typescript
// Get contacts not talked to in 30 days
const stale = await skill.getStaleContacts(30);
// Returns: [{ contactId, displayName, lastInteraction, daysSince }]
```
### Interaction history
Get detailed interaction history:
```typescript
const history = await skill.getInteractionHistory(contactId, { limit: 50 });
// Returns: [{ eventType, direction, platform, occurredAt }]
```
## Relationship Tiers (Dunbar)
| Tier | Description | Typical Count |
|------|-------------|---------------|
| inner_circle | Closest relationships | ~5 |
| close | Close friends/family | ~15 |
| active | Regular contact | ~50 |
| familiar | Acquaintances | ~150 |
| acquaintance | Known contacts | ~500+ |
## Database Requirements
| Database | Purpose | Port | Required |
|----------|---------|------|----------|
| SQLite | Primary storage | - | Yes (built-in) |
| ChromaDB | Semantic search | 8000 | Optional |
| Neo4j | Graph queries | 7687 | Optional |
| TimescaleDB | Interaction tracking | 5432 | Optional |
## Environment Variables
```bash
# SQLite
CONTACTS_DB_PATH=~/.clawdbot/contacts.db
# ChromaDB (semantic search)
CHROMA_URL=http://localhost:8000
# Neo4j (graph queries)
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=password
# TimescaleDB (interaction tracking)
TIMESCALE_HOST=localhost
TIMESCALE_PORT=5432
TIMESCALE_DATABASE=clawdbot
TIMESCALE_USER=clawdbot
TIMESCALE_PASSWORD=password
```
## Programmatic API
```typescript
import { ContactSkill } from '@clawdbot/contacts';
const skill = new ContactSkill({
enableNeo4j: true,
enableTimescale: true,
});
await skill.initialize();
// Core operations
await skill.add({ givenName: 'John', source: 'manual' });
await skill.search('engineers');
await skill.view(contactId);
// Relationships
await skill.relate(id1, id2, 'colleague');
// Graph queries (requires Neo4j)
await skill.findDegreesOfSeparation(id1, id2);
await skill.whoKnows(contactId);
await skill.getMutualConnections(id1, id2);
// Interaction tracking (requires TimescaleDB)
await skill.getStaleContacts(30);
await skill.getInteractionHistory(contactId);
await skill.close();
```
GitHub에서 보기