{"_id":"@capacitor-mlkit/image-labeling","_rev":"3-a90507ae5e222afe81454bf57f735343","name":"@capacitor-mlkit/image-labeling","dist-tags":{"latest":"8.2.1"},"versions":{"8.1.0":{"name":"@capacitor-mlkit/image-labeling","version":"8.1.0","keywords":["capacitor","plugin","native","capacitor-plugin","image labeling","image labeler","labeling","mlkit"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"Apache-2.0","_id":"@capacitor-mlkit/image-labeling@8.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/mlkit/image-labeling/","bugs":{"url":"https://github.com/capawesome-team/capacitor-mlkit/issues"},"dist":{"shasum":"bc6baae0c03d6a81618568beba154311c6774a16","tarball":"https://registry.npmjs.org/@capacitor-mlkit/image-labeling/-/image-labeling-8.1.0.tgz","fileCount":37,"integrity":"sha512-Ig0a+FuFanD1a/pf04cjFk4qK4dJj/LPP4QQuVrVxFEBajapSBOEOTUCrbqWtiYXFBFTItmVN5yd7SRQkEkD+g==","signatures":[{"sig":"MEUCIGrL1mA+fyJm25r2W1pDNT6rAg8XsqsOK4DMsK1AbiCmAiEA0u8X+19hYnSlSM+RYtbRZeEOZT5oceaSC9HbFm9FTIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54949},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"6557f01f9f882afd5a13dff597f7635009585822","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ImageLabelingPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd .."},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-mlkit.git","type":"git"},"_npmVersion":"11.13.0","description":"Capacitor plugin for ML Kit Image Labeling on Android and iOS.","directories":{},"_nodeVersion":"24.16.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/image-labeling_8.1.0_1783756953710_0.8461282362845655","host":"s3://npm-registry-packages-npm-production"}},"8.2.0":{"name":"@capacitor-mlkit/image-labeling","version":"8.2.0","keywords":["capacitor","plugin","native","capacitor-plugin","image labeling","image labeler","labeling","mlkit"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"Apache-2.0","_id":"@capacitor-mlkit/image-labeling@8.2.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/mlkit/image-labeling/","bugs":{"url":"https://github.com/capawesome-team/capacitor-mlkit/issues"},"dist":{"shasum":"b61535be3c60b75303544750ae6a3e9b832882d0","tarball":"https://registry.npmjs.org/@capacitor-mlkit/image-labeling/-/image-labeling-8.2.0.tgz","fileCount":37,"integrity":"sha512-DlfhX9DofSlYnVzsDX6+uTMKgKsYHlTil1C+stRi7oWpJGCN3/I/AG1CZ/JcqIyId5vqfYug+pt+0gbC5GlxTQ==","signatures":[{"sig":"MEYCIQDgck7uchx1Jc2Mm5OKvy0c7vwvzJzwQCPBwyz9f2rI3wIhAPyYp6eFEBts3mIFxl+kmumUZchievu5/dIiyiV1ZVCi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capacitor-mlkit%2fimage-labeling@8.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54958},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"b960e3339eb497476360d5a6b24bb993f3449ba8","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ImageLabelingPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5ed4580-59a6-4881-b509-55396cef3498"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-mlkit.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin for ML Kit Image Labeling on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/image-labeling_8.2.0_1784269870482_0.6530611058536844","host":"s3://npm-registry-packages-npm-production"}},"8.2.1":{"name":"@capacitor-mlkit/image-labeling","version":"8.2.1","description":"Capacitor plugin for ML Kit Image Labeling on Android and iOS.","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-mlkit.git"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-mlkit/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/capawesome-team/"},{"type":"opencollective","url":"https://opencollective.com/capawesome"}],"keywords":["capacitor","plugin","native","capacitor-plugin","image labeling","image labeler","labeling","mlkit"],"scripts":{"verify":"npm run verify:ios && npm run verify:android && npm run verify:web","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:android":"cd android && ./gradlew clean build test && cd ..","verify:web":"npm run build","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","eslint":"eslint . --ext ts","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","docgen":"docgen --api ImageLabelingPlugin --output-readme README.md --output-json dist/docs.json","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","ios:pod:install":"cd ios && pod install --repo-update && cd ..","prepublishOnly":"npm run build"},"devDependencies":{"@capacitor/android":"8.0.0","@capacitor/cli":"8.5.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/ios":"8.0.0","@ionic/eslint-config":"0.4.0","eslint":"8.57.0","prettier-plugin-java":"2.9.7","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"publishConfig":{"access":"public"},"homepage":"https://capawesome.io/docs/sdks/capacitor/mlkit/image-labeling/","gitHead":"0fcd1977cfb70d9c39d618680045cf01434aebf2","_id":"@capacitor-mlkit/image-labeling@8.2.1","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-Pb0ukxGozfkUsOGMl2XxCeDSWjCAv/DaK6YoCdXGTaKvq8zanXX1jaev7wVwkLwO7bJPqCRSwkFjpTs4cVIJCQ==","shasum":"5c18818f4c34ed01f2b60e9c5d7a7a013b53d64f","tarball":"https://registry.npmjs.org/@capacitor-mlkit/image-labeling/-/image-labeling-8.2.1.tgz","fileCount":37,"unpackedSize":55021,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capacitor-mlkit%2fimage-labeling@8.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBAC8qvoTKG+zgZoSt52vvFkocB+oC1ui7/Mid+YEq4bAiEArOXMIe9fNSRdUd79iT2d9MUsM0e63DuDSaho0jOg8t8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5ed4580-59a6-4881-b509-55396cef3498"}},"directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/image-labeling_8.2.1_1789015850765_0.9096336107337557"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-11T08:02:33.522Z","modified":"2026-09-10T04:50:51.256Z","8.1.0":"2026-07-11T08:02:33.840Z","8.2.0":"2026-07-17T06:31:10.623Z","8.2.1":"2026-09-10T04:50:50.919Z"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-mlkit/issues"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"Apache-2.0","homepage":"https://capawesome.io/docs/sdks/capacitor/mlkit/image-labeling/","keywords":["capacitor","plugin","native","capacitor-plugin","image labeling","image labeler","labeling","mlkit"],"repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-mlkit.git"},"description":"Capacitor plugin for ML Kit Image Labeling on Android and iOS.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor ML Kit Image Labeling Plugin\n\nUnofficial Capacitor plugin for [ML Kit Image Labeling](https://developers.google.com/ml-kit/vision/image-labeling).[^1]\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Use Cases\n\nThe Image Labeling plugin is typically used whenever an app needs to understand the content of an image, for example:\n\n- **Content categorization**: Automatically tag and organize photos by the objects, places, or activities they contain.\n- **Accessibility**: Generate descriptive labels for images to support screen readers and other assistive technologies.\n- **Content moderation**: Detect the presence of certain objects or scenes before an image is published.\n- **Search and discovery**: Make an image library searchable by the labels detected in each image.\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 8.x.x          | >=8.x.x           | Active support |\n\n## Installation\n\nYou can use our **AI-Assisted Setup** to install the plugin.\nAdd the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:\n\n```bash\nnpx skills add capawesome-team/skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```\nUse the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capacitor-mlkit/image-labeling` plugin in my project.\n```\n\nIf you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nnpm install @capacitor-mlkit/image-labeling\nnpx cap sync\n```\n\n**Attention**: This plugin **only supports CocoaPods** for iOS dependency management. Swift Package Manager (SPM) is not supported for the ML Kit SDK, see [this comment](https://github.com/googlesamples/mlkit/issues/180#issuecomment-1298964099).\n\n### Android\n\n#### Variables\n\nIf needed, you can define the following project variable in your app’s `variables.gradle` file to change the default version of the dependency:\n\n- `$mlkitImageLabelingVersion` version of `com.google.mlkit:image-labeling` (default: `17.0.9`)\n\nThis can be useful if you encounter dependency conflicts with other plugins in your project.\n\n### iOS\n\n#### Minimum Deployment Target\n\nMake sure to set the deployment target in your `ios/App/Podfile` to at least `15.5`:\n\n```ruby\nplatform :ios, '15.5'\n```\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Demo\n\nA working example can be found here: [robingenz/capacitor-mlkit-plugin-demo](https://github.com/robingenz/capacitor-mlkit-plugin-demo)\n\n## Usage\n\nThe following example shows how to detect labels in an image.\n\n### Detect labels in an image\n\nDetect labels in an image at a local path. You can configure the confidence threshold to control which labels are returned. Only available on Android and iOS:\n\n```typescript\nimport { ImageLabeling } from '@capacitor-mlkit/image-labeling';\n\nconst processImage = async () => {\n  const { labels } = await ImageLabeling.processImage({\n    path: 'path/to/image.jpg',\n    confidenceThreshold: 0.5,\n  });\n  return labels;\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`processImage(...)`](#processimage)\n* [Interfaces](#interfaces)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### processImage(...)\n\n```typescript\nprocessImage(options: ProcessImageOptions) => Promise<ProcessImageResult>\n```\n\nDetects labels in the supplied image.\n\nLabels can describe objects, locations, activities, animal species, products and more.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                |\n| ------------- | ------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#processimageoptions\">ProcessImageOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#processimageresult\">ProcessImageResult</a>&gt;</code>\n\n**Since:** 8.2.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### ProcessImageResult\n\n| Prop         | Type                      | Description          | Since |\n| ------------ | ------------------------- | -------------------- | ----- |\n| **`labels`** | <code>ImageLabel[]</code> | The detected labels. | 8.2.0 |\n\n\n#### ImageLabel\n\nRepresents a label detected in an image.\n\n| Prop             | Type                | Description                                                            | Since |\n| ---------------- | ------------------- | ---------------------------------------------------------------------- | ----- |\n| **`index`**      | <code>number</code> | The index of the label within the model.                               | 8.2.0 |\n| **`text`**       | <code>string</code> | The text of the label (e.g. `Bicycle`). The text is always in English. | 8.2.0 |\n| **`confidence`** | <code>number</code> | The confidence of the label. The value is between `0.0` and `1.0`.     | 8.2.0 |\n\n\n#### ProcessImageOptions\n\n| Prop                      | Type                | Description                                                                                                                                                         | Default          | Since |\n| ------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ----- |\n| **`path`**                | <code>string</code> | The local path to the image file.                                                                                                                                   |                  | 8.2.0 |\n| **`confidenceThreshold`** | <code>number</code> | The confidence threshold for the labels. Only labels with a confidence greater than or equal to this value are returned. The value must be between `0.0` and `1.0`. | <code>0.5</code> | 8.2.0 |\n\n</docgen-api>\n\n## FAQ\n\n### Which platforms are supported by this plugin?\n\nThe `processImage(...)` method is only available on Android and iOS. The Web platform is not supported by the underlying ML Kit Image Labeling SDK.\n\n### Which model does the plugin use?\n\nThe plugin uses the base image labeling model, which is bundled with the app and can recognize more than 400 labels covering objects, places, activities, animal species, products, and more. Custom TensorFlow Lite models are currently not supported.\n\n### What does the confidence threshold do?\n\nThe `confidenceThreshold` option controls which labels are returned. Only labels with a confidence greater than or equal to the threshold are included in the result. The value must be between `0.0` and `1.0` and defaults to `0.5`.\n\n### In which language are the labels returned?\n\nThe label text is always returned in English. Use the `index` property of a label together with your own localized lookup table if you need translated labels.\n\n### Can I use this plugin with Ionic, React, Vue or Angular?\n\nYes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.\n\n## Related Plugins\n\n- [ML Kit Barcode Scanning](https://capawesome.io/docs/sdks/capacitor/mlkit/barcode-scanning/): Scan barcodes with ML Kit Barcode Scanning.\n- [ML Kit Face Detection](https://capawesome.io/docs/sdks/capacitor/mlkit/face-detection/): Detect faces in images with ML Kit Face Detection.\n- [ML Kit Subject Segmentation](https://capawesome.io/docs/sdks/capacitor/mlkit/subject-segmentation/): Separate subjects from the background with ML Kit Subject Segmentation.\n- [ML Kit Text Recognition](https://capawesome.io/docs/sdks/capacitor/mlkit/text-recognition/): Recognize text in images alongside general image labels.\n\n## Terms & Privacy\n\nThis plugin uses the [Google ML Kit](https://developers.google.com/ml-kit):\n\n- [Terms & Privacy](https://developers.google.com/ml-kit/terms)\n- [Android Data Disclosure](https://developers.google.com/ml-kit/android-data-disclosure)\n- [iOS Data Disclosure](https://developers.google.com/ml-kit/ios-data-disclosure)\n\n## Newsletter\n\nStay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/image-labeling/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/image-labeling/LICENSE).\n\n[^1]: This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries.\n","readmeFilename":"README.md"}