Geizhals.at

v0.1.1

Search Geizhals.at (Austria) with HTTP-only autocomplete + detail-page parsing (no browser automation). Use when users want quick price checks from Geizhals....

0· 571·1 current·1 all-time
byRoland Kákonyi@rolandkakonyi

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for rolandkakonyi/geizhals-at.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Geizhals.at" (rolandkakonyi/geizhals-at) from ClawHub.
Skill page: https://clawhub.ai/rolandkakonyi/geizhals-at
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install rolandkakonyi/geizhals-at

ClawHub CLI

Package manager switcher

npx clawhub@latest install geizhals-at
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the implementation: the code queries Geizhals autocomplete (/acs) and fetches detail pages, then extracts price/shop/offer_count and related fields. No unrelated dependencies or credentials are requested.
Instruction Scope
SKILL.md and the script direct only HTTP requests to geizhals.at, local caching (optional), parsing of returned HTML, and printing JSON or table output. The instructions do not ask the agent to read unrelated files, access other environment variables, or transmit data to third-party endpoints.
Install Mechanism
There is no install spec (instruction-only with included Python script and tests). The skill is executed as a local Python program; no downloads from remote URLs or package installs are performed by an installer.
Credentials
The skill declares no required environment variables or credentials. The only filesystem interaction is optional caching to a user-specified cache directory; no secrets or unrelated config paths are requested.
Persistence & Privilege
always is false and the skill does not attempt to modify other skills or global agent settings. It runs on demand and does not request persistent elevated privileges.
Assessment
This is an unofficial, best-effort scraper for Geizhals.at — review the included Python source before running. It makes direct HTTP requests to geizhals.at (no external endpoints), and optionally writes cache files to a directory you supply. To reduce risk: run the script in an isolated environment (container/VM), avoid running unreviewed third-party code as root, respect Geizhals' terms/robots and rate limits, and verify tests (pytest) if you want extra assurance.

Like a lobster shell, security has layers — review code before you run it.

latestvk97ekr99w3pqpcqvedsdk0jtbx81bbgv
571downloads
0stars
2versions
Updated 1mo ago
v0.1.1
MIT-0

geizhals-at

Geizhals-only lookup skill (Austria) using plain HTTP.

Behavior

  • Query Geizhals autocomplete endpoint (/acs) for product candidates.
  • Fetch top candidate detail pages.
  • Extract:
    • min_price_eur
    • shop
    • offer_count
    • price_confidence + price_source
  • Return stable JSON records with schema_version.

Constraints

  • No browser automation.
  • No JS execution.
  • Unofficial integration: HTML patterns can change and break extraction.
  • Keep request volume low.

Usage

Run commands from the geizhals-at skill directory.

uv first:

uv run scripts/geizhals.py search "iphone 15" --limit 5

JSON output:

uv run scripts/geizhals.py search "mac mini" --limit 5 --json

Debug + explicit cache dir:

uv run scripts/geizhals.py search "bosch akkuschrauber" --limit 5 --json --debug --cache-dir /tmp/geizhals-cache

Fallback without uv:

python3 scripts/geizhals.py search "iphone 15" --limit 5

Output contract

Each result includes:

  • schema_version (currently 1.0)
  • name
  • detail_url
  • min_price_eur (nullable)
  • shop (nullable)
  • offer_count (nullable)
  • price_confidence: high|medium|low|unknown
  • price_source: embedded_offer_raw_price|meta_product_price|title_ab_price|none
  • error (nullable)

Testing

Run parser tests from the skill directory:

uv run --with pytest python -m pytest tests/test_parsers.py

Fallback:

python3 -m pytest tests/test_parsers.py

Fixtures live in tests/fixtures/.

Known limitations

  • Results are Geizhals-only by design.
  • Some products may miss a shop or exact cheapest offer if page structure changes.
  • If Geizhals rate-limits, the script retries with exponential backoff but can still fail.

Comments

Loading comments...