尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证PoC for seeing the weather for different mountains near you
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Where should I hike, and when? Tell it where you're starting from (a postcode or a town), how long you'll drive and which day (up to two weeks ahead), and it ranks around 80 hikes across England and Wales, with Scotland to follow. The recommendation weighs three things: the weather while you'd be walking, the drive, and how good the hike is.
The destinations run from easy South Downs and Peak District walks to the big days in the Lake District and Snowdonia. They live in src/data/mountains/, one file per country.
Built with Next.js 16, TypeScript, Tailwind CSS, shadcn/ui and Auth.js.查看完整 README ↗Where should I hike, and when? Tell it where you're starting from (a postcode or a town), how long you'll drive and which day (up to two weeks ahead), and it ranks around 200 hikes across England, Wales and Scotland. The recommendation weighs three things: the weather while you'd be walking, the drive, and how good the hike is.
The destinations run from easy South Downs and Peak District walks to the big days in the Lake District, Snowdonia, Glen Coe, Skye and Torridon. They live in src/data/mountains/, one file per country.
Built with Next.js 16, TypeScript, Tailwind CSS, shadcn/ui and Auth.js.
Browser ──> /api/plan (Next.js server, needs sign-in)
├─ Open-Meteo (no key: forecast for every destination, sunrise and sunset)
├─ OpenRouteService (ORS_API_KEY, road drive times)
└─ postcodes.io (no key: turns your postcode or town into coordinates)
──> /api/second-opinion (needs sign-in, when you open a destination's details)
└─ Met Office Weather DataHub (MET_OFFICE_API_KEY, optional)
──> /api/scout (needs sign-in, when you press "Ask the Scout about this search")
└─ Claude, via the Anthropic API (ANTHROPIC_API_KEY, optional): an agent that calls
the app's own ranking and Met Office lookups as tools, then recommends a hill and a day
The Scout is an AI agent (src/lib/agent/) on the results page. It works from the search you ran (starting point, day, drive limit, walk length and your Settings weights) and may suggest the day either side instead. Claude decides which days and hills to look at using two tools, answers in a fixed format, and the app then checks the pick against its own safety rules and your filters before showing it. Each answer costs about 6–9 cents, so the same search's answer is reused for an hour. How it was built, stage by stage, is in docs/agent-journal.md, and npm run eval measures it against 15 test weekends (evals/scout/).
API keys never reach the browser. Only the server reads them (src/lib/env.ts is marked server-only).
One request covers every destination. Open-Meteo forecasts all of them in a single batched call, and OpenRouteService returns every drive time in one matrix call. The Met Office charges one call per mountain, so it's only asked about the mountain you open.
Each part falls back. Without a routing key it estimates drive times from straight-line distance. If the weather source fails, it uses generated demo data with a clear label.
Caching keeps you inside the free plans. Forecasts are cached for an hour and drive times for a day. The routes need sign-in, so strangers can't use up your allowance.
Scoring runs in the browser (src/lib/scoring.ts), so changing the weights in Settings updates the ranking instantly. It only looks at 09:00 to 16:00, counts wind for more on exposed ridges, trusts forecasts four or more days out less, and never recommends a day with dangerous gusts, thunder, heavy snow or severe wind chill.
You need Node.js 22 or newer.
npm install
cp .env.example .env.local # optional: the app runs without any keys
npm run dev # http://localhost:4317
With no keys at all, you get live Open-Meteo forecasts, estimated drive times, and sign-in switched off (local development only, with a banner saying so).
Other commands: npm test, npm run lint, npm run typecheck, npm run build.
All of these are free. Put the values in .env.local, which git ignores, and never in the code.
MET_OFFICE_API_KEY. It is optional: the app only calls it when you open a destination, once per mountain per hour.ORS_API_KEY.ANTHROPIC_API_KEY. Without it the Scout button says it isn't set up; everything else works.http://localhost:4317 and the callback URL to http://localhost:4317/api/auth/callback/github.AUTH_GITHUB_ID, then generate a secret and put it in AUTH_GITHUB_SECRET.npx auth secret (or openssl rand -base64 32) and put the result in AUTH_SECRET.ALLOWED_GITHUB_USERS. Nobody else will be able to sign in.Restart npm run dev after changing .env.local.
GitHub Pages can only serve static files, so it can't keep API keys secret. Instead, the code lives on GitHub and Vercel runs it for free:
.env.example that you use.https://<your-app>.vercel.app/api/auth/callback/github. A separate OAuth app for production is cleaner.main goes live, and every pull request gets its own preview URL.A production deployment without the AUTH_* variables won't serve any forecasts. It shows a "sign-in isn't configured" message rather than opening the app to everyone.
.env.local is git-ignored. Only .env.example, which has no values, is committed..env.local and in Vercel, redeploy, then revoke the old key.src/
app/
page.tsx dashboard (needs sign-in)
signin/page.tsx GitHub sign-in
api/plan/route.ts combines forecasts and drive times (needs sign-in)
api/second-opinion/ Met Office view of one destination (needs sign-in)
api/auth/[...nextauth]/ Auth.js handlers
auth.ts Auth.js setup and allowlist
data/mountains/ the destinations, one file per country
scripts/
check-mountains.mts checks the destinations against OpenStreetMap
lib/
env.ts server-only reading and checking of keys
plan.ts builds the plan for a day and applies the fallbacks
scoring.ts weather, travel and quality scores, safety vetoes, recommendation
providers/ Met Office, Open-Meteo, OpenRouteService, postcodes.io, demo data
components/ dashboard, cards, detail panel, chart, settings
src/data/mountains/. Each entry needs the summit position and height, the trailhead car park's position, the difficulty, the exposure (low, medium, high or extreme), a 1 to 5 quality rating, the route, the walking time and a town to stay in.npm run check:mountains -- src/data/mountains/wales.ts
This looks for a named peak near each summit and a car park near each trailhead, and lists anything that doesn't line up, with nearby alternatives. Add --fix to copy OpenStreetMap's summit position and height into the file wherever the name matches. The public Overpass server is shared and sometimes overloaded; if it keeps timing out, point the script at a mirror, for example OVERPASS_URL=https://maps.mail.ru/osm/tools/overpass/api/interpreter.npm test. A data test checks every entry is complete, inside Great Britain and has its trailhead within 12 km of its summit.Everything else in the app picks the new entry up automatically.
Summit positions and heights, and trailhead car parks, were checked against OpenStreetMap data, © OpenStreetMap contributors, available under the Open Database Licence. Weather from Open-Meteo (CC BY 4.0) and, optionally, the Met Office.
The scores are a planning aid, not a safety call. On the day, check the Met Office mountain forecast or MWIS, and make your own judgement on the hill.