terminal
cmdhub adapter

Hubspot CLI
for cmdhub.

Hubspot resources through the cmdhub CLI.

lock Auth: oauth
Quick Install cmdhub get hubspot

data_object Agent Contract

Agents should start with auth/status and discovery commands, inspect schemas before composition, and treat commands marked as mutating as state-changing operations.

Output

Use human output for normal reads, `--json` for scripting or complete structured fields, and `--jsonl` for upstream pipe inputs.

Auth

oauth

Refs

Prefer list/search, then short refs or piped JSONL. Use `resolve` to inspect cached refs.

Schemas

Use `hubspot schema` and `catalog.json` to inspect fields, flags, examples, and side effects.

terminal Command Reference

Generated from source. Global flags apply to all commands.

Global Flags

--json bool Emit JSON machine output
--jsonl bool Emit JSONL records for piping
--output, -o string Compatibility output mode: json|jsonl. Prefer --json or --jsonl
--view string = summary View mode: summary|full
--profile string = default Config/auth profile
--config string Config path override
--quiet, -q bool Suppress non-essential diagnostics
--debug bool Enable debug diagnostics
--limit int = 50 Maximum items to emit
--page-size int = 50 Requested upstream page size
--cursor string Continuation cursor
--no-paginate bool Fetch only one page
--version, -v bool Print version information
hubspot association Manage exact HubSpot CRM associations
#cmd-hubspot-association discovery safe

Manage relationships between exact HubSpot CRM records.

Workflow: find both records, inspect association types when needed, add an exact relationship, or preview removal before confirming.

Selectors and filters: –from and –to use object:ref selectors such as contact:ct1 and company:co1. types uses –from –to .

Output: Human output uses local CRM refs. JSON and JSONL preserve exact HubSpot IDs and association type IDs.

Safety: association remove requires –dry-run or –yes. Records are not deleted when an association is removed.

$ hubspot association types --from contact --to company
$ hubspot association add --from contact:ct1 --to company:co1 --type at1
$ hubspot association remove --from contact:ct1 --to company:co1 --dry-run
hubspot association add Associate two exact HubSpot CRM records
#cmd-hubspot-association-add mutates state
--from string Source object type or object:ref, such as contact or contact:ct1
--label string Association type ID from association types; omitted uses HubSpot default for the pair
--to string Target object type or object:ref, such as company or company:co1
$ hubspot association add --from contact:ct1 --to company:co1 --type at1
$ hubspot association add --help
$ hubspot association types --from contact --to company
hubspot association list List HubSpot associations from an exact record
#cmd-hubspot-association-list discovery safe
--from string Source object type or object:ref, such as contact or contact:ct1
--to string Target object type or object:ref, such as company or company:co1
$ hubspot association list
$ hubspot association list --from contact:ct1 --to company
$ hubspot contact search --query ada
hubspot association remove Remove an exact HubSpot CRM association
#cmd-hubspot-association-remove mutates state dry-run
--dry-run bool Preview the exact association removal without mutating HubSpot
--from string Source object type or object:ref, such as contact or contact:ct1
--to string Target object type or object:ref, such as company or company:co1
--yes bool Confirm removal of the exact association
$ hubspot association remove --from contact:ct1 --to company:co1 --dry-run
$ hubspot association remove --from contact:ct1 --to company:co1 --yes
$ hubspot association remove --help
$ hubspot association remove a1 --dry-run
hubspot association types List HubSpot association labels
#cmd-hubspot-association-types discovery safe
--from string Source object type or object:ref, such as contact or contact:ct1
--to string Target object type or object:ref, such as company or company:co1
$ hubspot association types
$ hubspot association types --from contact --to company
hubspot auth Manage HubSpot authentication
#cmd-hubspot-auth discovery safe
$ hubspot auth --help
hubspot auth login Authenticate with a HubSpot OAuth grant
#cmd-hubspot-auth-login mutates state
Starts HubSpot OAuth login for a HubSpot OAuth access token and refresh token through the cmdhub website broker. Normal users do not need a HubSpot OAuth client ID or client secret.
$ hubspot auth login
$ hubspot auth login --help
$ hubspot auth status
hubspot auth logout Remove stored HubSpot OAuth credentials
#cmd-hubspot-auth-logout mutates state
Deletes the selected profile’s HubSpot OAuth access token and refresh token from the shared credential backend.
$ hubspot auth login
$ hubspot auth logout
$ hubspot auth logout --help
hubspot auth refresh Refresh the stored HubSpot OAuth access token
#cmd-hubspot-auth-refresh mutates state
Refreshes the selected profile’s HubSpot OAuth access token through the cmdhub broker refresh relay by default. Maintainer OAuth app credentials can override the broker path for direct refresh testing.
$ hubspot auth refresh
$ hubspot auth refresh --help
$ hubspot auth status
hubspot auth status Show HubSpot OAuth auth status
#cmd-hubspot-auth-status discovery safe
Reports whether the selected profile has a stored HubSpot OAuth access token and refresh token, whether the access token is valid, and whether required HubSpot OAuth scopes are present.
$ hubspot auth status
$ hubspot auth status --help
$ hubspot auth status --json
hubspot auth whoami Show the current HubSpot user and portal
#cmd-hubspot-auth-whoami discovery safe
Verifies the stored HubSpot OAuth access token and shows the configured HubSpot user and portal.
$ hubspot auth whoami
$ hubspot auth whoami --help
$ hubspot auth whoami --json
hubspot capabilities Describe capabilities
#cmd-hubspot-capabilities discovery safe
--section string Show one capability section: scopes, schemas, or commands
$ hubspot capabilities --help
hubspot cleanup Plan, run, and verify bounded cleanup of disposable HubSpot CRM data
#cmd-hubspot-cleanup discovery safe

