Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.
comet init is the setup and onboarding entry for Comet.
It detects the current project environment, installs required Skills and runtime assets, and writes the default workflow used by /comet.
Interactive initialization supports Native, Classic, or both at project and global scope. At project scope, non-interactive initialization chooses the default workflow in this order:
Read valid .comet/config.yaml first. It is the source of truth.
If --workflow native|classic|both is provided, honor the explicit choice. Under both, /comet defaults to Native.
If workflow config is missing but Classic .comet.yaml state or legacy Ambient Resume evidence exists, keep Classic.
In all other cases, default to Native. Existing code, openspec/, or docs/superpowers/ does not change that default.
Native initialization installs Comet-owned Skills and runtime, one shared workflow Rule, and one Hook Router where the platform supports Hooks. It creates:
.comet/config.yaml<artifact-root>/comet/
It does not install OpenSpec, Superpowers, or CodeGraph and does not create Classic/OpenSpec changes or docs/superpowers/. The shared Rule and Router use .comet/current-change.json to send each write to one workflow Guard, never both Native and Classic. Classic initialization preserves its complete dependency set and phase governance.Comet writes and activates .comet/config.yaml only after required assets succeed on every selected platform and any existing /comet entry is compatible with the bundled routing contract. If an incompatible custom /comet entry exists, initialization preserves it and reports the run as incomplete. Re-run comet init --workflow native --overwrite only when you intend to replace that custom entry.
comet init --workflow native --root docscomet init --workflow classiccomet init --workflow bothcomet init --scope global --workflow nativecomet init --scope global --workflow classiccomet init --scope global --workflow both
At global scope, --workflow selects which capabilities are installed globally. On the first explicit /comet invocation in an unconfigured project, Comet snapshots those defaults into the project’s .comet/config.yaml; later global-default changes do not rewrite an activated project. Use project initialization when you want project-local Skill, Rule, and Hook copies or explicit overrides. Non-interactive global initialization keeps Classic as the default when --workflow is omitted. --root remains valid only for project-scope Native initialization.
The value may be a Comet-supported platform ID or a custom platform defined by the project. With the option, initialization touches only that target. Without it, Comet continues to use automatic platform detection and the existing fallback rules.Non-interactive project initialization can also use --codegraph init to create or refresh the CodeGraph index, or --codegraph skip to skip it explicitly. Ordinary diagnostics never mutate the index. Run comet doctor first when you need to inspect its current state.
Starting in 0.4.0-beta.4, a successful project-scope installation is recorded in a user-level project registry. The registry stores only the project location and installed platforms needed for later updates and uninstallation. It neither copies project content nor uploads usage data.After registration, interactive comet update and comet uninstall can offer the current project or every registered project. --json and explicit --current-project remain limited to the current project, and comet uninstall --force does too. Batch operations require an explicit --all-projects. Automation should pass one of these scope options instead of relying on terminal detection.
Classic or both initialization asks for an installation mode after platform selection, including at global scope. Native-only initialization always uses Copy. Project-scope Native avoids .comet/skills/; Native change state stays under <artifact-root>/comet/, while shared project configuration and selection live under .comet/. Symlink mode was added in 0.4.0-beta.1:
Copy: copy an independent set of Skill files to each platform.
Symlink: create links in each platform directory that point to the shared .comet/skills/ store, saving space and making one update apply everywhere.
If a platform already has its own skills/ directory, Comet preserves it and adds links only for Comet-managed Skills. Existing local and third-party Skills are not deleted or replaced when you choose Symlink.See Supported platforms · Installation mode for details and guidance.
OpenSpec CLI is a cross-project tool used by Classic. Even for project-scope Classic initialization, Comet installs or upgrades OpenSpec CLI globally, so this dependency does not create a project node_modules/ directory. Native neither checks nor installs it.
The component already exists and --overwrite was not specified
failed
One or more files could not be copied
Since 0.4.0-beta.1,
a partially failed installation is no longer reported as success. When any file
copy fails on a platform, that platform is marked failed with a failure count.
Missing comet-hook-guard.mjs breaks Classic phase checks; a missing Native entry
point or runtime likewise prevents project default configuration from being written. Re-run
comet init or comet update to install the missing files.
Last modified on September 4, 2026
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Comet Docs","description":"Comet Docs: Agent Skill Harness Phase-Guarded Automation From Idea To Archive","colors":{"primary":"#0063F8","light":"#0063F8","dark":"#0063F8"},"logo":{"light":"https://mintcdn.com/comet-bb5f5294/Xj3ZPGe1ViheLZzP/logo/logo-light-v2.png?fit=max\u0026auto=format\u0026n=Xj3ZPGe1ViheLZzP\u0026q=85\u0026s=76b3e8ed7c70589aec871ad45d4c0a48","dark":"https://mintcdn.com/comet-bb5f5294/Xj3ZPGe1ViheLZzP/logo/logo-dark-v2.png?fit=max\u0026auto=format\u0026n=Xj3ZPGe1ViheLZzP\u0026q=85\u0026s=b60cce62802d3fe0f2640cd794fe2dae","href":"https://docs.comet.rpamis.com/"},"favicon":"https://mintcdn.com/comet-bb5f5294/anG611vGlISWXx6u/logo/favicon.png?fit=max\u0026auto=format\u0026n=anG611vGlISWXx6u\u0026q=85\u0026s=5cc1f88cea1d61472b3594828f256c5a","appearance":{"default":"light","strict":true},"seo":{"metatags":{"og:site_name":"Comet Docs","og:skill":"Comet Skill","og:eval":"Comet Eval","og:agent":"Comet","og:skill_creator":"Comet Any"},"indexing":"all"},"fonts":{"family":"Source Serif 4"},"icons":{"library":"fontawesome"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"languages":[{"language":"zh","default":true,"footer":{"socials":{"x":"https://x.com/rpamis","github":"https://github.com/rpamis/comet"}},"navbar":{"links":[{"href":"/zh/home","label":"首页"},{"href":"/zh/overview","label":"文档"},{"href":"/zh/changelog","label":"Changelog"},{"href":"/zh/tech-blog","label":"技术博客"},{"href":"/zh/sponsor","label":"赞助"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/rpamis/comet"}},"href":"zh/home"},{"language":"en","footer":{"socials":{"x":"https://x.com/rpamis","github":"https://github.com/rpamis/comet"}},"navbar":{"links":[{"href":"/en/home","label":"Home"},{"href":"/en/overview","label":"Docs"},{"href":"/en/changelog","label":"Changelog"},{"href":"/en/tech-blog","label":"Tech blog"},{"href":"/en/sponsor","label":"Sponsor"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/rpamis/comet"}},"href":"en/home"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"comet-bb5f5294","hasAudioNarration":false,"actualSubdomain":"comet-bb5f5294","customDomains":["docs.comet.rpamis.com"],"gitSource":{"type":"github","owner":"rpamis","repo":"comet-website-docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"e6ae7d55-716d-408d-a257-19ff7c69fce3","liveDeploymentHistoryId":"6aeb43b5cc761ce6b05b5097","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeb43b5cc761ce6b05b5097"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aeb43b5cc761ce6b05b5097","clientVersion":"0.0.4064","searchFilterCounts":[{"language":"en","tag":"Native mode","count":36},{"language":"zh","tag":"Native 模式","count":36},{"language":"en","tag":"Classic Spec mode","count":25},{"language":"zh","tag":"经典Spec模式","count":24},{"language":"en","tag":"CLI","count":22},{"language":"zh","tag":"CLI","count":22},{"language":"en","tag":"SDK","count":18},{"language":"zh","tag":"SDK","count":18},{"language":"en","tag":"Evaluate any Skill","count":16},{"language":"zh","tag":"评估任意Skill","count":15},{"language":"en","tag":"Advanced","count":14},{"language":"en","tag":"Get started","count":11},{"language":"en","tag":"Compose any Skill","count":10},{"language":"zh","tag":"组合任意 Skill","count":10},{"language":"en","tag":"Understand Comet Classic","count":9},{"language":"zh","tag":"理解 Comet Classic","count":9},{"language":"en","tag":"FAQ","count":8},{"language":"zh","tag":"常见问题","count":8},{"language":"zh","tag":"安装和健康检查","count":8},{"language":"zh","tag":"入门","count":8}]},"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":"rbac-expansion","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":"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":"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},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","href":"/_mintlify/custom/comet-bb5f5294/de39816a970506be/custom.css"}],"page":{"pagePath":"en/cli/init","slug":"/en/cli/init","pageMetadata":{"title":"comet init","description":"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.","href":"/en/cli/init"},"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: \"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.\"\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={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`comet init`}),` is the setup and onboarding entry for Comet.\nIt detects the current project environment, installs required Skills and runtime assets, and writes the default workflow used by `,_jsx(_components.code,{children:`/comet`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`basic-usage`,children:`Basic usage`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,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:` your-project`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Common options:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--yes`})}),_jsx(_components.td,{children:`Run non-interactively, installing missing components and skipping existing ones`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--scope \u003cscope>`})}),_jsxs(_components.td,{children:[`Installation scope: `,_jsx(_components.code,{children:`project`}),` or `,_jsx(_components.code,{children:`global`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--language \u003clang>`})}),_jsxs(_components.td,{children:[`Skill language: `,_jsx(_components.code,{children:`en`}),` or `,_jsx(_components.code,{children:`zh`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--workflow \u003cmode>`})}),_jsxs(_components.td,{children:[`Enable `,_jsx(_components.code,{children:`native`}),`, `,_jsx(_components.code,{children:`classic`}),`, or `,_jsx(_components.code,{children:`both`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--platform \u003cid>`})}),_jsx(_components.td,{children:`Initialize only one supported or project-defined custom platform`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--codegraph \u003cop>`})}),_jsxs(_components.td,{children:[`Non-interactive CodeGraph choice: `,_jsx(_components.code,{children:`init`}),` or `,_jsx(_components.code,{children:`skip`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--root \u003cpath>`})}),_jsxs(_components.td,{children:[`Native artifact root, such as `,_jsx(_components.code,{children:`docs`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--skip-existing`})}),_jsx(_components.td,{children:`Skip existing components`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--overwrite`})}),_jsx(_components.td,{children:`Overwrite manifest-managed files`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--json`})}),_jsx(_components.td,{children:`Output JSON`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`native-and-classic-initialization`,children:`Native and Classic initialization`}),`\n`,_jsx(_components.p,{children:`Interactive initialization supports Native, Classic, or both at project and global scope. At project scope, non-interactive initialization chooses the default workflow in this order:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Read valid `,_jsx(_components.code,{children:`.comet/config.yaml`}),` first. It is the source of truth.`]}),`\n`,_jsxs(_components.li,{children:[`If `,_jsx(_components.code,{children:`--workflow native|classic|both`}),` is provided, honor the explicit choice. Under `,_jsx(_components.code,{children:`both`}),`, `,_jsx(_components.code,{children:`/comet`}),` defaults to Native.`]}),`\n`,_jsxs(_components.li,{children:[`If workflow config is missing but Classic `,_jsx(_components.code,{children:`.comet.yaml`}),` state or legacy Ambient Resume evidence exists, keep Classic.`]}),`\n`,_jsxs(_components.li,{children:[`In all other cases, default to Native. Existing code, `,_jsx(_components.code,{children:`openspec/`}),`, or `,_jsx(_components.code,{children:`docs/superpowers/`}),` does not change that default.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Native initialization installs Comet-owned Skills and runtime, one shared workflow Rule, and one Hook Router where the platform supports Hooks. It creates:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`.comet/config.yaml`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\u003cartifact-root>/comet/`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`It does not install OpenSpec, Superpowers, or CodeGraph and does not create Classic/OpenSpec changes or `,_jsx(_components.code,{children:`docs/superpowers/`}),`. The shared Rule and Router use `,_jsx(_components.code,{children:`.comet/current-change.json`}),` to send each write to one workflow Guard, never both Native and Classic. Classic initialization preserves its complete dependency set and phase governance.`]}),`\n`,_jsxs(_components.p,{children:[`Comet writes and activates `,_jsx(_components.code,{children:`.comet/config.yaml`}),` only after required assets succeed on `,_jsx(_components.strong,{children:`every selected platform`}),` and any existing `,_jsx(_components.code,{children:`/comet`}),` entry is compatible with the bundled routing contract. If an incompatible custom `,_jsx(_components.code,{children:`/comet`}),` entry exists, initialization preserves it and reports the run as incomplete. Re-run `,_jsx(_components.code,{children:`comet init --workflow native --overwrite`}),` only when you intend to replace that custom entry.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,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:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` native`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --root`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` docs`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` classic`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` both`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --scope`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` global`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` native`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --scope`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` global`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` classic`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --scope`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` global`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` both`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`At global scope, `,_jsx(_components.code,{children:`--workflow`}),` selects which capabilities are installed globally. On the first explicit `,_jsx(_components.code,{children:`/comet`}),` invocation in an unconfigured project, Comet snapshots those defaults into the project’s `,_jsx(_components.code,{children:`.comet/config.yaml`}),`; later global-default changes do not rewrite an activated project. Use project initialization when you want project-local Skill, Rule, and Hook copies or explicit overrides. Non-interactive global initialization keeps Classic as the default when `,_jsx(_components.code,{children:`--workflow`}),` is omitted. `,_jsx(_components.code,{children:`--root`}),` remains valid only for project-scope Native initialization.`]}),`\n`,_jsx(Heading,{level:`2`,id:`target-one-platform`,children:`Target one platform`}),`\n`,_jsxs(_components.p,{children:[`When a project defines several platforms but this run should install or repair only one, pass `,_jsx(_components.code,{children:`--platform`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --platform`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` claude`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` native`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --platform`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` my-team-platform`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workflow`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` classic`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The value may be a Comet-supported platform ID or a custom platform defined by the project. With the option, initialization touches only that target. Without it, Comet continues to use automatic platform detection and the existing fallback rules.`}),`\n`,_jsxs(_components.p,{children:[`Non-interactive project initialization can also use `,_jsx(_components.code,{children:`--codegraph init`}),` to create or refresh the CodeGraph index, or `,_jsx(_components.code,{children:`--codegraph skip`}),` to skip it explicitly. Ordinary diagnostics never mutate the index. Run `,_jsx(_components.code,{children:`comet doctor`}),` first when you need to inspect its current state.`]}),`\n`,_jsx(Heading,{level:`2`,id:`project-installation-registry`,children:`Project installation registry`}),`\n`,_jsx(_components.p,{children:`Starting in 0.4.0-beta.4, a successful project-scope installation is recorded in a user-level project registry. The registry stores only the project location and installed platforms needed for later updates and uninstallation. It neither copies project content nor uploads usage data.`}),`\n`,_jsxs(_components.p,{children:[`After registration, interactive `,_jsx(_components.code,{children:`comet update`}),` and `,_jsx(_components.code,{children:`comet uninstall`}),` can offer the current project or every registered project. `,_jsx(_components.code,{children:`--json`}),` and explicit `,_jsx(_components.code,{children:`--current-project`}),` remain limited to the current project, and `,_jsx(_components.code,{children:`comet uninstall --force`}),` does too. Batch operations require an explicit `,_jsx(_components.code,{children:`--all-projects`}),`. Automation should pass one of these scope options instead of relying on terminal detection.`]}),`\n`,_jsx(Heading,{level:`2`,id:`installation-mode-copy-or-symlink`,children:`Installation mode: copy or symlink`}),`\n`,_jsxs(_components.p,{children:[`Classic or both initialization asks for an `,_jsx(_components.strong,{children:`installation mode`}),` after platform selection, including at global scope. Native-only initialization always uses Copy. Project-scope Native avoids `,_jsx(_components.code,{children:`.comet/skills/`}),`; Native change state stays under `,_jsx(_components.code,{children:`\u003cartifact-root>/comet/`}),`, while shared project configuration and selection live under `,_jsx(_components.code,{children:`.comet/`}),`. Symlink mode was added in 0.4.0-beta.1:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Copy`}),`: copy an independent set of Skill files to each platform.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Symlink`}),`: create links in each platform directory that point to the shared `,_jsx(_components.code,{children:`.comet/skills/`}),` store, saving space and making one update apply everywhere.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If a platform already has its own `,_jsx(_components.code,{children:`skills/`}),` directory, Comet preserves it and adds links only for Comet-managed Skills. Existing local and third-party Skills are not deleted or replaced when you choose Symlink.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/en/platforms#installation-mode-copy-vs-symbolic-link`,children:`Supported platforms · Installation mode`}),` for details and guidance.`]}),`\n`,_jsx(Heading,{level:`2`,id:`shared-project-configuration-merge`,children:`Shared project configuration merge`}),`\n`,_jsxs(_components.p,{children:[`Native and Classic now share `,_jsx(_components.code,{children:`.comet/config.yaml`}),`. Initialization merges managed fields for the enabled workflows:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`preserves existing values such as `,_jsx(_components.code,{children:`native.artifact_root`}),` and `,_jsx(_components.code,{children:`classic.review_mode`}),`;`]}),`\n`,_jsx(_components.li,{children:`adds defaults for missing managed fields;`}),`\n`,_jsx(_components.li,{children:`refreshes comments to match the current version;`}),`\n`,_jsx(_components.li,{children:`preserves extra custom fields;`}),`\n`,_jsxs(_components.li,{children:[`keeps shared `,_jsx(_components.code,{children:`default_workflow`}),`, `,_jsx(_components.code,{children:`workflows`}),`, and `,_jsx(_components.code,{children:`ambient_resume`}),` semantics separate from `,_jsx(_components.code,{children:`native.*`}),` and `,_jsx(_components.code,{children:`classic.*`}),` settings;`]}),`\n`,_jsx(_components.li,{children:`fails closed when workflow configuration cannot be parsed safely instead of guessing defaults and overwriting it.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The terminal reports `,_jsx(_components.code,{children:`Project config merged (.comet/config.yaml)`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`openspec-cli-installation-scope`,children:`OpenSpec CLI installation scope`}),`\n`,_jsxs(_components.p,{children:[`OpenSpec CLI is a cross-project tool used by Classic. Even for project-scope Classic initialization, Comet installs or upgrades OpenSpec CLI globally, so this dependency does not create a project `,_jsx(_components.code,{children:`node_modules/`}),` directory. Native neither checks nor installs it.`]}),`\n`,_jsx(Heading,{level:`2`,id:`check-after-initialization`,children:`Check after initialization`}),`\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:`comet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` doctor`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`If platform directories, Skill files, or scripts are missing, repair them before starting `,_jsx(_components.code,{children:`/comet`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`reading-the-installation-summary`,children:`Reading the installation summary`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`comet init`}),` and `,_jsx(_components.code,{children:`comet update`}),` report each component’s installation status per platform. Skill and script copies look like this:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,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:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Comet -> claude: installed (12 files) -> .claude/skills/`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Comet -> claude: skipped (alreadyExists)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Comet -> opencode: failed (12 files, 1 failed) -> .opencode/skills/comet`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`installed`})}),_jsx(_components.td,{children:`Every file was copied successfully`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`skipped`})}),_jsxs(_components.td,{children:[`The component already exists and `,_jsx(_components.code,{children:`--overwrite`}),` was not specified`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`failed`})}),_jsx(_components.td,{children:`One or more files could not be copied`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Since 0.4.0-beta.1,`,` `,`\n`,_jsx(`strong`,{children:`a partially failed installation is no longer reported as success`}),`. When any file\ncopy fails on a platform, that platform is marked `,_jsx(`code`,{children:`failed`}),` with a failure count.\nMissing `,_jsx(`code`,{children:`comet-hook-guard.mjs`}),` breaks Classic phase checks; a missing Native entry\npoint or runtime likewise prevents project default configuration from being written. Re-run`,` `,`\n`,_jsx(`code`,{children:`comet init`}),` or `,_jsx(`code`,{children:`comet update`}),` to install the missing files.`]})})]})}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":"comet init","description":"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.","href":"/en/cli/init"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Basic usage","slug":"basic-usage","depth":2,"children":[]},{"title":"Native and Classic initialization","slug":"native-and-classic-initialization","depth":2,"children":[]},{"title":"Target one platform","slug":"target-one-platform","depth":2,"children":[]},{"title":"Project installation registry","slug":"project-installation-registry","depth":2,"children":[]},{"title":"Installation mode: copy or symlink","slug":"installation-mode-copy-or-symlink","depth":2,"children":[]},{"title":"Shared project configuration merge","slug":"shared-project-configuration-merge","depth":2,"children":[]},{"title":"OpenSpec CLI installation scope","slug":"openspec-cli-installation-scope","depth":2,"children":[]},{"title":"Check after initialization","slug":"check-after-initialization","depth":2,"children":[]},{"title":"Reading the installation summary","slug":"reading-the-installation-summary","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/comet-bb5f5294/f0132c0024de36f6/homepage-fonts.js"],"subdomain":"comet-bb5f5294","siteName":"Comet Docs","title":"comet init - Comet Docs","navMaps":{"firstHrefInVersion":{"0.5.1":{"href":"/en/cli/init","matchLevel":0}},"firstHrefInLanguage":{"zh":{"href":"/zh/cli/init","matchLevel":1},"en":{"href":"/en/cli/init","matchLevel":0}}},"lastModified":"2026-09-04T12:56:45.217Z","gitLastModified":"2026-09-04T09:45:14.000Z","originalFileLocation":"en/cli/init.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Comet Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/comet-bb5f5294/sj629fg8tNOIueNI/_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/comet-bb5f5294/sj629fg8tNOIueNI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/comet-bb5f5294/sj629fg8tNOIueNI/_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/comet-bb5f5294/sj629fg8tNOIueNI/_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/comet-bb5f5294/sj629fg8tNOIueNI/_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/comet-bb5f5294/sj629fg8tNOIueNI/_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/comet-bb5f5294/sj629fg8tNOIueNI/_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/comet-bb5f5294/sj629fg8tNOIueNI/_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/comet-bb5f5294/sj629fg8tNOIueNI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"comet init - Comet Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Comet Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.comet.rpamis.com/en/cli/init\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://comet-bb5f5294.mintlify.app/_mintlify/api/og/v2?division=Install+and+health+checks\u0026amp;title=comet+init\u0026amp;description=Initialize+a+project+or+global+Comet+environment%2C+choose+Native+or+Classic%2C+and+install+the+corresponding+capabilities.\u0026amp;theme=6192ba6a94e856348b304622\u0026amp;signature=b12e982eb5a363d2db8487186c4c6ec19e7a71da4f07c76e73fa6a0a6df4bb0d\">\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=\"comet init - Comet Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://comet-bb5f5294.mintlify.app/_mintlify/api/og/v2?division=Install+and+health+checks\u0026amp;title=comet+init\u0026amp;description=Initialize+a+project+or+global+Comet+environment%2C+choose+Native+or+Classic%2C+and+install+the+corresponding+capabilities.\u0026amp;theme=6192ba6a94e856348b304622\u0026amp;signature=b12e982eb5a363d2db8487186c4c6ec19e7a71da4f07c76e73fa6a0a6df4bb0d\">\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/comet-bb5f5294/sj629fg8tNOIueNI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Comet Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0063F8\">\u003cmeta data-mint-head name=\"og:skill\" content=\"Comet Skill\">\u003cmeta data-mint-head name=\"og:eval\" content=\"Comet Eval\">\u003cmeta data-mint-head name=\"og:agent\" content=\"Comet\">\u003cmeta data-mint-head name=\"og:skill_creator\" content=\"Comet Any\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.comet.rpamis.com/en/cli/init\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/cli/init.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.comet.rpamis.com/en/cli/init\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.comet.rpamis.com/zh/cli/init\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.comet.rpamis.com/zh/cli/init\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.comet.rpamis.com/#organization\",\"name\":\"Comet Docs\",\"url\":\"https://docs.comet.rpamis.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/comet-bb5f5294/Xj3ZPGe1ViheLZzP/logo/logo-light-v2.png?fit=max\u0026auto=format\u0026n=Xj3ZPGe1ViheLZzP\u0026q=85\u0026s=76b3e8ed7c70589aec871ad45d4c0a48\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.comet.rpamis.com#website\",\"name\":\"Comet Docs\",\"url\":\"https://docs.comet.rpamis.com\",\"publisher\":{\"@id\":\"https://docs.comet.rpamis.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.comet.rpamis.com/en/cli/init#webpage\",\"url\":\"https://docs.comet.rpamis.com/en/cli/init\",\"name\":\"comet init\",\"description\":\"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.\",\"dateModified\":\"2026-09-04T09:45:14.000Z\",\"isPartOf\":{\"@id\":\"https://docs.comet.rpamis.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.comet.rpamis.com/en/cli/init#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.comet.rpamis.com/en/cli/init#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Comet Docs\",\"item\":\"https://docs.comet.rpamis.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"comet init\",\"item\":\"https://docs.comet.rpamis.com/en/cli/init\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.comet.rpamis.com/en/cli/init#article\",\"headline\":\"comet init\",\"name\":\"comet init\",\"description\":\"Initialize a project or global Comet environment, choose Native or Classic, and install the corresponding capabilities.\",\"url\":\"https://docs.comet.rpamis.com/en/cli/init\",\"mainEntityOfPage\":{\"@id\":\"https://docs.comet.rpamis.com/en/cli/init#webpage\"},\"dateModified\":\"2026-09-04T09:45:14.000Z\",\"publisher\":{\"@id\":\"https://docs.comet.rpamis.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.comet.rpamis.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Comet Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Comet Docs","nav":{"global":null,"languages":[{"language":"zh","default":true,"footer":{"socials":{"x":"https://x.com/rpamis","github":"https://github.com/rpamis/comet"}},"navbar":{"links":[{"href":"/zh/home","label":"首页"},{"href":"/zh/overview","label":"文档"},{"href":"/zh/changelog","label":"Changelog"},{"href":"/zh/tech-blog","label":"技术博客"},{"href":"/zh/sponsor","label":"赞助"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/rpamis/comet"}},"pages":[{"title":"zh","href":"/zh/cli/init"}]},{"language":"en","footer":{"socials":{"x":"https://x.com/rpamis","github":"https://github.com/rpamis/comet"}},"navbar":{"links":[{"href":"/en/home","label":"Home"},{"href":"/en/overview","label":"Docs"},{"href":"/en/changelog","label":"Changelog"},{"href":"/en/tech-blog","label":"Tech blog"},{"href":"/en/sponsor","label":"Sponsor"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/rpamis/comet"}},"versions":[{"version":"0.5.1","tabs":[{"tab":"Native mode","icon":"meteor","pages":[{"title":"Native mode","href":"/en/overview"}]},{"tab":"Classic Spec mode","icon":"signature","pages":[{"title":"Classic Spec mode","href":"/en/concepts/workflow"}]},{"tab":"Compose any Skill","icon":"wand-magic-sparkles","pages":[{"title":"Compose any Skill","href":"/en/skill-creator/getting-started"}]},{"tab":"Evaluate any Skill","icon":"vial-circle-check","pages":[{"title":"Evaluate any Skill","href":"/en/eval/quickstart"}]},{"tab":"Plugin hub","icon":"puzzle-piece","pages":[{"title":"Plugin hub","href":"/en/plugins/agent-learning-loop"}]},{"tab":"CLI","icon":"terminal","groups":[{"group":"Install and health checks","pages":[{"title":"comet init","href":"/en/cli/init"},{"title":"comet status","sidebarTitle":"comet status","description":"View the current state of Native, Classic, and plain OpenSpec changes, including the next command to run.","href":"/en/cli/status"},{"title":"comet resume-probe (recovery probe)","href":"/en/cli/resume-probe"},{"title":"Comet Dashboard","href":"/en/dashboard/overview"},{"title":"comet dashboard","href":"/en/cli/dashboard"},{"title":"comet doctor","href":"/en/cli/doctor"},{"title":"comet update","href":"/en/cli/update"},{"title":"comet uninstall","href":"/en/cli/uninstall"}]},{"group":"SDK applications","pages":[{"title":"comet creator","href":"/en/cli/creator"},{"title":"comet application","href":"/en/cli/application"},{"title":"comet runtime","href":"/en/cli/runtime"}]},{"group":"Skills, evals, and publishing","pages":[{"title":"comet skill","href":"/en/cli/skill"},{"title":"comet eval","href":"/en/cli/eval"},{"title":"comet publish","href":"/en/cli/publish"},{"title":"comet bundle","href":"/en/cli/bundle"}]},{"group":"Core scripts","pages":[{"title":"Classic command overview","href":"/en/scripts/overview"},{"title":"Native command overview","href":"/en/scripts/comet-native"},{"title":"comet guard","href":"/en/scripts/comet-guard"},{"title":"comet state","href":"/en/scripts/comet-state"},{"title":"comet handoff","href":"/en/scripts/comet-handoff"},{"title":"comet archive","href":"/en/scripts/comet-archive"}]}]},{"tab":"SDK","icon":"layer-group","pages":[{"title":"SDK","href":"/en/sdk/overview"}]},{"tab":"FAQ","icon":"circle-question","pages":[{"title":"FAQ","href":"/en/guides/install-and-update"}]}]}]}]},"basePath":"","title":"comet init - Comet Docs","buildId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","deploymentId":"dpl_2gSLkbMoF5kkLsBqYzq9KWtDyJRo","dynamics":[],"chunks":[]}