The package name is @contactbutton/cli. The repository contains a publish-ready 0.1.0 package, but the npm registry release is a separate release action. Until the package has been published, the following command returns an npm 404 and should not be presented as working:
npm install --global @contactbutton/cli
After the first release is published, this becomes the canonical installation command. Verify the package name, version, provenance, and repository link on npm before installing it in an agent host or CI runner.
Do not create an unofficial package with a similar name, install a package suggested only by a model, or use sudo npm install --global. Wait for the official package linked from this page.
npm --prefix cli testnpm --prefix cli run checknpm --prefix cli run pack:check
The dry-run package listing must contain only bin, src, README.md, and package metadata. It must not contain API keys, .env files, application data, or Contact Button server code.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Contact Button","description":"Create contact buttons and button.contact pages that people and AI agents can discover, understand, and use safely.","colors":{"primary":"#1D4ED8","light":"#60A5FA","dark":"#3B82F6"},"logo":{"light":"https://mintcdn.com/contact-button/IEzJIBz0xg-pMM5T/assets/contact-button-logo-blue.svg?fit=max\u0026auto=format\u0026n=IEzJIBz0xg-pMM5T\u0026q=85\u0026s=e977bf528648cb6c541e8d965b89b727","dark":"https://mintcdn.com/contact-button/IEzJIBz0xg-pMM5T/assets/contact-button-logo-white.svg?fit=max\u0026auto=format\u0026n=IEzJIBz0xg-pMM5T\u0026q=85\u0026s=677791adf371fc479066aa6e50da89b9","href":"https://app.contactbutton.com"},"favicon":"https://mintcdn.com/contact-button/plqKUjitvU8FjEe3/assets/contact-button.png?fit=max\u0026auto=format\u0026n=plqKUjitvU8FjEe3\u0026q=85\u0026s=69d1d22b4f12647b87ef9a2c1d09080f","appearance":{"default":"system"},"background":{"color":{"light":"#FFFFFF","dark":"#1E1E2D"}},"navbar":{"links":[{"href":"https://agents.contactbutton.com","label":"Agents"},{"href":"https://learn.contactbutton.com","label":"Learn"},{"href":"https://app.contactbutton.com","label":"Dashboard"}],"primary":{"type":"button","label":"Create an account","href":"https://app.contactbutton.com/register"}},"footer":{"socials":{"x":"https://x.com/contactbutton"}},"seo":{"metatags":{"canonical":"https://docs.contactbutton.com"}},"fonts":{"family":"Inter"},"styling":{"eyebrows":"breadcrumbs","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","mcp"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"contact-button","hasAudioNarration":false,"actualSubdomain":"contact-button","customDomains":["docs.contactbutton.com"],"gitSource":{"type":"github","owner":"letail","repo":"contact-button","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"89b6a4e5-acdb-40c6-ae34-fa258badae18","liveDeploymentHistoryId":"6ae20e86d6a250fd1db9d505","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae20e86d6a250fd1db9d505"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae51b1e68fd2806cf6516b2","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":198},{"language":"default","tag":"Agents","count":27},{"language":"default","tag":"Engagement inbox","count":27},{"language":"default","tag":"Knowledge","count":25},{"language":"default","tag":"Documentation","count":23},{"language":"default","tag":"Public actions","count":19},{"language":"default","tag":"Conversations","count":17},{"language":"default","tag":"Commerce","count":16},{"language":"default","tag":"Build","count":11},{"language":"default","tag":"Telephony","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"cli/install","slug":"/cli/install","pageMetadata":{"title":"Install the CLI","description":"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.","href":"/cli/install"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The Contact Button CLI supports macOS, Linux, and Windows and requires Node.js 20 or later.`}),`\n`,_jsx(Heading,{level:`2`,id:`public-package-status`,children:`Public package status`}),`\n`,_jsxs(_components.p,{children:[`The package name is `,_jsx(_components.code,{children:`@contactbutton/cli`}),`. The repository contains a publish-ready `,_jsx(_components.code,{children:`0.1.0`}),` package, but the npm registry release is a separate release action. Until the package has been published, the following command returns an npm `,_jsx(_components.code,{children:`404`}),` and should not be presented as working:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --global`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @contactbutton/cli`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`After the first release is published, this becomes the canonical installation command. Verify the package name, version, provenance, and repository link on npm before installing it in an agent host or CI runner.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not create an unofficial package with a similar name, install a package suggested only by a model, or use `,_jsx(_components.code,{children:`sudo npm install --global`}),`. Wait for the official package linked from this page.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`contributor-preview`,children:`Contributor preview`}),`\n`,_jsx(_components.p,{children:`Repository contributors can test the package from an authorized checkout:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` contact-button/cli`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` link`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`contactbutton`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --version`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Expected output:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`contactbutton 0.1.0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Remove the linked preview with:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` unlink`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --global`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @contactbutton/cli`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`run-without-linking`,children:`Run without linking`}),`\n`,_jsxs(_components.p,{children:[`From the `,_jsx(_components.code,{children:`cli`}),` directory:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`node`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ./bin/contactbutton.js`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --help`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-package-before-release`,children:`Verify the package before release`}),`\n`,_jsx(_components.p,{children:`Maintainers should run:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --prefix`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cli`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --prefix`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cli`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` check`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --prefix`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cli`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pack:check`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The dry-run package listing must contain only `,_jsx(_components.code,{children:`bin`}),`, `,_jsx(_components.code,{children:`src`}),`, `,_jsx(_components.code,{children:`README.md`}),`, and package metadata. It must not contain API keys, `,_jsx(_components.code,{children:`.env`}),` files, application data, or Contact Button server code.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Install the CLI","description":"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.","href":"/cli/install"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Public package status","slug":"public-package-status","depth":2,"children":[]},{"title":"Contributor preview","slug":"contributor-preview","depth":2,"children":[]},{"title":"Run without linking","slug":"run-without-linking","depth":2,"children":[]},{"title":"Verify the package before release","slug":"verify-the-package-before-release","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"contact-button","siteName":"Contact Button","title":"Install the CLI - Contact Button","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T22:33:10.645Z","originalFileLocation":"cli/install.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Contact Button\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Install the CLI - Contact Button\">\u003cmeta data-mint-head property=\"og:description\" content=\"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Contact Button\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.contactbutton.com/cli/install\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://contact-button.mintlify.app/_mintlify/api/og/v2?division=Contact+Button+CLI\u0026amp;title=Install+the+CLI\u0026amp;description=Install+and+verify+the+Contact+Button+CLI+preview+on+macOS%2C+Linux%2C+or+Windows+with+Node.js+20+or+later.\u0026amp;theme=56b6f0a7991049c81dfc266f\u0026amp;signature=252f29593ab52c66b8d950c9643d0b6a9cd9bfa40ec588f04bc263abd3e07880\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Install the CLI - Contact Button\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://contact-button.mintlify.app/_mintlify/api/og/v2?division=Contact+Button+CLI\u0026amp;title=Install+the+CLI\u0026amp;description=Install+and+verify+the+Contact+Button+CLI+preview+on+macOS%2C+Linux%2C+or+Windows+with+Node.js+20+or+later.\u0026amp;theme=56b6f0a7991049c81dfc266f\u0026amp;signature=252f29593ab52c66b8d950c9643d0b6a9cd9bfa40ec588f04bc263abd3e07880\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/contact-button/qj_MNR2p2anKNWgL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Contact Button\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1D4ED8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.contactbutton.com/cli/install\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/cli/install.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.contactbutton.com/#organization\",\"name\":\"Contact Button\",\"url\":\"https://docs.contactbutton.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/contact-button/IEzJIBz0xg-pMM5T/assets/contact-button-logo-blue.svg?fit=max\u0026auto=format\u0026n=IEzJIBz0xg-pMM5T\u0026q=85\u0026s=e977bf528648cb6c541e8d965b89b727\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.contactbutton.com#website\",\"name\":\"Contact Button\",\"url\":\"https://docs.contactbutton.com\",\"publisher\":{\"@id\":\"https://docs.contactbutton.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.contactbutton.com/cli/install#webpage\",\"url\":\"https://docs.contactbutton.com/cli/install\",\"name\":\"Install the CLI\",\"description\":\"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.\",\"dateModified\":\"2026-10-30T22:33:10.645Z\",\"isPartOf\":{\"@id\":\"https://docs.contactbutton.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.contactbutton.com/cli/install#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.contactbutton.com/cli/install#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Contact Button CLI\",\"item\":\"https://docs.contactbutton.com/cli/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Install the CLI\",\"item\":\"https://docs.contactbutton.com/cli/install\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.contactbutton.com/cli/install#article\",\"headline\":\"Install the CLI\",\"name\":\"Install the CLI\",\"description\":\"Install and verify the Contact Button CLI preview on macOS, Linux, or Windows with Node.js 20 or later.\",\"url\":\"https://docs.contactbutton.com/cli/install\",\"mainEntityOfPage\":{\"@id\":\"https://docs.contactbutton.com/cli/install#webpage\"},\"dateModified\":\"2026-10-30T22:33:10.645Z\",\"publisher\":{\"@id\":\"https://docs.contactbutton.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.contactbutton.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Contact Button\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Contact Button","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","groups":[{"group":"Get started","pages":[{"title":"Contact infrastructure for people and agents","href":""},{"title":"API quickstart","href":"/quickstart"},{"title":"Authentication","href":"/authentication"},{"title":"API-first architecture","href":"/concepts/api-first"}]},{"group":"Contact Button CLI","pages":[{"title":"Contact Button CLI","description":"Use the official Contact Button command-line interface for API exploration, repeatable setup, CI workflows, and coding-agent automation.","href":"/cli/overview"},{"title":"Install the CLI","href":"/cli/install"},{"title":"CLI authentication","description":"Authenticate the Contact Button CLI with a scoped API key while keeping credentials out of prompts, shell history, and logs.","href":"/cli/authentication"},{"title":"CLI command reference","href":"/cli/commands"},{"title":"CLI automation and coding agents","href":"/cli/automation"}]},{"group":"Build","pages":[{"title":"Pages and custom domains","href":"/guides/pages-domains"},{"title":"Buttons, apps, and forms","href":"/guides/buttons-apps-forms"},{"title":"AI and support in your app","href":"/guides/portal-help-widget"},{"title":"Surveys","href":"/guides/surveys"},{"title":"Bookings and callbacks","href":"/guides/booking-callbacks"},{"title":"Contact Button webhooks","href":"/guides/webhooks"},{"title":"Connect Telnyx","href":"/guides/telnyx"},{"title":"Reviews","href":"/guides/reviews"},{"title":"Knowledge lists","href":"/guides/knowledge"},{"title":"Human and agent chat","href":"/guides/chat"},{"title":"Conversations API","href":"/guides/conversations-api"}]},{"group":"Operate","pages":[{"title":"API errors","href":"/reference/errors"},{"title":"Backwards compatibility","href":"/guides/backwards-compatibility"},{"title":"Rollout and rollback","href":"/guides/rollout"}]}]},{"tab":"Agents","icon":"robot","pages":[{"title":"Agents","href":"/agents/overview"}]},{"tab":"API Reference","icon":"square-terminal","pages":[{"title":"API Reference","href":"/api-reference/onboarding/inspect-the-public-api-entry-point"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Install the CLI - Contact Button","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}