← Back to Skills Marketplace
eyedea-ai

Automatic Number Plate Recognition

by eyedea-ai · GitHub ↗ · v1.0.0 · MIT-0
linuxmacoswindows ✓ Security Clean
145
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install automatic-number-plate-recognition
Description
Detect and read the largest license plate from an image using the TrafficEye REST API. Use when the user wants ANPR, ALPR, license plate OCR, number plate re...
README (SKILL.md)

TrafficEye License Plate Reader

Use this skill when the user wants to read a license plate from an image with the TrafficEye API.

What This Skill Does

  1. Accepts a local image path.
  2. Uploads the image to the TrafficEye recognition API.
  3. Optionally sends a request form field if TRAFFICEYE_REQUEST_JSON is configured.
  4. Parses the API response.
  5. Picks the largest detected plate by polygon area.
  6. Returns the full selected plate payload to the user, including text, type (country), dimension, scores, occlusion, unreadable, and position.

Expected Input

  • A local image file path.
  • If the user supplied an attachment instead of a path, first resolve it to a local file path and then run the helper.

Default Runtime Assumptions

  • The API endpoint defaults to https://trafficeye.ai/recognition.
  • The default request payload is {"tasks":["DETECTION","OCR"],"requestedDetectionTypes":["BOX","PLATE"]}.
  • The default API-key transport matches the TrafficEye public API example: header mode with header name apikey.
  • Auth and request fields remain configurable in case your deployment differs.

Environment Variables

  • TRAFFICEYE_API_KEY: required unless passed explicitly to the helper.
  • TRAFFICEYE_API_URL: optional, defaults to https://trafficeye.ai/recognition.
  • TRAFFICEYE_API_KEY_MODE: one of header, bearer, form, query. Default: header.
  • TRAFFICEYE_API_KEY_NAME: key name for header, form, or query mode. Default: apikey.
  • TRAFFICEYE_FILE_FIELD: multipart field for the image. Default: file.
  • TRAFFICEYE_REQUEST_FIELD: multipart field for the JSON request. Default: request.
  • TRAFFICEYE_REQUEST_JSON: JSON string to include as the request field. By default this is {"tasks":["DETECTION","OCR"],"requestedDetectionTypes":["BOX","PLATE"]}.
  • TRAFFICEYE_TIMEOUT_S: optional timeout in seconds. Default: 30.

How To Run

Setup your API key:

export TRAFFICEYE_API_KEY='YOUR_REAL_KEY'

Use the bundled helper:

python3 recognize_plate.py /absolute/path/to/image.jpg

For structured output:

python3 recognize_plate.py /absolute/path/to/image.jpg --format json

If the deployment expects Bearer auth:

TRAFFICEYE_API_KEY_MODE=bearer python3 recognize_plate.py /absolute/path/to/image.jpg

If the deployment needs an explicit request payload:

TRAFFICEYE_REQUEST_JSON='{"requestedDetectionTypes":["PLATE"]}' python3 recognize_plate.py /absolute/path/to/image.jpg --format json

Equivalent to the documented public API example:

curl -X POST \
  -H "Content-Type: multipart/form-data" \
  -H "apikey: YOUR_API_KEY_HERE" \
  -F "[email protected]" \
  -F 'request={"tasks":["DETECTION","OCR"],"requestedDetectionTypes":["BOX","PLATE"]}' \
  https://trafficeye.ai/recognition

Agent Workflow

  1. Verify that the image path exists.
  2. Run python3 recognize_plate.py \x3Cimage-path> --format json.
  3. Present the full selected plate payload to the user, especially text, type, dimension, occlusion, unreadable, and position.
  4. If the API returns no readable text, explain that the largest plate was found but OCR text was missing.
  5. If authentication fails, ask the user which auth mode their deployment expects and retry with the matching environment variables.

Offline Validation

You can validate the selection logic without calling the API:

python3 recognize_plate.py --response-json-file examples/sample_response.json --format json