Plan, run, and verify bounded cleanup of disposable cmdhub HubSpot CRM data.

Workflow: create a cleanup manifest from a cmdhub-* token, review the manifest, run deletion with –yes, then verify the token is gone.

Selectors and filters: –token must start with cmdhub- or cmdhub-eval-. –objects bounds cleanup to contacts, companies, deals, tickets, and notes. –manifest selects the generated cleanup manifest for run and verify.

Output: Human output summarizes the manifest, refs, deleted records, and verification status. JSON preserves exact HubSpot IDs and URLs.

Safety: cleanup run requires –yes and only operates on records selected by a bounded manifest.

$ hubspot cleanup plan --token cmdhub-eval-20260607 --objects contacts,companies,deals,tickets,notes
$ hubspot cleanup run --manifest lifecycle/live/cleanup-cmdhub-eval-20260607.json --yes
$ hubspot cleanup verify --token cmdhub-eval-20260607
hubspot cleanup plan Preview disposable cmdhub CRM records and write a cleanup manifest
#cmd-hubspot-cleanup-plan discovery safe
--manifest string Cleanup manifest path; defaults under apps/hubspot-cli/lifecycle/live
--objects string Comma-separated object set: contacts, companies, deals, tickets, notes
--token string Disposable cmdhub-* token to search for
$ hubspot cleanup plan
$ hubspot cleanup plan --token cmdhub-eval-20260607 --objects contacts,companies
hubspot cleanup run Delete only records listed in a cleanup manifest
#cmd-hubspot-cleanup-run discovery safe dry-run
--dry-run bool Preview cleanup manifest deletion without deleting records
--manifest string Cleanup manifest path from cleanup plan
--yes bool Confirm deletion of only records listed in the manifest
$ hubspot cleanup run --help
$ hubspot cleanup run --manifest apps/hubspot-cli/lifecycle/live/cleanup-cmdhub-eval-20260607.json --dry-run
$ hubspot cleanup run --manifest apps/hubspot-cli/lifecycle/live/cleanup-cmdhub-eval-20260607.json --yes
hubspot cleanup verify Verify disposable cmdhub CRM records are gone
#cmd-hubspot-cleanup-verify discovery safe
--manifest string Cleanup manifest path to verify
--objects string Comma-separated object set: contacts, companies, deals, tickets, notes
--token string Disposable cmdhub-* token to search for
$ hubspot cleanup verify
$ hubspot cleanup verify --token cmdhub-eval-20260607 --objects contacts,companies
hubspot company Work with HubSpot company records
#cmd-hubspot-company discovery safe

Work with HubSpot company records.

Actions: list, search, get, create, update, upsert, delete, restore

Workflow: search or list records, inspect the selected local ref, then run exact create, update, move, delete, or restore commands.

Selectors and filters: get, update, delete, and restore accept local refs like co1, HubSpot record IDs, and exact unique values when available. Useful filters include –query, –owner, –created-after, –updated-after, –archived, and –property name=value. company records commonly use –domain as their unique selector.

Output: Human output uses local refs and hides long HubSpot IDs. Use –json or –jsonl for exact IDs, URLs, properties, cursors, and associations.

Safety: delete requires –dry-run or –yes. Use restore for records recoverable from the HubSpot recycle bin.

