
Close
- 46 installs
- 76 repo stars
- Updated August 4, 2026
- vm0-ai/vm0-skills
Helps with ai & agent building tasks during AI-assisted development.
About
close is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- close
- AI & Agent Building
- AI-coding skill
Close by the numbers
- 46 all-time installs (skills.sh)
- Ranked #7,629 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vm0-ai/vm0-skills --skill closeAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 46 |
|---|---|
| repo stars | ★ 76 |
| Last updated | August 4, 2026 |
| Repository | vm0-ai/vm0-skills ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
Troubleshooting
If requests fail, run zero doctor check-connector --env-name CLOSE_TOKEN or zero doctor check-connector --url https://api.close.com/api/v1/me/ --method GET
Core APIs
Get Current User
curl -s "https://api.close.com/api/v1/me/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '{id, email, first_name, last_name}'Get Organization Info
curl -s "https://api.close.com/api/v1/organization/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[0] | {id, name}'List Users
curl -s "https://api.close.com/api/v1/user/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, email, first_name, last_name}'Leads
List Leads
curl -s "https://api.close.com/api/v1/lead/?_limit=10" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, display_name, status_label, created_by_name}'Get a Lead
curl -s "https://api.close.com/api/v1/lead/<lead-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '{id, display_name, status_label, contacts, opportunities}'Create a Lead
Write to /tmp/request.json:
{
"name": "Acme Corp",
"contacts": [
{
"name": "Jane Smith",
"emails": [
{
"type": "office",
"email": "jane@acme.com"
}
],
"phones": [
{
"type": "office",
"phone": "+14155551234"
}
]
}
]
}curl -s -X POST "https://api.close.com/api/v1/lead/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, display_name}'Update a Lead
Write to /tmp/request.json:
{
"name": "Acme Corporation"
}curl -s -X PUT "https://api.close.com/api/v1/lead/<lead-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, display_name}'Delete a Lead
curl -s -X DELETE "https://api.close.com/api/v1/lead/<lead-id>/" --header "Authorization: Bearer $CLOSE_TOKEN"Contacts
List Contacts
curl -s "https://api.close.com/api/v1/contact/?_limit=10" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, name, lead_id, emails, phones}'Get a Contact
curl -s "https://api.close.com/api/v1/contact/<contact-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '{id, name, title, lead_id, emails, phones}'Create a Contact
Write to /tmp/request.json:
{
"lead_id": "<lead-id>",
"name": "John Doe",
"title": "VP of Engineering",
"emails": [
{
"type": "office",
"email": "john@acme.com"
}
],
"phones": [
{
"type": "mobile",
"phone": "+14155559876"
}
]
}curl -s -X POST "https://api.close.com/api/v1/contact/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, name, lead_id}'Update a Contact
Write to /tmp/request.json:
{
"title": "CTO"
}curl -s -X PUT "https://api.close.com/api/v1/contact/<contact-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, name, title}'Delete a Contact
curl -s -X DELETE "https://api.close.com/api/v1/contact/<contact-id>/" --header "Authorization: Bearer $CLOSE_TOKEN"Opportunities
List Opportunities
curl -s "https://api.close.com/api/v1/opportunity/?_limit=10" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, lead_name, status_label, status_type, value, value_currency}'Get an Opportunity
curl -s "https://api.close.com/api/v1/opportunity/<opportunity-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '{id, lead_name, status_label, status_type, value, value_currency, confidence, note}'Create an Opportunity
First, list available opportunity statuses to get a valid status_id:
curl -s "https://api.close.com/api/v1/status/opportunity/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, label, type}'Write to /tmp/request.json:
{
"lead_id": "<lead-id>",
"status_id": "<status-id>",
"value": 5000,
"value_currency": "USD",
"note": "Enterprise license deal",
"confidence": 75
}curl -s -X POST "https://api.close.com/api/v1/opportunity/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, lead_name, status_label, value}'Update an Opportunity
Write to /tmp/request.json:
{
"value": 10000,
"confidence": 90
}curl -s -X PUT "https://api.close.com/api/v1/opportunity/<opportunity-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, status_label, value, confidence}'Delete an Opportunity
curl -s -X DELETE "https://api.close.com/api/v1/opportunity/<opportunity-id>/" --header "Authorization: Bearer $CLOSE_TOKEN"Tasks
List Tasks
curl -s "https://api.close.com/api/v1/task/?_limit=10&is_complete=false" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, _type, text, date, is_complete, assigned_to_name, lead_name}'Get a Task
curl -s "https://api.close.com/api/v1/task/<task-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '{id, _type, text, date, is_complete, lead_name}'Create a Task
Write to /tmp/request.json:
{
"_type": "lead",
"lead_id": "<lead-id>",
"text": "Follow up on proposal",
"date": "2026-03-15",
"assigned_to": "<user-id>"
}curl -s -X POST "https://api.close.com/api/v1/task/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, text, date, is_complete}'Complete a Task
Write to /tmp/request.json:
{
"is_complete": true
}curl -s -X PUT "https://api.close.com/api/v1/task/<task-id>/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, text, is_complete}'Delete a Task
curl -s -X DELETE "https://api.close.com/api/v1/task/<task-id>/" --header "Authorization: Bearer $CLOSE_TOKEN"Activities
List Activities
Filter by type: Call, Email, EmailThread, Note, Meeting, SMS, LeadStatusChange, OpportunityStatusChange, TaskCompleted.
curl -s "https://api.close.com/api/v1/activity/?_limit=10" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, _type, lead_id, date_created}'List Activities for a Lead
curl -s "https://api.close.com/api/v1/activity/?lead_id=<lead-id>&_limit=10" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, _type, date_created}'Create a Note Activity
Write to /tmp/request.json:
{
"lead_id": "<lead-id>",
"note": "Had a productive call with the team. They are interested in the enterprise plan."
}curl -s -X POST "https://api.close.com/api/v1/activity/note/" --header "Authorization: Bearer $CLOSE_TOKEN" --header "Content-Type: application/json" -d @/tmp/request.json | jq '{id, note, date_created}'Lead Statuses
List Lead Statuses
curl -s "https://api.close.com/api/v1/status/lead/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, label}'Pipelines
List Pipelines
curl -s "https://api.close.com/api/v1/pipeline/" --header "Authorization: Bearer $CLOSE_TOKEN" | jq '.data[] | {id, name}'Guidelines
1. All API endpoints use the base URL https://api.close.com/api/v1/ 2. Authentication uses Bearer token: --header "Authorization: Bearer $CLOSE_TOKEN" 3. Leads are the primary object — contacts, opportunities, tasks, and activities all belong to leads 4. Use _limit and _skip query parameters for pagination (default limit is 100, max is 200) 5. When creating contacts, always provide a lead_id to associate them with an existing lead 6. Opportunity statuses have a status_type of active, won, or lost — list available statuses before creating opportunities 7. Tasks support types: lead (general) and outgoing_call — use lead type for most tasks 8. Use _fields query parameter to select specific fields and reduce response size