Locate your position on modern Windows
/install locate-on-windows
Locate your position on modern Windows
Locate the Windows machine using the built-in WinRT Windows.Devices.Geolocation API.
Usage
Save the script below as geolocate.ps1 and run:
powershell.exe -ExecutionPolicy Bypass -File geolocate.ps1
Returns JSON:
{
"error": false,
"message": "ok",
"latitude": 35.6762,
"longitude": 139.6503,
"accuracy_m": 1500,
"timestamp": "2026-01-01T08:00:00.0000000+09:00"
}
Script
# geolocate.ps1 — Windows Geolocation via WinRT (PowerShell 5.1 only)
Add-Type -AssemblyName "System.Runtime.WindowsRuntime"
[Windows.Devices.Geolocation.Geolocator, Windows.Devices.Geolocation, ContentType=WindowsRuntime] | Out-Null
try {
$geo = New-Object Windows.Devices.Geolocation.Geolocator
$geo.DesiredAccuracy = [Windows.Devices.Geolocation.PositionAccuracy]::Default
$geo.DesiredAccuracyInMeters = 100
$asyncOp = $geo.GetGeopositionAsync()
$asTask = [System.WindowsRuntimeSystemExtensions].GetMethods() |
Where-Object {
$_.Name -eq 'AsTask' -and
$_.GetParameters().Count -eq 1 -and
$_.GetParameters()[0].ParameterType.IsGenericType -and
$_.GetParameters()[0].ParameterType.Name.StartsWith('IAsyncOperation')
} | Select-Object -First 1
if (-not $asTask) {
$output = [Ordered]@{
error = $true
message = "Cannot resolve AsTask\x3CT> overload"
latitude = 0.0
longitude = 0.0
accuracy_m = 0
timestamp = [datetime]::Now.ToString("o")
}
Write-Output ($output | ConvertTo-Json)
exit 1
}
$genericMethod = $asTask.MakeGenericMethod([Windows.Devices.Geolocation.Geoposition])
$task = $genericMethod.Invoke($null, @($asyncOp))
$task.Wait()
$pos = $task.Result
$output = [Ordered]@{
error = $false
message = "ok"
latitude = [math]::Round($pos.Coordinate.Point.Position.Latitude, 6)
longitude = [math]::Round($pos.Coordinate.Point.Position.Longitude, 6)
accuracy_m = $pos.Coordinate.Accuracy
timestamp = $pos.Coordinate.Timestamp.ToString("o")
}
Write-Output ($output | ConvertTo-Json)
} catch {
$output = [Ordered]@{
error = $true
message = $_.Exception.Message
latitude = 0.0
longitude = 0.0
accuracy_m = 0
timestamp = [datetime]::Now.ToString("o")
}
Write-Output ($output | ConvertTo-Json)
exit 1
}
How It Works
- Loads
System.Runtime.WindowsRuntimefor WinRT type resolution. - Instantiates
Windows.Devices.Geolocation.Geolocator. - Calls
GetGeopositionAsync()— returnsIAsyncOperation\x3CGeoposition>. - Converts to
Task\x3CT>via reflection onSystem.WindowsRuntimeSystemExtensions.AsTask\x3CT>. - Blocks with
.Wait()and outputs JSON.
The location source depends on hardware: GPS (if present), WiFi triangulation, or IP fallback. Typical WiFi accuracy is 1–3 km.
Requirements
- Windows 10+
- PowerShell 5.1 (
powershell.exe, notpwsh7) - Location must be enabled: Settings → Privacy → Location → On
- No admin rights needed
Reverse Geocoding
Use the coordinates with any free reverse-geocoding service:
curl -s "https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=35.6762&longitude=139.6503"
Troubleshooting
- "Location access denied": Enable in Windows Settings → Privacy → Location
- Timeout / no response: The Location service may be disabled or blocked by group policy
- Accuracy > 10km: No WiFi/GPS available, falling back to IP-based estimate
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install locate-on-windows - After installation, invoke the skill by name or use
/locate-on-windows - Provide required inputs per the skill's parameter spec and get structured output
What is Locate your position on modern Windows?
Geolocate the current Windows machine using the native WinRT Location API (PowerShell 5.1). No external API keys, no browser, no dependencies — uses Windows.... It is an AI Agent Skill for Claude Code / OpenClaw, with 225 downloads so far.
How do I install Locate your position on modern Windows?
Run "/install locate-on-windows" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Locate your position on modern Windows free?
Yes, Locate your position on modern Windows is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Locate your position on modern Windows support?
Locate your position on modern Windows is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Locate your position on modern Windows?
It is built and maintained by Cute Omega (@cute-omega); the current version is v1.0.1.