Client Project Manager
Manage freelance clients, projects, invoices, and communications. Use when tracking client work, creating invoices, sending updates, managing deadlines, or organizing freelance business operations.
技能说明
name: client-project-manager description: Manage freelance clients, projects, invoices, and communications. Use when tracking client work, creating invoices, sending updates, managing deadlines, or organizing freelance business operations. argument-hint: "[action] [client-or-project]" allowed-tools: Read, Write, Edit, Grep, Glob, Bash
Client Project Manager
A complete freelance business management system. Track clients, projects, deadlines, deliverables, invoices, and communications from a single skill.
How to Use
/client-project-manager add client "Acme Corp" --contact "jane@acme.com" --rate "$100/hr"
/client-project-manager add project "Website Redesign" --client "Acme Corp" --deadline "2026-03-15" --budget "$5000"
/client-project-manager status
/client-project-manager update "Website Redesign" --progress 60 --note "Homepage mockup approved"
/client-project-manager invoice "Acme Corp" --project "Website Redesign"
/client-project-manager weekly-update "Acme Corp"
/client-project-manager dashboard
Data Storage
All data is stored in ./freelance-data/ as JSON files:
freelance-data/
clients.json # Client CRM data
projects.json # Active and completed projects
time-log.json # Time tracking entries
invoices/ # Generated invoices
updates/ # Client update emails
If the directory doesn't exist, create it on first use. If files exist, read them first and preserve all existing data.
Commands
add client
Add a new client to the CRM.
/client-project-manager add client "[Name]" --contact "[email]" --rate "[rate]" --notes "[notes]"
Store in clients.json:
{
"id": "client-uuid",
"name": "Acme Corp",
"contact_email": "jane@acme.com",
"default_rate": "$100/hr",
"notes": "Prefers Slack for communication",
"projects": [],
"total_billed": 0,
"total_paid": 0,
"created": "2026-02-13",
"status": "active"
}
add project
Add a new project under a client.
/client-project-manager add project "[Name]" --client "[Client]" --deadline "[date]" --budget "[amount]" --deliverables "[list]"
Store in projects.json:
{
"id": "project-uuid",
"name": "Website Redesign",
"client_id": "client-uuid",
"client_name": "Acme Corp",
"status": "active",
"progress": 0,
"budget": 5000,
"billed": 0,
"deadline": "2026-03-15",
"created": "2026-02-13",
"deliverables": [
{ "name": "Homepage mockup", "status": "pending", "due": "2026-02-20" },
{ "name": "Inner pages", "status": "pending", "due": "2026-03-01" },
{ "name": "Development", "status": "pending", "due": "2026-03-10" },
{ "name": "Launch", "status": "pending", "due": "2026-03-15" }
],
"notes": [],
"time_entries": []
}
log time
Log time worked on a project.
/client-project-manager log time "[Project]" --hours [X] --description "[what you did]"
Append to time-log.json:
{
"id": "entry-uuid",
"project_id": "project-uuid",
"client_id": "client-uuid",
"date": "2026-02-13",
"hours": 3.5,
"rate": 100,
"amount": 350,
"description": "Built responsive navigation and hero section"
}
update
Update project progress and add notes.
/client-project-manager update "[Project]" --progress [0-100] --note "[update]" --deliverable "[name]" --status "[done|in-progress|pending]"
status
Show current status of all active projects.
Output format:
╔══════════════════════════════════════════════════════════════╗
║ FREELANCE DASHBOARD ║
╠══════════════════════════════════════════════════════════════╣
📊 Active Projects: 3
💰 Outstanding Invoices: $2,500
⏰ Hours This Week: 22.5
📅 Next Deadline: Website Redesign (Acme Corp) — Mar 15
──────────────────────────────────────────────────────────────
PROJECT: Website Redesign
CLIENT: Acme Corp | DEADLINE: Mar 15, 2026
PROGRESS: ████████████░░░░░░░░ 60%
BUDGET: $3,000 / $5,000 billed
DELIVERABLES:
✅ Homepage mockup (Feb 20) — DONE
🔄 Inner pages (Mar 1) — IN PROGRESS
⬜ Development (Mar 10) — PENDING
⬜ Launch (Mar 15) — PENDING
──────────────────────────────────────────────────────────────
invoice
Generate a professional invoice for a client.
/client-project-manager invoice "[Client]" --project "[Project]" --period "[start] to [end]"
Generate the invoice as both Markdown and HTML in freelance-data/invoices/:
Invoice content:
INVOICE #[INV-YYYY-NNN]
Date: [today]
Due: [today + 14 days]
FROM:
[Your name/business — read from freelance-data/config.json if exists]
TO:
[Client name]
[Client contact]
PROJECT: [Project name]
PERIOD: [Date range]
| Date | Description | Hours | Rate | Amount |
|------|-------------|-------|------|--------|
| ... time entries from period ... |
Subtotal: $X,XXX.XX
Tax (0%): $0.00
TOTAL DUE: $X,XXX.XX
Payment Terms: Net 14
Payment Methods: [from config.json or "Bank Transfer / PayPal"]
Thank you for your business.
Save as freelance-data/invoices/INV-2026-001-acme-corp.md and .html.
weekly-update
Generate a professional weekly client update email.
/client-project-manager weekly-update "[Client]"
Read the client's projects, recent time entries, and notes. Generate:
Subject: Weekly Update — [Project Name] — Week of [date]
Hi [Contact first name],
Here's your weekly update on [Project Name]:
**This Week:**
- [Completed deliverables and progress]
- [Key decisions made]
- [Hours worked: X.X]
**Next Week:**
- [Planned deliverables]
- [Any blockers or decisions needed from client]
**Project Status:**
- Progress: XX%
- Budget used: $X,XXX / $X,XXX
- On track for [deadline]: ✅ Yes / ⚠️ At risk / ❌ Behind
[Any questions or items needing client input]
Best,
[Your name]
Save to freelance-data/updates/ and display for copy-paste.
payment-reminder
Generate a polite payment reminder for overdue invoices.
/client-project-manager payment-reminder "[Client]"
Check for unpaid invoices past due date. Generate appropriate reminder:
- 1-7 days overdue: Gentle reminder
- 8-14 days overdue: Firm but professional follow-up
- 15+ days overdue: Final notice with late fee mention
dashboard
Show a comprehensive business overview:
╔══════════════════════════════════════════════════════════════╗
║ MONTHLY BUSINESS REPORT ║
╠══════════════════════════════════════════════════════════════╣
💰 Revenue This Month: $4,250
💰 Revenue Last Month: $3,800 (↑ 12%)
📊 Active Projects: 3
✅ Completed This Month: 1
⏰ Hours Billed: 42.5
💵 Effective Hourly Rate: $100/hr
📋 Outstanding Invoices: $2,500 (2 invoices)
⚠️ Overdue Invoices: $0
TOP CLIENTS (by revenue):
1. Acme Corp $2,500 (59%)
2. StartupXYZ $1,250 (29%)
3. LocalBiz $500 (12%)
UPCOMING DEADLINES:
Feb 20 — Homepage mockup (Acme Corp)
Mar 01 — Content strategy (StartupXYZ)
Mar 15 — Website launch (Acme Corp)
config
Set your business details for invoices and communications.
/client-project-manager config --name "Your Name" --business "Your Business LLC" --email "you@email.com" --payment "PayPal: you@email.com / Bank: routing XXX"
Save to freelance-data/config.json.
Data Integrity Rules
- Never overwrite — always read existing data first, modify, then write back
- Always backup — before any write operation, check data exists and is valid JSON
- UUID generation — use timestamp-based IDs:
client-[timestamp],project-[timestamp] - Date format — always use ISO 8601:
YYYY-MM-DD - Currency — store as numbers, display with
$formatting
如何使用「Client Project Manager」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Client Project Manager」技能完成任务
- 结果即时呈现,支持继续对话优化