{"id":16611040,"url":"https://github.com/lucas-labs/coco-js","last_synced_at":"2025-10-29T18:30:17.173Z","repository":{"id":60515824,"uuid":"543650414","full_name":"lucas-labs/coco-js","owner":"lucas-labs","description":"🥥 coco › an interactive cli for creating conventional commits.","archived":false,"fork":false,"pushed_at":"2022-10-03T02:09:36.000Z","size":1491,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-28T03:12:32.255Z","etag":null,"topics":["cli","client","commit","conventional-commit","conventional-commits","ink","interactive","node","nodejs","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/lucas-labs/coco","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucas-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-30T14:50:53.000Z","updated_at":"2024-09-24T14:46:36.000Z","dependencies_parsed_at":"2022-09-30T18:00:22.435Z","dependency_job_id":null,"html_url":"https://github.com/lucas-labs/coco-js","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucas-labs%2Fcoco-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucas-labs%2Fcoco-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucas-labs%2Fcoco-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucas-labs%2Fcoco-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucas-labs","download_url":"https://codeload.github.com/lucas-labs/coco-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219857398,"owners_count":16556065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","client","commit","conventional-commit","conventional-commits","ink","interactive","node","nodejs","typescript"],"created_at":"2024-10-12T01:34:29.015Z","updated_at":"2025-10-29T18:30:16.665Z","avatar_url":"https://github.com/lucas-labs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]  \n\u003e **DEPRECATED**\n\u003e \n\u003e This package is deprecated as it was ported to **Rust**: http://github.com/lucas-labs/coco\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"./media/coco.svg\" height=\"40\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cstrong\u003e\n🔎 \u003ccode\u003ecoco\u003c/code\u003e is an interactive \u003ci\u003ecommand line interface\u003c/i\u003e for creating \u003ca href=\"https://www.conventionalcommits.org/\"\u003econventional commits.\u003c/a\u003e\n\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"./media/coco-demo.gif\" width=\"100%\"\u003e\u003c/p\u003e\n\n   # `coco` › [![LICENSE_BADGE][LICENSE_BADGE]][LICENSE_LINK] [![NPM_BADGE][NPM_BADGE]][NPM_LINK] [![ISSUES_BADGE][ISSUES_BADGE]][ISSUES_LINK]\n\n## Installation\n\n```bash\nnpm install -g @lucas-labs/coco\n```\n\n## Usage\n\n```bash\n$ coco\n\n# and follow the steps 😊\n```\n\n## Configuration\n\n`coco` can be configured by creating a `coco.yaml`, `coco.yml` or `.cocorc` file in your project's root (per repository config) or in your users home directory (global config). The file should be a valid YAML:\n\n### Options\n#### `types`\nAn array of commit types. Each type should be an object with the following properties: \n * `name` - The name of the type\n * `desc` - The description of the type\n * `emoji` - The emoji to be used for the type if `useEmoji` is set to `true`\n\n```yaml\ntypes:\n  - name: feat\n    desc: A new feature\n    emoji: 🎉\n  - name: fix\n    desc: A bug fix\n    emoji: 🐛\n```\n\n#### `scopes`\nAn array of commit scopes. \n\n```yaml\nscopes:\n  - api\n  - ui\n```\n\n#### `useEmoji`\nWhether to use emojis for the commit type. If set to `true`, the `emoji` property of the type will be used to create the commit message. \n\n```yaml \nuseEmoji: true\n```\nProvided useEmoji is `true`, an example of a commit message would be: `feat(api): ✨ add new endpoint`\n\n#### `askScope`\nWhether to ask for the scope of the commit. IF set to `true`, the user will be prompted to enter or select a scope (depending if scope list was provided by user config or not). If set to `false`, the scope will be omitted from the commit message and the cli won't ask for it.\n\n```yaml\naskScope: true\n```\n\n#### `askBody`\nWhether to ask for the body of the commit. If set to `true`, the user will be prompted to enter the body of the commit. If set to `false`, the body will be omitted from the commit message and the cli won't ask for it.\n\n```yaml\naskBody: true\n```\n\n#### `askFooter`\nWhether to ask for the footer of the commit. If set to `true`, the user will be prompted to enter the footer of the commit. If set to `false`, the footer will be omitted from the commit message and the cli won't ask for it.\n\n```yaml\naskFooter: true\n```\n\n#### `askBreakingChange`\nWhether to ask for the breaking change of the commit. If set to `true`, the user will be prompted to enter the breaking change of the commit. If set to `false`, the breaking change will be omitted from the commit message and the cli won't ask for it.\n\n```yaml\naskBreakingChange: true\n```\n\n\n### Example\n```yaml\ntypes:\n  - name: feat\n    desc: A new feature\n    emoji: 🎉\n  - name: fix\n    desc: A bug fix\n    emoji: 🐛\n\nscopes:\n   - api\n   - ui\n\nuseEmoji: true\naskFooter: false\n```\n\n## License\nMIT © 2022 [Lucas Labs](https://lucaslabs.tech)\n\n  [LICENSE_LINK]:    https://github.com/lucas-labs/coco/blob/master/LICENSE.md\n  [LICENSE_BADGE]:   https://img.shields.io/github/license/lucas-labs/coco?color=005af0\u0026style=flat-square\n\n  [NPM_LINK]:        https://www.npmjs.com/package/@lucas-labs/coco\n  [NPM_BADGE]:       https://img.shields.io/npm/v/@lucas-labs/coco?color=d400b6\u0026style=flat-square\n  \n  [ISSUES_LINK]:     https://github.com/lucas-labs/coco/issues\n  [ISSUES_BADGE]:    https://img.shields.io/github/issues-raw/lucas-labs/coco?color=1ed760\u0026style=flat-square\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucas-labs%2Fcoco-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucas-labs%2Fcoco-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucas-labs%2Fcoco-js/lists"}