Skill metadata
Reference: full SKILL.md
The following is the complete skill definition that Mibyan loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Maps Skill
Location intelligence using free, open data sources. 8 commands, 44 POI categories, zero dependencies (Python stdlib only), no API key required. Data sources: OpenStreetMap/Nominatim, Overpass API, OSRM, TimeAPI.io. This skill supersedes the oldfind-nearby skill — all of find-nearby’s
functionality is covered by the nearby command below, with the same
--near "<place>" shortcut and multi-category support.
When to Use
- User sends a Telegram location pin (latitude/longitude in the message) →
nearby - User wants coordinates for a place name →
search - User has coordinates and wants the address →
reverse - User asks for nearby restaurants, hospitals, pharmacies, hotels, etc. →
nearby - User wants driving/walking/cycling distance or travel time →
distance - User wants turn-by-turn directions between two places →
directions - User wants timezone information for a location →
timezone - User wants to search for POIs within a geographic area →
area+bbox
Prerequisites
Python 3.8+ (stdlib only — no pip installs needed). Script path:~/.mibyan/skills/maps/scripts/maps_client.py
Commands
search — Geocode a place name
reverse — Coordinates to address
nearby — Find places by category
name, address, lat/lon, distance_m,
maps_url (clickable Google Maps link), directions_url (Google Maps
directions from the search point), and promoted tags when available —
cuisine, hours (opening_hours), phone, website.
distance — Travel distance and time
directions — Turn-by-turn navigation
timezone — Timezone for coordinates
area — Bounding box and area for a place
bbox — Search within a bounding box
area first to get the
bounding box coordinates for a named place.
Working With Telegram Location Pins
When a user sends a location pin, the message containslatitude: and
longitude: fields. Extract those and pass them straight to nearby:
maps_url field so the user gets a tap-to-open link in chat. For “open
now?” questions, check the hours field; if missing or unclear, verify
with web_search since OSM hours are community-maintained and not always
current.
Workflow Examples
“Find Italian restaurants near the Colosseum”:nearby --near "Colosseum Rome" --category restaurant --radius 500— one command, auto-geocoded
- Extract lat/lon from the Telegram message
nearby LAT LON cafe --radius 1500
directions "Hotel Name" --to "Conference Center" --mode walking
area "Downtown Seattle"→ get bounding boxbbox S W N E restaurant --limit 30
Pitfalls
- Nominatim ToS: max 1 req/s (handled automatically by the script)
nearbyrequires lat/lon OR--near "<address>"— one of the two is needed- OSRM routing coverage is best for Europe and North America
- Overpass API can be slow during peak hours; the script automatically falls back between mirrors (overpass-api.de → overpass.kumi.systems)
distanceanddirectionsuse--toflag for the destination (not positional)- If a zip code alone gives ambiguous results globally, include country/state