$ hubspot company search --query cmdhub --limit 5
$ hubspot company get co1 --view full
$ hubspot company create --name "Cmdhub Eval" --domain example.invalid
$ hubspot company search --query cmdhub --limit 5
$ hubspot company update co1 --property lifecyclestage=customer
$ hubspot company delete co1 --dry-run
hubspot company create Create a HubSpot company
#cmd-hubspot-company-create mutates state
--city string Company city
--country string Company country
--domain string Company domain
--industry string Company industry
--lifecycle-stage string Company lifecycle stage
--name string Company name
--owner string HubSpot owner ID or ref
--property stringArray = [] Additional HubSpot property as name=value
$ hubspot company create --help
$ hubspot company create --name "Cmdhub Eval" --domain example.invalid
hubspot company delete Delete an exact HubSpot company
#cmd-hubspot-company-delete mutates state dry-run
--dry-run bool Preview the exact delete without mutating HubSpot
--yes bool Confirm deletion of the exact displayed record
$ hubspot company delete --help
$ hubspot company delete co1 --dry-run
$ hubspot company delete co1 --yes
$ hubspot company search --query cmdhub-eval --limit 5
hubspot company get Inspect a HubSpot company
#cmd-hubspot-company-get discovery safe
$ hubspot company get
$ hubspot company get co1 --view full
$ hubspot company search --query cmdhub --limit 5
hubspot company list List HubSpot companies
#cmd-hubspot-company-list discovery safe
--archived string Archived filter: true or false
--city string Filter by company city
--country string Filter by company country
--created-after string Only records created after YYYY-MM-DD or RFC3339
--domain string Filter by company domain
--filter stringArray = [] Property filter as name=value, name:OP:value, or "name OP value"
--industry string Filter by company industry
--lifecycle-stage string Filter by company lifecycle stage
--name string Filter by company name
--owner string HubSpot owner ID, owner ref, email, or name
--property stringArray = [] Additional exact property filter as name=value
--updated-after string Only records updated after YYYY-MM-DD or RFC3339
$ hubspot company get co1 --view full
$ hubspot company list
$ hubspot company list --limit 10
hubspot company restore Restore a HubSpot company from recycle bin
#cmd-hubspot-company-restore discovery safe
$ hubspot company restore --help
$ hubspot company restore co1
hubspot company update Update an exact HubSpot company
#cmd-hubspot-company-update mutates state
--city string Company city
--country string Company country
--domain string Company domain
--industry string Company industry
--lifecycle-stage string Company lifecycle stage
--name string Company name
--owner string HubSpot owner ID or ref
--property stringArray = [] HubSpot property update as name=value
$ hubspot company search --query cmdhub --limit 5
$ hubspot company update --help
$ hubspot company update co1 --property lifecyclestage=customer
hubspot company upsert Create or update a HubSpot company by domain
#cmd-hubspot-company-upsert discovery safe
--city string Company city
--country string Company country
--domain string Company domain
--industry string Company industry
--lifecycle-stage string Company lifecycle stage
--name string Company name
--owner string HubSpot owner ID or ref
--property stringArray = [] Additional HubSpot property as name=value
$ hubspot company upsert --domain cmdhub-eval@example.invalid --property lifecyclestage=customer
$ hubspot company upsert --domain example.invalid --name "Cmdhub Eval"
$ hubspot company upsert --help
hubspot config Inspect local configuration
#cmd-hubspot-config discovery safe
$ hubspot config --help
hubspot config explain Explain resolved configuration
#cmd-hubspot-config-explain discovery safe
$ hubspot config explain --help
hubspot contact Work with HubSpot contact records
#cmd-hubspot-contact discovery safe

Work with HubSpot contact records.

Actions: list, search, get, create, update, upsert, delete, restore

Workflow: search or list records, inspect the selected local ref, then run exact create, update, move, delete, or restore commands.

Selectors and filters: get, update, delete, and restore accept local refs like ct1, HubSpot record IDs, and exact unique values when available. Useful filters include –query, –owner, –created-after, –updated-after, –archived, and –property name=value. contact records commonly use –email as their unique selector.

Output: Human output uses local refs and hides long HubSpot IDs. Use –json or –jsonl for exact IDs, URLs, properties, cursors, and associations.

Safety: delete requires –dry-run or –yes. Use restore for records recoverable from the HubSpot recycle bin.

