Skip to content
Back to skills

Fiber Availability Check

ASecurity

Check whether fiber-optic internet is deployed at an Israeli street address, across multiple providers (Bezeq Bfiber and HOT Fiber today). Use when the user asks "is there fiber at my address", "can I get Bfiber", "does HOT fiber reach [street]", "fiber availability in [city]", "are there sivim opti'im [סיבים אופטיים] at this address", or is comparing ISP coverage before ordering. Supports a reference test address (בן יהודה 1, ירושלים) and reads defaults from a local preferences file so the u...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 22, 2026
ai-agentspythonbashreactapibackend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 22, 2026

npx -y skills add danielrosehill/Claude-Israel-Agent-Skills-Plugin --skill fiber-availability-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fiber Availability Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fiber Availability Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/danielrosehill-fiber-availability-check/badge)](https://www.skillsdirectory.com/skills/danielrosehill-fiber-availability-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fiber-availability-check
description: Check whether fiber-optic internet is deployed at an Israeli street address, across multiple providers (Bezeq Bfiber and HOT Fiber today). Use when the user asks "is there fiber at my address", "can I get Bfiber", "does HOT fiber reach [street]", "fiber availability in [city]", "are there sivim opti'im [סיבים אופטיים] at this address", or is comparing ISP coverage before ordering. Supports a reference test address (בן יהודה 1, ירושלים) and reads defaults from a local preferences file so the user can check their own address with no arguments.
---

# Israel Fiber Availability Check

Multi-provider address-level fiber availability lookup for Israel. Plain-HTTP (no browser), device-agnostic.

## Providers

| Provider | Status | Method |
|----------|--------|--------|
| **Bezeq** (Bfiber) | Supported | Public JSON API on `bezeq.co.il` |
| **HOT** (HOT Fiber) | Supported | Public JSON API on `hot.net.il` |
| Partner | Not supported | No public address check — their form is lead-capture only (name + phone). |
| Cellcom | Not supported | React SPA behind Imperva/Incapsula; would need headless-browser escalation. |
| IBC / Unlimited | Not supported | Brand sites parked / offline at time of authoring. |

Call with `--show-unsupported` to include these notes in the output.

## Reference test address

Use **`city=ירושלים, street=בן יהודה, house=1`** to smoke-test the pipeline. As of authoring, Bezeq reports `available` and HOT reports `unavailable` at this address — a healthy signal that both backends are reachable and the normalizer is working.

## Local preferences (user details never in the repo)

User-specific defaults live **outside** the plugin repo. Two options, in precedence order (last wins):

1. **YAML (recommended)** — `~/.config/israel-agent-skills/preferences.yaml`:
    ```yaml
    default_city: ירושלים
    default_street: בן יהודה
    default_house: "1"
    default_entrance: ""      # optional
    phone: "+9725xxxxxxxx"    # reserved for future providers that need a lead step
    email: "you@example.com"
    ```
2. **.env-style** — `~/.config/israel-agent-skills/fiber.env`:
    ```bash
    IL_FIBER_CITY=ירושלים
    IL_FIBER_STREET=בן יהודה
    IL_FIBER_HOUSE=1
    IL_FIBER_PHONE=+9725xxxxxxxx
    IL_FIBER_EMAIL=you@example.com
    ```
3. **Process env vars** of the same names (highest precedence, overrides files).

With any of these set, the user can run the skill with zero arguments and get a check for their own address. CLI flags always win over preferences.

Permissions: the prefs directory is user-scoped. If you ever add secrets (API tokens), put them under `~/.config/israel-agent-skills/secrets/` with `chmod 600` and do **not** co-mingle with the plain preferences file.

## Usage

```bash
# Check all supported providers for the test address
python3 scripts/check_fiber.py --city "ירושלים" --street "בן יהודה" --house 1

# Use defaults from ~/.config/israel-agent-skills/preferences.yaml (no args)
python3 scripts/check_fiber.py

# One provider only
python3 scripts/check_fiber.py --provider bezeq
python3 scripts/check_fiber.py --provider hot

# Include the notes about unsupported providers
python3 scripts/check_fiber.py --show-unsupported

# JSON in, JSON out
echo '{"city":"ירושלים","street":"בן יהודה","house":1,"providers":["bezeq","hot"]}' \
  | python3 scripts/check_fiber.py --stdin
```

## Output schema

```json
{
  "query": {"city": "...", "street": "...", "house": "1", "entrance": ""},
  "results": {
    "bezeq": {
      "provider": "bezeq",
      "status": "available | coming_soon | unavailable | address_not_found | unknown | error",
      "status_code": 1,
      "summary": "human-readable one-liner",
      "error": null,
      "raw": { ... provider response ... }
    },
    "hot": { ... same shape ... }
  },
  "unsupported": {},
  "fetched_at": "2026-04-23T21:06:22+03:00",
  "test_address_note": "..."
}
```

Statuses are normalized across providers so callers can compare coverage without provider-specific glue.

## Notes

- No secrets required. Both supported endpoints are public.
- City and street names should be in Hebrew for best matching. Both Bezeq and HOT share the same `cityId=3000` for Jerusalem, which is why the same preference file works across providers.
- If a future provider requires a phone/email for a lead-style submit step, the prefs file already has those slots — the skill will pick them up without a code change to the CLI surface.
- If either provider's response shape changes (e.g. another layer of JSON wrapping, new status code), failures show as `status: "error"` with the exception string so it's obvious what broke.

Files in this skill

  • SKILL.md4.7 KB
  • scripts/check_fiber.py2.6 KB
  • scripts/preferences.py3.8 KB
  • scripts/providers.py7.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.