
Security News
OpenCode User Hit with Hostile Backlash After Reporting Free AI Loophole
An OpenCode user faced harassment after reporting a free AI usage loophole, drawing a bitter backlash in a GitHub thread that has since been deleted.
@mmj-map/tiles
Advanced tools
Cut a PMTiles archive for any bounding box on earth, from public data and public tools only. No key, no account.
Cut a PMTiles archive for any bounding box on earth, from public data and public tools only. No key, no account, no tile server.
日本語版は README.ja.md にあります(こちらが詳しい版です)。
See what the output looks like · render it with the components
That whole map is one file. Cut it here, put it on static hosting, done.
npx @mmj-map/tiles extract nagoya --bbox=136.85,35.13,136.95,35.20
Cutting from the current upstream build 20260924.pmtiles (basemap 4.15.2).
Output: nagoya.20260924.pmtiles (the build date is part of the name)
...
Done: ./tiles/nagoya.20260924.pmtiles
9.8 MB — fits on GitHub Pages (100 MB per file, 1 GB per site).
Attribution (keep it on screen): © OpenStreetMap contributors
Put that one file on any static host and it is your map. Render it with
<mmj-map>, or with MapLibre directly —
this tool only produces the archive.
The upstream planet build is replaced daily, and a URL that is not pinned stops working the week after you ship. The output name carries the build it came from, so you can always say which data a given file holds.
npx @mmj-map/tiles extract <name> --bbox=<west>,<south>,<east>,<north> [--maxzoom=15]
| Output | ./tiles/ where you ran it (change with --out-dir=) |
| Upstream | Resolved from the index at run time; pin one with --build=<key> |
| Max zoom | 15 by default. Lowering it (--maxzoom=13) makes a smaller file |
| Command | What it does |
|---|---|
resolve | Report which upstream build is current |
extract | Cut a region out of an upstream build |
check-range | Check that a host serves HTTP Range correctly |
check-age | Report how old a published archive is |
check-range is worth running before you shipPMTiles works by asking for byte ranges. A host that answers 200 with the whole file
instead of 206 with a slice still looks fine — the map draws — but every tile pulls
the entire archive. You will not notice from the screen; you will notice from the bill
or from a user on mobile data.
Hosts that answer 206: GitHub Pages, Cloudflare R2, Amazon S3, Netlify.
| Area | Size |
|---|---|
| Nagoya (city, z15) | 9.8 MB |
| Hanoi | 10.9 MB |
| Osaka (demo: wide z9 plus city z15) | 62.8 MB |
| All of Japan (z15) | 2.6 GB |
Most uses do not need the whole world. Your own city is usually the whole job.
The data is OpenStreetMap under ODbL. Whatever you render it with, keep
© OpenStreetMap contributors visible. See
LICENSES.md.
MIT for the code. Map data is OpenStreetMap, ODbL.
FAQs
Cut a PMTiles archive for any bounding box on earth, from public data and public tools only. No key, no account.
The npm package @mmj-map/tiles receives a total of 17 weekly downloads. As such, @mmj-map/tiles popularity was classified as not popular.
We found that @mmj-map/tiles demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
An OpenCode user faced harassment after reporting a free AI usage loophole, drawing a bitter backlash in a GitHub thread that has since been deleted.

Threat Research
/Security News
319 browser extensions installed by 13.4 million users hijack searches, capture queries, and collect referral payments from Yahoo and Bing.

Threat Research
Malicious Firefox extensions mimic Phantom, Jupiter, and Bitget wallets to steal recovery phrases and private keys, with one fetching its payload remotely.