$ hubspot contact search --query cmdhub --limit 5
$ hubspot contact get ct1 --view full
$ hubspot contact create --email cmdhub-eval@example.com --first-name Cmdhub --last-name Eval
$ hubspot contact search --query cmdhub --limit 5
$ hubspot contact update ct1 --lifecycle-stage customer
$ hubspot contact delete ct1 --dry-run
hubspot contact create Create a HubSpot contact
#cmd-hubspot-contact-create mutates state
--email string Contact email
--first-name string Contact first name
--last-name string Contact last name
--lifecycle-stage string Contact lifecycle stage
--owner string HubSpot owner ID or ref
--phone string Contact phone number
--property stringArray = [] Additional HubSpot property as name=value
$ hubspot contact create --email cmdhub-eval@example.com --first-name Cmdhub
$ hubspot contact create --email cmdhub-eval@example.com --first-name Cmdhub --last-name Eval
$ hubspot contact create --help
hubspot contact delete Delete an exact HubSpot contact
#cmd-hubspot-contact-delete mutates state dry-run
--dry-run bool Preview the exact delete without mutating HubSpot
--yes bool Confirm deletion of the exact displayed record
$ hubspot contact delete --help
$ hubspot contact delete ct1 --dry-run
$ hubspot contact delete ct1 --yes
$ hubspot contact search --query cmdhub-eval --limit 5
hubspot contact get Inspect a HubSpot contact
#cmd-hubspot-contact-get discovery safe
$ hubspot contact get
$ hubspot contact get ct1 --view full
$ hubspot contact search --query cmdhub --limit 5
hubspot contact list List HubSpot contacts
#cmd-hubspot-contact-list discovery safe
--archived string Archived filter: true or false
--created-after string Only records created after YYYY-MM-DD or RFC3339
--email string Filter by contact email
--filter stringArray = [] Property filter as name=value, name:OP:value, or "name OP value"
--first-name string Filter by contact first name
--last-name string Filter by contact last name
--lifecycle-stage string Filter by contact lifecycle stage
--owner string HubSpot owner ID, owner ref, email, or name
--phone string Filter by contact phone
--property stringArray = [] Additional exact property filter as name=value
--updated-after string Only records updated after YYYY-MM-DD or RFC3339
$ hubspot contact get ct1 --view full
$ hubspot contact list
$ hubspot contact list --limit 10
hubspot contact restore Restore a HubSpot contact from recycle bin
#cmd-hubspot-contact-restore discovery safe
$ hubspot contact restore --help
$ hubspot contact restore ct1
hubspot contact update Update an exact HubSpot contact
#cmd-hubspot-contact-update mutates state
--email string Contact email
--first-name string Contact first name
--last-name string Contact last name
--lifecycle-stage string Contact lifecycle stage
--owner string HubSpot owner ID or ref
--phone string Contact phone number
--property stringArray = [] HubSpot property update as name=value
$ hubspot contact search --query cmdhub --limit 5
$ hubspot contact update --help
$ hubspot contact update ct1 --lifecycle-stage customer
hubspot contact upsert Create or update a HubSpot contact by email
#cmd-hubspot-contact-upsert discovery safe
--email string Contact email
--first-name string Contact first name
--last-name string Contact last name
--lifecycle-stage string Contact lifecycle stage
--owner string HubSpot owner ID or ref
--phone string Contact phone number
--property stringArray = [] Additional HubSpot property as name=value
$ hubspot contact upsert --email cmdhub-eval@example.com --first-name Cmdhub
$ hubspot contact upsert --email cmdhub-eval@example.invalid --property lifecyclestage=customer
$ hubspot contact upsert --help
hubspot deal Work with HubSpot deal records
#cmd-hubspot-deal discovery safe

Work with HubSpot deal records.

Actions: list, search, get, create, update, move, delete, restore

Workflow: search or list records, inspect the selected local ref, then run exact create, update, move, delete, or restore commands.

Selectors and filters: get, update, delete, and restore accept local refs like d1, HubSpot record IDs, and exact unique values when available. Useful filters include –query, –owner, –created-after, –updated-after, –archived, and –property name=value. deal records commonly use –name as their unique selector.

Output: Human output uses local refs and hides long HubSpot IDs. Use –json or –jsonl for exact IDs, URLs, properties, cursors, and associations.

Safety: delete requires –dry-run or –yes. Use restore for records recoverable from the HubSpot recycle bin.

$ hubspot deal search --query cmdhub --limit 5
$ hubspot deal get d1 --view full
$ hubspot deal create --name "Cmdhub Eval Renewal" --amount 1000 --stage appointmentscheduled
$ hubspot deal search --query cmdhub --limit 5
$ hubspot deal update d1 --amount 2500
$ hubspot deal move d1 --stage s2
$ hubspot deal delete d1 --dry-run
hubspot deal create Create a HubSpot deal
#cmd-hubspot-deal-create mutates state
--amount string Deal amount
--close-date string Deal close date
--company string Company ref or ID to associate after create
--contact string Contact ref or ID to associate after create
--description string Deal description
--name string Deal name
--owner string HubSpot owner ID or ref
--pipeline string Deal pipeline ID or ref
--property stringArray = [] Additional HubSpot property as name=value
--stage string Deal stage ID or ref
$ hubspot deal create --help
$ hubspot deal create --name "Cmdhub Eval Renewal" --amount 1000 --stage appointmentscheduled
hubspot deal delete Delete an exact HubSpot deal
#cmd-hubspot-deal-delete mutates state dry-run
--dry-run bool Preview the exact delete without mutating HubSpot
--yes bool Confirm deletion of the exact displayed record
$ hubspot deal delete --help
$ hubspot deal delete d1 --dry-run
$ hubspot deal delete d1 --yes
$ hubspot deal search --query cmdhub-eval --limit 5
hubspot deal get Inspect a HubSpot deal
#cmd-hubspot-deal-get discovery safe
$ hubspot deal get
$ hubspot deal get d1 --view full
$ hubspot deal search --query cmdhub --limit 5
hubspot deal list List HubSpot deals
#cmd-hubspot-deal-list discovery safe
--amount string Filter by deal amount
--archived string Archived filter: true or false
--close-date string Filter by deal close date
--company string Filter by associated company ref or ID
--contact string Filter by associated contact ref or ID
--created-after string Only records created after YYYY-MM-DD or RFC3339
--filter stringArray = [] Property filter as name=value, name:OP:value, or "name OP value"
--name string Filter by deal name
--owner string HubSpot owner ID, owner ref, email, or name
--pipeline string Filter by deal pipeline ID or ref
--property stringArray = [] Additional exact property filter as name=value
--stage string Filter by deal stage ID, ref, or label
--updated-after string Only records updated after YYYY-MM-DD or RFC3339
$ hubspot deal get d1 --view full
$ hubspot deal list
$ hubspot deal list --limit 10
hubspot deal move Move a HubSpot deal to another stage
#cmd-hubspot-deal-move discovery safe
Move a HubSpot deal only after validating the requested stage against HubSpot pipeline metadata. Stage accepts a displayed stage ref from hubspot pipeline get p1 --object deal, an exact stage ID, or an unambiguous stage label. Use –pipeline when labels are ambiguous across pipelines.
--pipeline string Pipeline ref or pipeline ID
--stage string Stage ref, stage ID, or stage label
$ hubspot deal move --help
$ hubspot deal move d1 --stage s2
$ hubspot pipeline list --object deal
hubspot deal restore Restore a HubSpot deal from recycle bin
#cmd-hubspot-deal-restore discovery safe
$ hubspot deal restore --help
$ hubspot deal restore d1
hubspot deal update Update an exact HubSpot deal
#cmd-hubspot-deal-update mutates state
--amount string Deal amount
--close-date string Deal close date
--company string Company ref or ID to associate after create
--contact string Contact ref or ID to associate after create
--description string Deal description
--name string Deal name
--owner string HubSpot owner ID or ref
--pipeline string Deal pipeline ID or ref
--property stringArray = [] HubSpot property update as name=value
--stage string Deal stage ID or ref
$ hubspot deal search --query cmdhub --limit 5
$ hubspot deal update --help
$ hubspot deal update d1 --amount 2500
hubspot doctor Run diagnostics
#cmd-hubspot-doctor discovery safe

