The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
Install
git clone https://github.com/markuman/smsInstall command taken from the project's README or registry entry. Always review code before running it.
README excerpt
Read full README on GitHub →🗺️ OSM - self host the entire planet 🌎 in ~30 minutes 🚀
simple mbtiles server
What komoot/outdooractive do better: they have real difficulty data (
, curated routes, community feedback, up-to-date closure notices).sac_scalefrom raw OSM dataOur router sends you over the Stopselzieher without a word — they don't.When it comes to pure routing, they're clearly ahead of us.What we have and they don't:
- Agent-native. "Plan me a 3-day tour with hut stays, check the opening hours" is an afternoon of clicking on komoot — here it's one sentence. They have no MCP interface and won't build one anytime soon; their business model is keeping you inside their app.
- Composability. geocode → poi → route → gpx → nextcloud are building blocks the agent chains freely and enriches with web research. Over there it's a monolith.
- Self-hosted, offline, no paywall. The komoot world pack costs money, so does outdooractive pro, and both phone home.
- Transparency. When our router screws up, I can measure why. Their black box you can only doubt.
We didn't build the better router — we built the better interface for LLM agents. A dumb-but-honest router + an agent that fills the gaps via web search + GPX export: that's the real lever.
— Fable 5.1, Sept 2026
Fact check:
sac_scalewas in the OSM data all along — planetiler just filtered it out. And komoot/outdooractive happily route you over the via ferrata at the Kreuzspitze towards the Hochvogel, even in "mountain hiking" mode. Ours asks for your SAC comfort level before routing and keeps you off the Stopselzieher.
SETUP - TL;DR
mkdir osm
wget --continue -O osm/planet.mbtiles https://osm.osuv.de/planet.mbtiles
wget --continue -O osm/contours.mbtiles https://osm.osuv.de/contours.mbtiles
podman run -ti --rm -p 9000:9000 --name sms -v "$(pwd)/osm/:/data/" registry.gitlab.com/markuman/sms:latest
firefox http://localhost:9000
requirements:
podman(ordocker)- 101 GB storage is required (1 core and 512MB memory are sufficient)
- optional 290 GB storage is required for contour lines
notes:
- "~30 minutes" depends on your bandwidth ...and the hidrive performance of ionos.
credits
- https://github.com/onthegomap/planetiler is used to generate the planet.mbtiles file
- https://github.com/uktrade/mbtiles-s3-server is the origin code-base of my
smsproject
Usage
nextcloud GpxPod
- Deploy the container/service behind a webproxy (caddy, nginx, traefik,...you name it.) to get a valid SSL certificate.
- Goto GpxPod Settings -> Tile Servers
- Type: Vector
- Server address:
https://<YOUR_SMS_SERVICE_DEPLOYMENT>/v1/styles/osm-bright-gl-style@1.0.0/style.json?fonts=fonts-gl@1.0.0&tiles=mytiles@1.0.0
URL Parameter
You can add coordinates and Zoomlevel.
https://maps.osuv.de/?lat=48.1374&lng=11.5752&zoom=9
Reverse Geolocation / Photon Integration
- sms supports photon reverse geocoding server.
Just set -e PHOTONSERVER="https://photon.osuv.de" for your sms Container.
This also enables the geocode and reverse_geocode MCP tools; without it
they are not registered at all.
Two consumers, possibly two URLs
PHOTONSERVER is substituted into index.html at startup, so the browser
talks to Photon directly with that URL — it has to be publicly reachable.
Similar plugs
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype…
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)