Contact Book
Productivity toolkit for managing contacts and relationships — add entries, plan follow-ups, track interactions, set reminders, tag contacts, and generate reports. All data remains on disk.
Commands
| Command |
Description |
contact-book add <input> |
Add a new contact or entry |
contact-book plan <input> |
Record a follow-up plan for a contact |
contact-book track <input> |
Log an interaction or touchpoint |
contact-book review <input> |
Record a review note for a contact or relationship |
contact-book streak <input> |
Track communication streaks with contacts |
contact-book remind <input> |
Set a reminder for a contact-related task |
contact-book prioritize <input> |
Mark a contact or task as high priority |
contact-book archive <input> |
Archive a contact or old entry |
contact-book tag <input> |
Add a tag or label to a contact |
contact-book timeline <input> |
Record a timeline event for a contact |
contact-book report <input> |
Generate a report entry |
contact-book weekly-review <input> |
Log a weekly relationship review |
contact-book stats |
Show summary statistics: entry counts per command, total, data size |
contact-book export <fmt> |
Export all data in json, csv, or txt format |
contact-book search <term> |
Search across all logs for a keyword |
contact-book recent |
Show the 20 most recent activity entries |
contact-book status |
Health check: version, data dir, entry count, disk usage, last activity |
contact-book help |
Show help with all available commands |
contact-book version |
Show current version |
Command Behavior
- With arguments: Each command logs the input with a timestamp to its own dedicated log file (e.g.,
add.log, plan.log, tag.log)
- Without arguments: Each command displays the 20 most recent entries from its respective log file
Data Storage
- Default data directory:
~/.local/share/contact-book/
- Per-command logs:
$DATA_DIR/<command>.log (e.g., add.log, plan.log, remind.log)
- History log:
$DATA_DIR/history.log — master timeline of all activity
- Export files:
$DATA_DIR/export.<fmt> — generated by the export command
- All data is local plain-text. No cloud, no sync, no network calls.
Requirements
- Bash 4+ (uses
set -euo pipefail)
- No external dependencies or API keys required
- Works entirely offline — your data stays on your machine
When to Use
- Building a personal CRM — Use
add, tag, and track to maintain a lightweight contact database with interaction history
- Planning follow-ups — Use
plan and remind to schedule and track outreach to important contacts
- Maintaining communication streaks — Track how consistently you stay in touch with key people using
streak
- Weekly relationship reviews — Run
weekly-review to reflect on your networking activity and identify gaps
- Exporting contact data — Use
export json or export csv to produce structured data for other tools or spreadsheets
Examples
# Add a new contact
contact-book add "Alice Chen — PM at Acme Corp — alice@acme.com"
# Plan a follow-up
contact-book plan "Follow up with Alice re: partnership proposal by Friday"
# Track an interaction
contact-book track "Had coffee with Bob, discussed Q2 roadmap"
# Tag a contact
contact-book tag "Alice Chen: investor, priority"
# Set a reminder
contact-book remind "Send birthday card to Carol — March 25"
# Log a weekly review
contact-book weekly-review "Reached out to 5 contacts, 3 replied, 1 meeting scheduled"
# Search across all logs
contact-book search "Alice"
# Export all data as CSV
contact-book export csv
# View summary statistics
contact-book stats
# Check system status
contact-book status
# Show recent activity
contact-book recent
How It Works
Each command maintains its own log file in the data directory. Entries are stored as timestamp|value lines. The stats command aggregates counts across all log files. The export command merges all logs into a single file in your chosen format (JSON, CSV, or TXT). Every action is also recorded in history.log as a master audit trail.
Tips
- Run any command without arguments to review its recent entries — quick way to check history
- Use
contact-book recent for a cross-command activity timeline
- Combine
search with shell tools: contact-book search "2025" | grep "plan"
- The
prioritize command helps surface your most important relationship-building tasks
- Run
contact-book help at any time for the complete command reference
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com
1---2name: contact-book3description: Store personal contacts with tags, search, and relationship tracking. Use when adding contacts, searching details, planning follow-ups.4---5
6# Contact Book
7
8Productivity toolkit for managing contacts and relationships — add entries, plan follow-ups, track interactions, set reminders, tag contacts, and generate reports. All data remains on disk.
9
10## Commands
11
12| Command | Description |
13|---------|-------------|
14| `contact-book add <input>` | Add a new contact or entry |
15| `contact-book plan <input>` | Record a follow-up plan for a contact |
16| `contact-book track <input>` | Log an interaction or touchpoint |
17| `contact-book review <input>` | Record a review note for a contact or relationship |
18| `contact-book streak <input>` | Track communication streaks with contacts |
19| `contact-book remind <input>` | Set a reminder for a contact-related task |
20| `contact-book prioritize <input>` | Mark a contact or task as high priority |
21| `contact-book archive <input>` | Archive a contact or old entry |
22| `contact-book tag <input>` | Add a tag or label to a contact |
23| `contact-book timeline <input>` | Record a timeline event for a contact |
24| `contact-book report <input>` | Generate a report entry |
25| `contact-book weekly-review <input>` | Log a weekly relationship review |
26| `contact-book stats` | Show summary statistics: entry counts per command, total, data size |
27| `contact-book export <fmt>` | Export all data in `json`, `csv`, or `txt` format |
28| `contact-book search <term>` | Search across all logs for a keyword |
29| `contact-book recent` | Show the 20 most recent activity entries |
30| `contact-book status` | Health check: version, data dir, entry count, disk usage, last activity |
31| `contact-book help` | Show help with all available commands |
32| `contact-book version` | Show current version |
33
34### Command Behavior
35
36- **With arguments**: Each command logs the input with a timestamp to its own dedicated log file (e.g., `add.log`, `plan.log`, `tag.log`)
37- **Without arguments**: Each command displays the 20 most recent entries from its respective log file
38
39## Data Storage
40
41- Default data directory: `~/.local/share/contact-book/`
42- Per-command logs: `$DATA_DIR/<command>.log` (e.g., `add.log`, `plan.log`, `remind.log`)
43- History log: `$DATA_DIR/history.log` — master timeline of all activity
44- Export files: `$DATA_DIR/export.<fmt>` — generated by the `export` command
45- All data is local plain-text. No cloud, no sync, no network calls.
46
47## Requirements
48
49- Bash 4+ (uses `set -euo pipefail`)
50- No external dependencies or API keys required
51- Works entirely offline — your data stays on your machine
52
53## When to Use
54
551. **Building a personal CRM** — Use `add`, `tag`, and `track` to maintain a lightweight contact database with interaction history
562. **Planning follow-ups** — Use `plan` and `remind` to schedule and track outreach to important contacts
573. **Maintaining communication streaks** — Track how consistently you stay in touch with key people using `streak`
584. **Weekly relationship reviews** — Run `weekly-review` to reflect on your networking activity and identify gaps
595. **Exporting contact data** — Use `export json` or `export csv` to produce structured data for other tools or spreadsheets
60
61## Examples
62
63```bash
64# Add a new contact
65contact-book add "Alice Chen — PM at Acme Corp — alice@acme.com"
66
67# Plan a follow-up
68contact-book plan "Follow up with Alice re: partnership proposal by Friday"
69
70# Track an interaction
71contact-book track "Had coffee with Bob, discussed Q2 roadmap"
72
73# Tag a contact
74contact-book tag "Alice Chen: investor, priority"
75
76# Set a reminder
77contact-book remind "Send birthday card to Carol — March 25"
78
79# Log a weekly review
80contact-book weekly-review "Reached out to 5 contacts, 3 replied, 1 meeting scheduled"
81
82# Search across all logs
83contact-book search "Alice"
84
85# Export all data as CSV
86contact-book export csv
87
88# View summary statistics
89contact-book stats
90
91# Check system status
92contact-book status
93
94# Show recent activity
95contact-book recent
96```
97
98## How It Works
99
100Each command maintains its own log file in the data directory. Entries are stored as `timestamp|value` lines. The `stats` command aggregates counts across all log files. The `export` command merges all logs into a single file in your chosen format (JSON, CSV, or TXT). Every action is also recorded in `history.log` as a master audit trail.
101
102## Tips
103
104- Run any command without arguments to review its recent entries — quick way to check history
105- Use `contact-book recent` for a cross-command activity timeline
106- Combine `search` with shell tools: `contact-book search "2025" | grep "plan"`
107- The `prioritize` command helps surface your most important relationship-building tasks
108- Run `contact-book help` at any time for the complete command reference
109
110---
111
112Powered by BytesAgain | bytesagain.com | hello@bytesagain.com