Run HubSpot diagnostics for the active profile.

Checks include the local credential backend, selected profile, OAuth broker setup, stored HubSpot OAuth token readiness, required scopes, and HubSpot API reachability. Use this before retrying auth, CRM, metadata, or cleanup workflows that fail with auth or upstream-provider errors.

$ hubspot auth login --profile work
$ hubspot auth status
$ hubspot doctor
$ hubspot doctor --help
$ hubspot doctor --json
hubspot mcp Run the MCP server
#cmd-hubspot-mcp discovery safe

Run a stdio Model Context Protocol server for this adapter.

The server exposes read-only resource commands by default. Mutating commands are listed only when explicitly allowed with –allow and remain gated by the command contract safety class.

--allow stringArray = [] Allow mutating command keys such as gmail.message.archive or gmail.message.label.*
--allow-dangerous bool Allow --allow wildcards to include destructive or sends_external commands
--concurrency int Maximum concurrent MCP subprocesses
--max-output int64 = 0 Maximum stdout/stderr bytes captured per MCP command
--print-config bool Print MCP tool configuration and exit
--timeout duration = 0s Per-command MCP subprocess timeout, for example 45s or 2m
$ mcp
$ mcp --print-config
hubspot note Work with HubSpot CRM notes
#cmd-hubspot-note discovery safe

Work with HubSpot notes attached to exact CRM records.

Workflow: find the target contact, company, deal, or ticket; create or list notes with –on object:ref; then inspect or update the note by local ref.

Selectors and filters: –on accepts contact:ct1, company:co1, deal:d1, or ticket:tk1. create accepts –body or –body-file. list and search accept created/updated filters and pagination flags.

Output: Human output uses note refs n1 and CRM refs. JSON and JSONL preserve exact note IDs and associations.

Safety: delete requires –dry-run or –yes. Pin and unpin require an exact target record.