Notes

  • The helper intentionally chooses the largest plate by geometric area, not by detection confidence.
  • The response parser first checks combinations[].roadUsers[].plates[], then also supports roadUsers[].plates[], top-level plates[], and nested plate payloads discovered recursively.
  • The default request and auth header mirror the public example at https://www.trafficeye.ai/api.
  • The selected result now includes the original plate payload from the API so country/type and all scores are preserved.
Usage Guidance
This skill appears to be a legitimate TrafficEye ANPR client and includes its Python source for review. Before installing: (1) Confirm you trust trafficeye.ai and the API key you will supply — images uploaded may contain personal data (license plates, vehicle context); (2) Keep the API key limited in scope and not reused for other services; (3) Verify TRAFFICEYE_API_URL is the official endpoint (an attacker could redirect traffic if you set that variable to an untrusted host); (4) If you need offline processing or stronger privacy guarantees, avoid sending sensitive images to a cloud API; (5) Review the included recognize_plate.py if you want to be certain no additional data is collected or logged.
Capability Analysis
Type: OpenClaw Skill Name: automatic-number-plate-recognition Version: 1.0.0 The skill is a legitimate integration for the TrafficEye ANPR (Automatic Number Plate Recognition) service. The core logic in `recognize_plate.py` uses standard Python libraries to perform multipart/form-data uploads to a specified API endpoint and processes the resulting JSON to identify the largest license plate. There is no evidence of data exfiltration, malicious execution, or prompt injection; the script handles environment variables and file paths safely.
Capability Assessment
Purpose & Capability
Name/description match the code and runtime instructions: the helper uploads a local image to the TrafficEye recognition API and parses plate results. Requested env vars (API key, API URL, auth mode, field names, request JSON, timeout) are reasonable for a configurable HTTP client.
Instruction Scope
SKILL.md instructs the agent to verify a local image path and call the provided Python helper which only reads the image (or a provided sample JSON) and posts multipart/form-data to the configured API URL. The instructions do not ask the agent to read unrelated files or secrets.
Install Mechanism
No install spec; this is essentially instruction + included Python script. No downloads, obscure installers, or archive extraction. The included source is readable (no obfuscation) and uses standard urllib APIs.
Credentials
The skill declares several configuration env vars (API key, API URL, auth mode/name, file/request field names, request JSON, timeout). This is somewhat verbose but matches a highly configurable client; the primary credential is just the API key, which is expected. Ensure you only provide a TrafficEye key you trust and do not re-use highly privileged credentials.
Persistence & Privilege
The skill does not request always:true, does not persist changes to other skills or system config, and allows autonomous invocation by default (normal for skills). There is no code that modifies agent configuration or other skills.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install automatic-number-plate-recognition
  3. After installation, invoke the skill by name or use /automatic-number-plate-recognition
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of TrafficEye license plate reader skill, provided by trafficeye.ai by Eyedea Recognition. - Detects and reads the largest license plate from a local image using the TrafficEye REST API. - Supports configurable API authentication and request fields via environment variables. - Returns the full plate payload, including text, type, dimension, scores, and position. - Provides CLI helper for structured output and offline response validation.
Metadata
Slug automatic-number-plate-recognition
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Automatic Number Plate Recognition?

Detect and read the largest license plate from an image using the TrafficEye REST API. Use when the user wants ANPR, ALPR, license plate OCR, number plate re... It is an AI Agent Skill for Claude Code / OpenClaw, with 145 downloads so far.

How do I install Automatic Number Plate Recognition?

Run "/install automatic-number-plate-recognition" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Automatic Number Plate Recognition free?

Yes, Automatic Number Plate Recognition is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Automatic Number Plate Recognition support?

Automatic Number Plate Recognition is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux, macos, windows).

Who created Automatic Number Plate Recognition?

It is built and maintained by eyedea-ai (@eyedea-ai); the current version is v1.0.0.

💬 Comments