UNPKG

exif-ai

Version:

A powerful Node.js CLI and library that uses AI providers (OpenAI, Google Gemini, Anthropic Claude, Mistral, Ollama, Amazon Bedrock, Azure OpenAI, DeepInfra, Fireworks, XAI, OpenRouter, and more) to intelligently write image descriptions and tags to EXIF

110 lines 2.92 kB
{ "name": "exif-ai", "version": "4.0.0", "description": "A powerful Node.js CLI and library that uses AI providers (OpenAI, Google Gemini, Anthropic Claude, Mistral, Ollama, Amazon Bedrock, Azure OpenAI, DeepInfra, Fireworks, XAI, OpenRouter, and more) to intelligently write image descriptions and tags to EXIF metadata.", "homepage": "https://github.com/tychenjiajun/exif-ai", "repository": { "type": "git", "url": "https://github.com/tychenjiajun/exif-ai.git" }, "bugs": { "url": "https://github.com/tychenjiajun/exif-ai/issues" }, "engines": { "node": ">=16" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", "type": "module", "bin": "./dist/exif-ai.js", "keywords": [ "ai", "exif", "image", "jpeg", "jpg", "photo", "metadata", "llm", "mllm", "cli", "cli-tool", "openai", "google", "gemini", "anthropic", "claude", "mistral", "ollama", "amazon", "bedrock", "azure", "deepinfra", "fireworks", "xai", "openrouter", "together", "ai-sdk", "vercel" ], "author": { "name": "Jiajun Chen", "email": "tychenjiajun@live.cn" }, "license": "GPL-2.0-only", "dependencies": { "@ai-sdk/amazon-bedrock": "^2.2.9", "@ai-sdk/anthropic": "^1.2.12", "@ai-sdk/azure": "^1.3.23", "@ai-sdk/deepinfra": "^0.2.15", "@ai-sdk/fireworks": "^0.2.14", "@ai-sdk/google": "^1.2.18", "@ai-sdk/mistral": "^1.2.8", "@ai-sdk/openai": "^1.3.22", "@ai-sdk/openai-compatible": "^0.2.14", "@ai-sdk/togetherai": "^0.2.14", "@ai-sdk/xai": "^1.2.16", "@fluent/bundle": "^0.19.1", "@openrouter/ai-sdk-provider": "^0.7.0", "ai": "^4.3.16", "exiftool-vendored": "^30.2.0", "file-type": "^21.0.0", "https-proxy-agent": "^7.0.6", "iso-639-1": "^3.1.5", "node-fetch": "^3.3.2", "openai": "^5.0.1", "sharp": "0.34.2", "ts-extras": "^0.14.0", "xhr2": "^0.2.1", "yargs": "^18.0.0" }, "devDependencies": { "@eslint/js": "^9.28.0", "@types/node": "^22.15.29", "@types/yargs": "^17.0.33", "@typescript-eslint/parser": "^8.33.0", "@vitest/coverage-istanbul": "^3.1.4", "@vitest/ui": "^3.1.4", "del": "^8.0.0", "eslint": "^9.28.0", "eslint-config-prettier": "^10.1.5", "eslint-import-resolver-typescript": "^4.4.2", "eslint-plugin-import-x": "^4.15.0", "eslint-plugin-prettier": "^5.4.1", "eslint-plugin-promise": "^7.2.1", "eslint-plugin-sonarjs": "^3.0.2", "eslint-plugin-unicorn": "^59.0.1", "globals": "^16.2.0", "prettier": "^3.5.3", "typescript": "^5.8.3", "typescript-eslint": "^8.33.0", "vitest": "^3.1.4" }, "scripts": { "build": "tsc -p tsconfig.build.json", "clean": "rimraf dist", "watch": "tsc --watch -p tsconfig.build.json", "test": "vitest", "test:ui": "vitest --ui" } }