$ hubspot note create --on deal:d1 --body "Customer asked for renewal quote."
$ hubspot note list --on deal:d1
$ hubspot note get n1 --view full
$ hubspot note delete n1 --dry-run
hubspot note create Create a HubSpot CRM note
#cmd-hubspot-note-create mutates state
Create a HubSpot CRM note on one exact record. Prefer –on object:ref, such as –on deal:d1, after listing or searching the target record. Use –body for short text or –body-file for a local UTF-8 note body.
--body string Note body
--body-file string Read note body from a local UTF-8 file
--company string Company ref or ID to associate
--contact string Contact ref or ID to associate
--deal string Deal ref or ID to associate
--on string Target record as object:ref, such as deal:d1
--ticket string Ticket ref or ID to associate
$ hubspot contact search --query cmdhub --limit 5
$ hubspot note create --help
$ hubspot note create --on contact:ct1 --body "Left voicemail."
$ hubspot note create --on deal:d1 --body-file note.txt
hubspot note delete Delete an exact HubSpot CRM note
#cmd-hubspot-note-delete mutates state dry-run
--dry-run bool Preview the exact note deletion without mutating HubSpot
--yes bool Confirm deletion of the exact displayed note
$ hubspot note delete --help
$ hubspot note delete n1 --dry-run
$ hubspot note delete n1 --yes
hubspot note get Inspect a HubSpot CRM note
#cmd-hubspot-note-get discovery safe
$ hubspot note get
$ hubspot note get n1 --view full
hubspot note list List HubSpot CRM notes
#cmd-hubspot-note-list discovery safe
--created-after string Only records created after YYYY-MM-DD or RFC3339
--on string Target record as object:ref, such as deal:d1
$ hubspot note list
$ hubspot note list --on deal:d1
hubspot note pin Pin a HubSpot CRM note on a record
#cmd-hubspot-note-pin mutates state
--on string Target record as object:ref, such as deal:d1
$ hubspot note pin --help
$ hubspot note pin n1 --on deal:d1
hubspot note unpin Unpin a HubSpot CRM note from a record
#cmd-hubspot-note-unpin mutates state
--on string Target record as object:ref, such as deal:d1
$ hubspot note unpin --help
$ hubspot note unpin n1 --on deal:d1
hubspot note update Update an exact HubSpot CRM note
#cmd-hubspot-note-update mutates state
--body string Updated note body
--property stringArray = [] HubSpot note property update as name=value
$ hubspot note update --help
$ hubspot note update n1 --body "Updated context."
hubspot owner Discover HubSpot owners
#cmd-hubspot-owner discovery safe

Discover assignable HubSpot CRM owners before create or update commands.

Workflow: list or search owners, then use displayed owner refs such as o1 with –owner on CRM record commands.

Selectors and filters: owner get accepts an owner ref, owner ID, email, or exact name. owner search accepts –query for names and email addresses.

Output: Human output uses owner refs o1. JSON and JSONL preserve exact HubSpot owner IDs.

Safety: Read-only metadata. The HubSpot owner ID is the assignment value, not userId.

$ hubspot owner search --query ada@example.com
$ hubspot owner get o1
$ hubspot contact update ct1 --owner o1
hubspot owner get Inspect a HubSpot owner
#cmd-hubspot-owner-get discovery safe
$ hubspot owner get
$ hubspot owner get o1
hubspot owner list List HubSpot owners
#cmd-hubspot-owner-list discovery safe
$ hubspot owner list
$ hubspot owner list --json
hubspot pipeline Discover HubSpot deal and ticket pipelines
#cmd-hubspot-pipeline discovery safe

Discover read-only HubSpot deal and ticket pipeline metadata before moving records.

Workflow: list pipelines for the object, inspect one pipeline, then use displayed stage refs with deal move or ticket move.

Selectors and filters: pipeline get accepts a local pipeline ref such as p1, a HubSpot pipeline ID, or an exact pipeline label. –object selects deal or ticket pipelines.

Output: Human output uses pipeline refs p1 and stage refs s1. JSON and JSONL preserve exact HubSpot IDs.

Safety: Pipeline and stage administration is out of scope; this command only reads metadata.

$ hubspot pipeline list --object deal
$ hubspot pipeline get p1 --object deal
$ hubspot deal move d1 --stage s2
$ hubspot pipeline stage get s2 --object deal --pipeline p1
hubspot pipeline get Inspect a HubSpot pipeline and cache stages
#cmd-hubspot-pipeline-get discovery safe
--object string = deal Pipeline object: deal or ticket
$ hubspot pipeline get
$ hubspot pipeline get p1 --view full
$ hubspot pipeline list --object deal
hubspot pipeline list List HubSpot pipelines
#cmd-hubspot-pipeline-list discovery safe
--object string = deal Pipeline object: deal or ticket
$ hubspot pipeline get p1 --object deal
$ hubspot pipeline list
$ hubspot pipeline list --object deal
hubspot pipeline stage Discover HubSpot pipeline stages
#cmd-hubspot-pipeline-stage discovery safe

Discover valid stage refs for deal and ticket move commands.

Workflow: inspect a pipeline with hubspot pipeline get p1, then use the stage refs with deal move or ticket move.

Selectors and filters: stage get accepts a stage ref such as s1, a HubSpot stage ID, or an exact stage label. –pipeline accepts a pipeline ref, ID, or label. –object selects deal or ticket.

Output: Human output uses stage refs s1. JSON and JSONL preserve exact HubSpot IDs.

