← 返回 Skills 市场
si-gr

Brouter

作者 si-gr · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ⚠ suspicious
314
总下载
0
收藏
1
当前安装
3
版本数
在 OpenClaw 中安装
/install brouter
功能描述
Generate GPX bike routes via brouter.de. Use when the user wants a bike route as a GPX file between two places, optionally specifying a routing profile. http...
使用说明 (SKILL.md)

brouter

This OpenClaw skill queries the brouter.de webservice and generate GPX bike tracks.

Usage

Natural language prompts

You can trigger this skill with prompts like:

  • "Create a GPX for a bike route from [origin] to [destination] (profile: [profile])."
  • "Give me a quiet route from Prenzlauer Berg to Kreuzberg as a GPX."
  • "I need a fast bike route from Berlin Hauptbahnhof to Alexanderplatz as a GPX file."

Parameters to extract

When using this skill, identify:

  • origin: Free-text description of the starting location.
  • destination: Free-text description of the end location.
  • profile : One of the supported brouter profiles below.

Parse all location data to coordinates before using index.js. Never use free-text descriptions of locations directly as input for index.js. Use coordinates as origin and destination input for index.js.

Heuristics for choosing a profile

  • Prefer trekking when the user does not specify a preference.
  • Prefer trekking-fast when the user asks for a fast or time-efficient route.
  • Prefer trekking-safe or shortbike when the user asks for a quiet, safe, or kid-friendly route.
  • Prefer fastbike when the user mentions road bike, speed, or being an experienced cyclist.
  • Prefer moped only if the user explicitly indicates using a moped or similar vehicle.

Agent implementation: coordinates

When this skill is triggered, the agent should first derive coordinates from the user's origin and destination, then use index.js to make structured request to brouter.de

1. Derive coordinates from user input

  1. Extract plain-text locations:
    • origin — starting point
    • destination — end point
  2. If the user already supplies coordinates (e.g. 13.4244,52.5388), use them directly.
  3. Otherwise, geocode the locations into lon,lat pairs
  4. Ensure the final values are strings in the form:
    • "\x3Clon>,\x3Clat>" (longitude first, then latitude)

2. Use index.js

Once you have start and end as lon,lat strings and a chosen profile, use the index.js as follows:

cd workspace/skills/brouter && node -e "(async () => { const run = require('./index'); const result = await run({ start: '\x3Clon>,\x3Clat>', end: '\x3Clon>,\x3Clat>', profile: '\x3Cprofile>' }); console.log(result); })().catch(err => console.error(err));"

Reply to the user with the response file found in routes/ folder.

See the earlier "Derive coordinates from user input" section for recommended heuristics when turning user prompts into coordinates.

安全使用建议
This skill generally does what it says (calls brouter.de and writes a GPX file), but review these issues before installing: - Network privacy: index.js calls brouter.de over plain HTTP (http://brouter.de). Coordinates and route requests will be sent unencrypted and could be intercepted. Prefer HTTPS or confirm brouter.de behavior. - Local logging: the skill appends structured logs (including the options object which contains start/end coordinates) to brouter.log in the skill directory. If you care about location privacy, plan for log retention, rotation, or disable logging. - File-write controls: you can override outputDir and fileName when invoking run(). The code does not sanitize a supplied fileName/outputDir, so a malicious or buggy invocation might write files outside the intended routes/ folder. Restrict who/what can call this skill or validate inputs before invoking. - Geocoding: SKILL.md asks the agent to geocode free-text locations. That will involve calling external geocoding services (and sending user location text) — choose a trusted geocoder and be aware of data sent to it. - Runtime setup: package.json lists dependencies; ensure node modules are installed in a controlled environment (npm install) before use. If you accept these risks, restrict invocation to trusted agents/processes, run the skill in a sandboxed environment, prefer HTTPS, and consider editing index.js to (a) use HTTPS, (b) avoid writing sensitive data to logs or make logging optional, and (c) validate/sanitize outputDir and fileName to prevent arbitrary writes.
功能分析
Type: OpenClaw Skill Name: brouter Version: 1.0.2 The brouter skill is a legitimate tool for generating GPX bike routes by querying the brouter.de web service. The implementation in index.js correctly handles coordinate inputs, sanitizes filenames using a slugify function to prevent path traversal, and uses standard libraries like node-fetch and gpx-parse. No evidence of data exfiltration, malicious code execution, or harmful prompt injection was found.
能力评估
Purpose & Capability
Name/description match the code and instructions: index.js calls brouter.de, produces GPX, and writes files. Dependencies (node-fetch, gpx-parse) are proportional to the task.
Instruction Scope
SKILL.md correctly requires geocoding to coordinates before calling index.js and instructs how to run the module. However it does not advise which geocoder to use (so agents may call arbitrary external geocoders) and does not warn about the implementation's logging or output-path controls. The run instruction expects the agent to perform geocoding externally, which is reasonable but expands the set of external services used and potential data exposure.
Install Mechanism
There is no install spec (instruction-only at runtime), but package.json lists npm dependencies. Users/agents will need to ensure node modules are installed (npm install) prior to running index.js.
Credentials
The skill requests no environment variables or credentials. However, the implementation logs the full options object (including start/end coordinates and any labels) to a local brouter.log file and includes full request context in success/error logs — a privacy concern since location data is sensitive.
Persistence & Privilege
The skill writes files to disk (routes/ by default) and maintains a persistent brouter.log alongside the skill. It allows overriding outputDir and fileName; provided fileName/outputDir are not sanitized, a malicious or buggy agent invocation could cause files to be written to unexpected filesystem locations (path traversal / arbitrary write). always:false and normal invocation privileges mitigate but do not remove this risk.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install brouter
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /brouter 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.2
- Added a README.md file with usage instructions and details for the brouter skill. - No changes to core functionality or code logic; documentation only.
v1.0.1
- Minor documentation update in SKILL.md: reformatted the usage example command for clarity (removed code block ticks and kept the command as plain text). - Removed package-lock.json from the repository.
v1.0.0
Initial release of the brouter skill: - Generates GPX bike routes using brouter.de based on user input. - Supports route generation between two locations, with optional specification of routing profiles (e.g., fast, quiet). - Parses and geocodes free-text locations into coordinates before processing. - Provides guidance on profile selection depending on user intent. - Returns GPX files located in the routes folder for user download.
元数据
Slug brouter
版本 1.0.2
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 3
常见问题

Brouter 是什么?

Generate GPX bike routes via brouter.de. Use when the user wants a bike route as a GPX file between two places, optionally specifying a routing profile. http... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 314 次。

如何安装 Brouter?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install brouter」即可一键安装,无需额外配置。

Brouter 是免费的吗?

是的,Brouter 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Brouter 支持哪些平台?

Brouter 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Brouter?

由 si-gr(@si-gr)开发并维护,当前版本 v1.0.2。

💬 留言讨论