$ hubspot pipeline stage list --object deal --pipeline p1
$ hubspot pipeline stage get s1 --object deal --pipeline p1
$ hubspot deal move d1 --stage s1
hubspot pipeline stage get Inspect a HubSpot pipeline stage
#cmd-hubspot-pipeline-stage-get discovery safe
--object string = deal Pipeline object: deal or ticket
--pipeline string Pipeline ref, ID, or label
$ hubspot pipeline stage get
$ hubspot pipeline stage get s1 --object deal --pipeline p1
hubspot pipeline stage list List HubSpot pipeline stages
#cmd-hubspot-pipeline-stage-list discovery safe
--object string = deal Pipeline object: deal or ticket
--pipeline string Pipeline ref, ID, or label
$ hubspot pipeline stage list
$ hubspot pipeline stage list --object deal --pipeline p1
hubspot profile Manage provider profiles
#cmd-hubspot-profile discovery safe
$ hubspot profile --help
hubspot profile create Create an unauthenticated provider profile
#cmd-hubspot-profile-create mutates state
$ hubspot profile create --help
hubspot profile delete Delete a local provider profile
#cmd-hubspot-profile-delete mutates state
$ hubspot profile delete --help
hubspot profile list List provider profiles
#cmd-hubspot-profile-list discovery safe
$ hubspot profile list --help
hubspot profile rename Rename a local provider profile
#cmd-hubspot-profile-rename discovery safe
$ hubspot profile rename --help
hubspot profile use Set the default provider profile
#cmd-hubspot-profile-use mutates state
$ hubspot profile use --help
hubspot property Discover HubSpot CRM properties
#cmd-hubspot-property discovery safe

Discover valid HubSpot property internal names, field types, and option values.

Workflow: search properties for an object, inspect a property, then use –property name=value on create, update, list, or search commands.

Selectors and filters: property get accepts a property ref such as pr1, an internal property name, or an exact label. –object selects contact, company, deal, ticket, or note.

Output: Human output uses property refs pr1 and internal names. JSON and JSONL preserve full property metadata.

Safety: Read-only metadata. Read-only properties are shown so agents avoid invalid update attempts.

$ hubspot property search --object contact --query lifecycle
$ hubspot property get pr1 --object contact
$ hubspot contact update ct1 --property lifecyclestage=customer
hubspot property get Inspect a HubSpot property
#cmd-hubspot-property-get discovery safe
--object string = contact CRM object: contact, company, deal, or ticket
$ hubspot property get
$ hubspot property get pr1 --view full
$ hubspot property search --object contact --query lifecycle
hubspot property list List HubSpot properties
#cmd-hubspot-property-list discovery safe
--object string = contact CRM object: contact, company, deal, or ticket
$ hubspot property get pr1 --object contact
$ hubspot property list
$ hubspot property list --object contact
hubspot resolve Resolve a local ref, short id, or URL alias
#cmd-hubspot-resolve discovery safe
$ hubspot resolve --help
$ hubspot resolve <ref>
hubspot schema Emit schema hints
#cmd-hubspot-schema discovery safe
--in bool Show input schema
--input bool Show input schema
--out bool Show output schema
$ hubspot schema --help
hubspot ticket Work with HubSpot ticket records
#cmd-hubspot-ticket discovery safe

Work with HubSpot ticket records.

Actions: list, search, get, create, update, move, delete, restore

Workflow: search or list records, inspect the selected local ref, then run exact create, update, move, delete, or restore commands.

Selectors and filters: get, update, delete, and restore accept local refs like tk1, HubSpot record IDs, and exact unique values when available. Useful filters include –query, –owner, –created-after, –updated-after, –archived, and –property name=value. ticket records commonly use –subject as their unique selector.

Output: Human output uses local refs and hides long HubSpot IDs. Use –json or –jsonl for exact IDs, URLs, properties, cursors, and associations.

Safety: delete requires –dry-run or –yes. Use restore for records recoverable from the HubSpot recycle bin.

$ hubspot ticket search --query cmdhub --limit 5
$ hubspot ticket get tk1 --view full
$ hubspot ticket create --subject "Cmdhub Eval Ticket" --content "Customer context" --stage s1 --priority LOW
$ hubspot ticket search --query cmdhub --limit 5
$ hubspot ticket update tk1 --priority HIGH
$ hubspot ticket move tk1 --stage s2
$ hubspot ticket delete tk1 --dry-run
hubspot ticket create Create a HubSpot ticket
#cmd-hubspot-ticket-create mutates state
--company string Company ref or ID to associate after create
--contact string Contact ref or ID to associate after create
--content string Ticket content
--owner string HubSpot owner ID or ref
--pipeline string Ticket pipeline ID or ref
--priority string Ticket priority
--property stringArray = [] Additional HubSpot property as name=value
--stage string Ticket stage ID or ref
--subject string Ticket subject
$ hubspot ticket create --help
$ hubspot ticket create --subject "Cmdhub Eval Ticket" --content "Customer context" --stage s1 --priority LOW
$ hubspot ticket create --subject "Cmdhub Eval Ticket" --priority LOW
hubspot ticket delete Delete an exact HubSpot ticket
#cmd-hubspot-ticket-delete mutates state dry-run
--dry-run bool Preview the exact delete without mutating HubSpot
--yes bool Confirm deletion of the exact displayed record
$ hubspot ticket delete --help
$ hubspot ticket delete tk1 --dry-run
$ hubspot ticket delete tk1 --yes
$ hubspot ticket search --query cmdhub-eval --limit 5
hubspot ticket get Inspect a HubSpot ticket
#cmd-hubspot-ticket-get discovery safe
$ hubspot ticket get
$ hubspot ticket get tk1 --view full
$ hubspot ticket search --query cmdhub --limit 5
hubspot ticket list List HubSpot tickets
#cmd-hubspot-ticket-list discovery safe
--archived string Archived filter: true or false
--company string Filter by associated company ref or ID
--contact string Filter by associated contact ref or ID
--created-after string Only records created after YYYY-MM-DD or RFC3339
--filter stringArray = [] Property filter as name=value, name:OP:value, or "name OP value"
--owner string HubSpot owner ID, owner ref, email, or name
--pipeline string Filter by ticket pipeline ID or ref
--priority string Filter by ticket priority
--property stringArray = [] Additional exact property filter as name=value
--stage string Filter by ticket stage ID, ref, or label
--subject string Filter by ticket subject
--updated-after string Only records updated after YYYY-MM-DD or RFC3339
$ hubspot ticket get tk1 --view full
$ hubspot ticket list
$ hubspot ticket list --limit 10
hubspot ticket move Move a HubSpot ticket to another stage
#cmd-hubspot-ticket-move discovery safe
Move a HubSpot ticket only after validating the requested stage against HubSpot ticket pipeline metadata. Stage accepts a displayed stage ref from hubspot pipeline get p1 --object ticket, an exact stage ID, or an unambiguous stage label. Use –pipeline when labels are ambiguous across pipelines.
--pipeline string Pipeline ref or pipeline ID
--stage string Stage ref, stage ID, or stage label
$ hubspot pipeline list --object ticket
$ hubspot ticket move --help
$ hubspot ticket move tk1 --stage s2
hubspot ticket restore Restore a HubSpot ticket from recycle bin
#cmd-hubspot-ticket-restore discovery safe
$ hubspot ticket restore --help
$ hubspot ticket restore tk1
hubspot ticket update Update an exact HubSpot ticket
#cmd-hubspot-ticket-update mutates state
--company string Company ref or ID to associate after create
--contact string Contact ref or ID to associate after create
--content string Ticket content
--owner string HubSpot owner ID or ref
--pipeline string Ticket pipeline ID or ref
--priority string Ticket priority
--property stringArray = [] HubSpot property update as name=value
--stage string Ticket stage ID or ref
--subject string Ticket subject
$ hubspot ticket search --query cmdhub --limit 5
$ hubspot ticket update --help
$ hubspot ticket update tk1 --priority HIGH
hubspot version Show version information
#cmd-hubspot-version discovery safe
$ hubspot version --help

play_circle Live Examples

Output captured from a real workspace. Regenerate with scripts/gen-docs.sh --update.

auth

Check HubSpot auth readiness
$ hubspot auth status
HubSpot auth ready
Field               Value
------------------  -----
Profile             kestrelphilip@gmail.com
Auth mode           oauth
User email          kestrelphilip@gmail.com
User ID             {id}
Hub ID              {id}
Portal              HubSpot portal {id}
Scopes              crm.objects.companies.read, crm.objects.companies.write, crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.deals.read, crm.objects.deals.write, crm.objects.owners.read, oauth, tickets
Missing scopes      none
API base            https://api.hubapi.com
Provider ready      yes
Token valid         yes
Expires             2026-07-06T09:21:04Z
Credential backend  file

Next steps:
- Current identity: hubspot auth whoami
- Diagnostics:      hubspot doctor
- Search contacts:  hubspot contact search --query "<text>"
Show active HubSpot identity
$ hubspot auth whoami
HubSpot identity
Field           Value
--------------  -----
Profile         kestrelphilip@gmail.com
Auth mode       oauth
User email      kestrelphilip@gmail.com
User ID         {id}
Hub ID          {id}
Portal          HubSpot portal {id}
Scopes          crm.objects.companies.read, crm.objects.companies.write, crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.deals.read, crm.objects.deals.write, crm.objects.owners.read, oauth, tickets
Missing scopes  none
API base        https://api.hubapi.com

Next steps:
- Status:          hubspot auth status
- Diagnostics:     hubspot doctor
- Search contacts: hubspot contact search --query "<text>"
Run HubSpot doctor
$ hubspot doctor
hubspot doctor: WARN
Account: kestrelphilip@gmail.com
Checks: credential_backend ok, credential_security warn, profiles ok, credential_backend warn, oauth_setup ok, auth ok, connectivity ok, scope ok
CHECK                STATUS  DETAIL
credential_backend   OK      using file
credential_security  WARN    credential backend stores local plaintext secrets
profiles             OK      active profile "kestrelphilip@gmail.com"
credential_backend   WARN    file
oauth_setup          OK      HubSpot OAuth broker configured
auth                 OK      HubSpot OAuth token ready
connectivity         OK      HubSpot OAuth token introspection reachable
scope                OK      required HubSpot OAuth scopes granted

Next steps:
- Status:       hubspot auth whoami
- Capabilities: hubspot capabilities

alt_route Composition Patterns

Bridge your ecosystem with zero middleware.

# Inspect auth state and available command schemas
hubspot auth status --json
hubspot schema