Not in the top 1,000 by GitHub stars

SpaceZephyr/map-motion

地图动效视频 Claude Code skill:基于高德地图真实路线/边界/卫星底图,做地球俯冲、vlog 我在这里、徒步海拔、骑行旅程、航线、行政区高亮等地图动画,12 种风格

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

65ab781832ca → 65ab781832ca

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 65ab781832ca

No earlier version was observed for comparison.

Compare on GitHub

map-3d/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

65ab781832ca → 65ab781832ca

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 65ab781832ca

No earlier version was observed for comparison.

Compare on GitHub

photo-spot/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

65ab781832ca → 65ab781832ca

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 65ab781832ca

No earlier version was observed for comparison.

Compare on GitHub

travel-vlog/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

65ab781832ca → 65ab781832ca

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 65ab781832ca

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 65ab781832cace6e0f28d4c00452410a99f3a02c

115GitHub stars
14stars in 7 days
4skills in this repository
6commits in 30 days

Heat

7.1
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 7, 2026115

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

map-motion

When your agent uses it

地图动效视频:用高德地图(真实路线、行政区边界、标准/卫星瓦片底图)做旅行与解说视频里的地图动画,出竖屏/横屏 MP4 和 GIF。十四种镜头:地球俯冲定位(从地球放大到某地)、Vlog「我在这里」瞄准锁定+坐标卡、落点标注、公园/景区/校园地块轮廓描边与绕行、路线描线(驾车/步行/骑行/GPX,车随线走、里程表滚动、镜头跟车、海拔剖面)、飞线航线、行政区描边高亮、一对多辐射飞线、多站旅程(路线+邮戳+照片+返程;可换成卡通形象走路、到站拍照的 vlog 模式,配原创 BGM 和音效)、片尾照片墙、全景收束、标题卡、机位揭秘(咔嚓翻出照片,可做 Live Photo)、猜地点;另有 3D 地形模式(真实山体立体、卫星贴图、地球俯冲到鸟瞰、跟着人沿轨迹走、里程/海拔/爬升/小地图/海拔剖面、沿途弹照片);十四种样式(高德标准、高德暗色、高德灰、高德复古、高德手账、卫星、境外卫星、暗色科技、极简白、水彩手账、复古纸、赛博霓虹、国风水墨、工程蓝图)。当用户说「地图动画」「地图动效」「轨迹动画」「出行轨迹视频」「旅行路线动图」「从地球放大到」「定位到某地」「飞线」「航线动画」「行政区高亮」「门店分布动画」「Vlog 地图片头」「标出某个公园/景点」「徒步/登山/骑行轨迹」「海拔剖面」「我在这里坐标卡」「3D 地形」「立体地图」「像 Google Earth 那样的轨迹」「两步路/六只脚那种 3D 轨迹回放」,或要把行程、GPX、照片位置做成地图视频时使用。

What it loads into context

Frontmatter

524 tokens

Always available to the agent

SKILL.md

3,949 tokens

When the skill is activated

Reference documents

11,584 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 工作流
  2. 镜头一览
  3. 样式
  4. 高德
  5. 要改画法时
  6. 踩过的坑(改代码前先看)

Scripts executed separately

  • scripts/amap.py
  • scripts/audio.py
  • scripts/compile.py
  • scripts/dem.py
  • scripts/elev.py
  • scripts/geo.py
  • scripts/make.sh
  • scripts/osm.py
  • scripts/qa.py
  • scripts/render.py
  • scripts/runtime/hud.js
  • scripts/runtime/mm.js
  • scripts/runtime/qa.js
  • scripts/runtime/t3d.js
  • scripts/status.py
  • scripts/sun.py
  • scripts/sunlight.py
  • scripts/terrain3d.py

Files

  • .gitignoreasset45 bytes
  • LICENSEasset1,266 bytes
  • README.mddoc16,960 bytes
  • SKILL.mdcore12,106 bytes
  • SKILL.mdcore12,106 bytes
  • SKILL.mdcore12,106 bytes
  • SKILL.mdcore12,106 bytes
  • assets/china.jsonasset207,798 bytes
  • assets/examples/cycling_trip.jsonasset762 bytes
  • assets/examples/drive_follow.jsonasset304 bytes
  • assets/examples/flight.jsonasset368 bytes
  • assets/examples/globe_dive.jsonasset218 bytes
  • assets/examples/hike_elevation.jsonasset759 bytes
  • assets/examples/park_locate.jsonasset444 bytes
  • assets/examples/park_walk.jsonasset721 bytes
  • assets/examples/radiate.jsonasset308 bytes
  • assets/examples/region.jsonasset304 bytes
  • assets/examples/road_trip.jsonasset626 bytes
  • assets/examples/showcase.jsonasset1,107 bytes
  • assets/examples/vlog_locate.jsonasset272 bytes
  • assets/examples/vlog_locate_night.jsonasset252 bytes
  • assets/fonts/Anton-400.woffasset61,460 bytes
  • assets/fonts/LICENSES.mddoc348 bytes
  • assets/fonts/LXGWWenKai-500.woffasset2,098,296 bytes
  • assets/fonts/NotoSansSC-700.woffasset1,425,340 bytes
  • assets/fonts/NotoSansSC-900.woffasset1,394,104 bytes
  • assets/fonts/OFL.txtdoc4,430 bytes
  • assets/land.jsonasset251,919 bytes
  • docs/media/cycling_qinghai.webpasset4,024,020 bytes
  • docs/media/gallery_globe.jpgasset237,316 bytes
  • docs/media/gallery_radiate.jpgasset307,597 bytes
  • docs/media/hike_wutong.webpasset2,341,348 bytes
  • docs/media/m3d_drive.webpasset5,080,920 bytes
  • docs/media/m3d_place.webpasset3,897,654 bytes
  • docs/media/park_locate.webpasset3,662,104 bytes
  • docs/media/park_walk.webpasset1,951,570 bytes
  • docs/media/photo_spot_fuji.webpasset2,121,792 bytes
  • docs/media/photo_spot_highjunk_live.webpasset2,032,364 bytes
  • docs/media/photo_spot_yubeng_live.webpasset3,883,710 bytes
  • docs/media/radiate_dark.webpasset398,240 bytes
  • docs/media/road_trip_journal.webpasset1,467,912 bytes
  • docs/media/showcase_flight_region.webpasset2,775,816 bytes
  • docs/media/sun_meili.webpasset3,471,696 bytes
  • docs/media/vlog_locate_bund.webpasset683,228 bytes
  • docs/media/vlog_locate_dali.webpasset1,768,202 bytes
  • docs/media/vlog_westlake.webpasset1,560,502 bytes
  • references/amap.mddoc3,026 bytes
  • references/spec.mddoc14,464 bytes
  • scripts/amap.pyruns8,057 bytes
  • scripts/audio.pyruns11,170 bytes
  • scripts/compile.pyruns32,121 bytes
  • scripts/dem.pyruns2,126 bytes
  • scripts/elev.pyruns3,173 bytes
  • scripts/geo.pyruns4,309 bytes
  • scripts/make.shruns422 bytes
  • scripts/osm.pyruns8,250 bytes
  • scripts/qa.pyruns4,686 bytes
  • scripts/render.pyruns12,276 bytes
  • scripts/runtime/hud.jsruns6,390 bytes
  • scripts/runtime/index.htmlasset329 bytes
  • scripts/runtime/mm.jsruns68,396 bytes
  • scripts/runtime/qa.jsruns3,241 bytes
  • scripts/runtime/t3d.jsruns24,879 bytes
  • scripts/runtime/terrain.htmlasset433 bytes
  • scripts/status.pyruns943 bytes
  • scripts/sun.pyruns4,820 bytes
  • scripts/sunlight.pyruns7,964 bytes
  • scripts/terrain3d.pyruns13,317 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • map-motion
  • map-3d
  • photo-spot
  • travel-vlog

Repository facts

License
No license detected
Created
Oct 7, 2026
Last pushed
Oct 9, 2026
Forks
10
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 7, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 15 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • assets/china.json:1 Analysis incomplete: physical or joined line exceeds character limit
  • assets/land.json:1 Analysis incomplete: physical or joined line exceeds character limit
  • map-3d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • map-3d/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • photo-spot/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • photo-spot/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • photo-spot/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • travel-vlog/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • travel-vlog/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • travel-vlog/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • travel-vlog/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • travel-vlog/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 125 signals by file

README.md

  • Network accessline 79
    也有独立仓库 [SpaceZephyr/travel-vlog](https://github.com/SpaceZephyr/travel-vlog)(自带引擎,单独安装即可用)。
  • Network accessline 131
    git clone https://github.com/SpaceZephyr/map-motion ~/.claude/skills/map-motion
  • Network accessline 134
    依赖:[uv](https://docs.astral.sh/uv/)、ffmpeg。
  • Network accessline 197
    **Skill** - [huashu-art-motion](https://github.com/alchaincyf/huashu-art-motion)(花叔):借鉴了它的工作方法——风格先在同一帧上出多个方向让人挑、所有渲染确定性可复现、交付前抽静帧逐帧检查、派独立 agent 只看成片审片、把踩过的坑写回 skill(本 skill 的 SKILL.md 末尾也保留了「踩过的坑」)。
  • Network accessline 198
    - [huashu-art-motion](https://github.com/alchaincyf/huashu-art-motion)(花叔):借鉴了它的工作方法——风格先在同一帧上出多个方向让人挑、所有渲染确定性可复现、交付前抽静帧逐帧检查、派独立 agent 只看成片审片、把踩过的坑写回 skill(本 skill 的 SKILL.md 末尾也保留了「踩过的坑」)。
  • Network accessline 199
    - [Anthropic skill-creator](https://github.com/anthropics/skills):skill 的组织方式——SKILL.md 只放流程和选择指南,参数细节放 references/,可执行部分放 scripts/,按需加载。
  • Network accessline 201
    **产品与灵感** - [Mult.dev](https://mult.dev)、[TravelAnimator](https://travelanimator.com):旅行地图视频的常见镜头(航线、自驾、照片插入)。
  • Network accessline 202
    - [Mult.dev](https://mult.dev)、[TravelAnimator](https://travelanimator.com):旅行地图视频的常见镜头(航线、自驾、照片插入)。
  • Network accessline 212
    **数据** - [高德开放平台](https://lbs.amap.com) Web 服务 API(地理编码、路径规划、行政区)与地图瓦片
  • Network accessline 213
    - [高德开放平台](https://lbs.amap.com) Web 服务 API(地理编码、路径规划、行政区)与地图瓦片
  • Network accessline 214
    - [阿里云 DataV GeoAtlas](https://datav.aliyun.com/portal/school/atlas/area_selector):中国省级边界(含南海诸岛与九段线)
  • Network accessline 215
    - [Natural Earth](https://www.naturalearthdata.com) / [world-atlas](https://github.com/topojson/world-atlas):世界陆地轮廓
  • Network accessline 216
    - [OpenStreetMap](https://www.openstreetmap.org)(Overpass API):公园、景区等地块轮廓 © OpenStreetMap contributors,ODbL
  • Network accessline 217
    - [OpenTopoData](https://www.opentopodata.org):SRTM 30m 海拔
  • Network accessline 218
    - [AWS Terrain Tiles](https://registry.opendata.aws/terrain-tiles/)(Mapzen Terrarium 编码):3D 地形与 3D 片的海拔/爬升,© Mapzen 及各数据源(SRTM、GMTED、ETOPO1 等)
  • Network accessline 219
    - [MapLibre GL JS](https://maplibre.org) 5.24(BSD-3):3D 片的渲染,运行时从 unpkg 下载并缓存
  • Network accessline 220
    - [Esri World Imagery](https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9):境外卫星影像(`satellite-world`)和 3D 片的全部卫星影像,© Esri, Maxar, Earthstar Geographics
  • Network accessline 221
    - 太阳位置:NOAA Solar Calculator 算法(scripts/sun.py,自写实现) - 卡通形象:[LabNana](https://labnana.com) 图像接口(gpt-image-2 / Gemini)按用户照片生成,需用户自己的 key;内置小人由代码绘制 - 配乐与音效:scripts/audio.py 程序合成(Karplus-Strong 拨弦、正弦钟琴等),原创,无第三方版权
  • Network accessline 222
    - 卡通形象:[LabNana](https://labnana.com) 图像接口(gpt-image-2 / Gemini)按用户照片生成,需用户自己的 key;内置小人由代码绘制

SKILL.md

  • Access to secretsline 79
    [Credential-related source omitted]

assets/fonts/OFL.txt

  • Network accessline 4
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 6
    http://scripts.sil.org/OFL

map-3d/scripts/m3d.py

  • Executable scriptline 1
    Executable file

map-3d/scripts/m3d.sh

  • Executable scriptline 1
    #!/bin/zsh

photo-spot/scripts/spot.py

  • Executable scriptline 1
    Executable file

photo-spot/scripts/spot.sh

  • Executable scriptline 1
    #!/bin/zsh

references/amap.md

  • Access to secretsline 5
    [Credential-related source omitted]

scripts/amap.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 34
    f = CACHE / f"{h}.json"     if f.exists(): return json.loads(f.read_text())     url = f"https://restapi.amap.com{path}?" + urllib.parse.urlencode({**q, "key": key()})
  • Network accessline 35
    if f.exists(): return json.loads(f.read_text())     url = f"https://restapi.amap.com{path}?" + urllib.parse.urlencode({**q, "key": key()})     for attempt in range(6):                                    # 免费 key 约 3 次/秒:间隔+被限流退避
  • Network accessline 36
    url = f"https://restapi.amap.com{path}?" + urllib.parse.urlencode({**q, "key": key()})
  • Network accessline 37
    for attempt in range(6):                                    # 免费 key 约 3 次/秒:间隔+被限流退避         time.sleep(0.35 * (attempt + 1))         d = json.load(urllib.request.urlopen(url, timeout=30, context=_ctx()))
  • Network accessline 38
    time.sleep(0.35 * (attempt + 1))         d = json.load(urllib.request.urlopen(url, timeout=30, context=_ctx()))         ok = d.get("status") == "1" or d.get("errcode") == 0
  • Network accessline 39
    d = json.load(urllib.request.urlopen(url, timeout=30, context=_ctx()))

scripts/audio.py

  • Executable scriptline 1
    Executable file

scripts/compile.py

  • Executable scriptline 1
    Executable file

scripts/dem.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 12
    URL = "https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.png"
  • Network accessline 12
    URL = "https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.png"
  • Network accessline 23
    for i in range(3):             try:                 data = urllib.request.urlopen(URL.format(z=z, x=x, y=y), timeout=30, context=amap._ctx()).read(); break
  • Network accessline 23
    for i in range(3):             try:                 data = urllib.request.urlopen(URL.format(z=z, x=x, y=y), timeout=30, context=amap._ctx()).read(); break
  • Network accessline 24
    try:                 data = urllib.request.urlopen(URL.format(z=z, x=x, y=y), timeout=30, context=amap._ctx()).read(); break             except Exception as e:
  • Network accessline 24
    try:                 data = urllib.request.urlopen(URL.format(z=z, x=x, y=y), timeout=30, context=amap._ctx()).read(); break             except Exception as e:
  • Network accessline 25
    data = urllib.request.urlopen(URL.format(z=z, x=x, y=y), timeout=30, context=amap._ctx()).read(); break
  • Network accessline 25
    data = urllib.request.urlopen(URL.format(z=z, x=x, y=y), timeout=30, context=amap._ctx()).read(); break

scripts/elev.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    CACHE = Path.home() / ".cache/map-motion/elev" API = "https://api.opentopodata.org/v1/srtm30m?locations="
  • Network accessline 12
    API = "https://api.opentopodata.org/v1/srtm30m?locations="
  • Network accessline 30
    try:                 time.sleep(1.1)                 d = json.load(urllib.request.urlopen(API + q, timeout=40, context=amap._ctx()))
  • Network accessline 31
    time.sleep(1.1)                 d = json.load(urllib.request.urlopen(API + q, timeout=40, context=amap._ctx()))                 if d.get("status") == "OK": break
  • Network accessline 32
    d = json.load(urllib.request.urlopen(API + q, timeout=40, context=amap._ctx()))

scripts/geo.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

scripts/make.sh

  • Executable scriptline 1
    #!/bin/zsh
  • Executable scriptline 1
    #!/bin/zsh

scripts/osm.py

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    CACHE = Path.home() / ".cache/map-motion/osm" MIRRORS = ["https://overpass-api.de/api/interpreter", "https://maps.mail.ru/osm/tools/overpass/api/interpreter", "https://overpass.kumi.systems/api/interpreter"]
  • Network accessline 16
    MIRRORS = ["https://overpass-api.de/api/interpreter", "https://maps.mail.ru/osm/tools/overpass/api/interpreter", "https://overpass.kumi.systems/api/interpreter"]
  • Network accessline 24
    for u in MIRRORS:                                            # 主站常 504,轮流试镜像         try:             req = urllib.request.Request(u, data=urllib.parse.urlencode({"data": q}).encode(), headers={"User-Agent": "map-motion/1.0 (video tool)"})
  • Network accessline 25
    try:             req = urllib.request.Request(u, data=urllib.parse.urlencode({"data": q}).encode(), headers={"User-Agent": "map-motion/1.0 (video tool)"})             d = json.load(urllib.request.urlopen(req, timeout=90, context=amap._ctx()
  • Network accessline 26
    req = urllib.request.Request(u, data=urllib.parse.urlencode({"data": q}).encode(), headers={"User-Agent": "map-motion/1.0 (video tool)"})
  • Network accessline 27
    d = json.load(urllib.request.urlopen(req, timeout=90, context=amap._ctx()))

scripts/qa.py

  • Executable scriptline 1
    Executable file

scripts/render.py

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    TCACHE = Path.home() / ".cache/map-motion/tiles" SRC = {   # 高德瓦片(GCJ-02 墨卡托):amap=标准路网 512px,sat=卫星 256px,lbl=卫星上的路名地名叠加 512px     "amap": "https://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=7",
  • Network accessline 17
    SRC = {   # 高德瓦片(GCJ-02 墨卡托):amap=标准路网 512px,sat=卫星 256px,lbl=卫星上的路名地名叠加 512px     "amap": "https://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=7",     "sat": "https://webst0{s}.is.autonavi.com/appmap
  • Network accessline 18
    "amap": "https://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=7",
  • Network accessline 19
    "sat": "https://webst0{s}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
  • Network accessline 20
    "lbl": "https://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=8&ltype=4",
  • Network accessline 21
    "esri": "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",   # 境外卫星(WGS-84 墨卡托,全球高清);高德卫星境外只有城市级
  • Network accessline 22
    "dem": "https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.png",   # 3D 地形:AWS Terrain Tiles(Terrarium 编码高程)
  • Network accessline 23
    } VENDOR = {"maplibre-gl.js": "https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.js"}   # 3D 运行时用,首次下载后缓存 VCACHE = Path.home() / ".cache/map-motion/vendor"
  • Network accessline 24
    VENDOR = {"maplibre-gl.js": "https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.js"}   # 3D 运行时用,首次下载后缓存
  • Network accessline 73
    for k in range(3):         try:             data = urllib.request.urlopen(urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0", "Referer": "https://www.amap.com/"}), timeout=20, context=CTX).read()
  • Network accessline 74
    try:             data = urllib.request.urlopen(urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0", "Referer": "https://www.amap.com/"}), timeout=20, context=CTX).read()             f.parent.mkdir(parents=True, exist_ok=True); 
  • Network accessline 75
    data = urllib.request.urlopen(urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0", "Referer": "https://www.amap.com/"}), timeout=20, context=CTX).read()
  • Network accessline 93
    f = VCACHE / VENDOR[p[8:]].split("/")[3] / p[8:]             if not f.exists():                 f.parent.mkdir(parents=True, exist_ok=True); f.write_bytes(urllib.request.urlopen(VENDOR[p[8:]], timeout=60, context=CTX).read())
  • Network accessline 94
    if not f.exists():                 f.parent.mkdir(parents=True, exist_ok=True); f.write_bytes(urllib.request.urlopen(VENDOR[p[8:]], timeout=60, context=CTX).read())             return self._send(f.read_bytes(), "text/javascript")
  • Network accessline 95
    f.parent.mkdir(parents=True, exist_ok=True); f.write_bytes(urllib.request.urlopen(VENDOR[p[8:]], timeout=60, context=CTX).read())
  • Network accessline 121
    pg.on("pageerror", lambda e: (A.verbose and print("[pageerror]", e), errors.append(str(e))))     pg.add_init_script("window.MM_TIMELINE = " + json.dumps(TL, ensure_ascii=False) + ";")     pg.goto(f"http://127.0.0.1:{port}/{RT}.html")
  • Network accessline 122
    pg.add_init_script("window.MM_TIMELINE = " + json.dumps(TL, ensure_ascii=False) + ";")     pg.goto(f"http://127.0.0.1:{port}/{RT}.html")     pg.wait_for_function("window.__ready === true || !!window.__bootFailed", timeout=120000)
  • Network accessline 123
    pg.goto(f"http://127.0.0.1:{port}/{RT}.html")
  • Possible obfuscationline 134
    (out / f"t{float(s):06.2f}.png").write_bytes(base64.b64decode(png))
  • Possible obfuscationline 152
    ff.stdin.write(base64.b64decode(png))

scripts/runtime/hud.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

scripts/runtime/mm.js

  • Executable scriptline 1
    Executable file
  • Network accessline 66
    const fonts = [['MM-Bold', 'NotoSansSC-700'], ['MM-Black', 'NotoSansSC-900'], ['MM-Hand', 'LXGWWenKai-500'], ['MM-Num', 'Anton-400']];   for (const [fam, f] of fonts) { const ff = new FontFace(fam, `url(/asset/fonts/${f}.woff)`); await ff.l
  • Network accessline 67
    for (const [fam, f] of fonts) { const ff = new FontFace(fam, `url(/asset/fonts/${f}.woff)`); await ff.load(); document.fonts.add(ff); }   ASSET.land = await (await fetch('/asset/land.json')).json();   ASSET.china = await (await fetch('/asse
  • Network accessline 68
    ASSET.land = await (await fetch('/asset/land.json')).json();
  • Network accessline 69
    ASSET.china = await (await fetch('/asset/china.json')).json();
  • Network accessline 506
    const tx = x0 + 40 * U; c.textAlign = 'left'; c.fillStyle = S.chipText;   c.font = `${24 * U}px "MM-Num"`; c.letterSpacing = `${5 * U}px`; c.globalAlpha *= 0.65; c.fillText(L.kicker || 'YOU ARE HERE', tx, y0 + 52 * U); c.letterSpacing = '0p
  • Network accessline 507
    c.font = `${24 * U}px "MM-Num"`; c.letterSpacing = `${5 * U}px`; c.globalAlpha *= 0.65; c.fillText(L.kicker || 'YOU ARE HERE', tx, y0 + 52 * U); c.letterSpacing = '0px'; c.globalAlpha = e * (1 - out);   const name = L.name || ''; const nc =
  • Network accessline 508
    const name = L.name || ''; const nc = Math.ceil(clamp((lt - 0.15) / 0.6) * [...name].length);

scripts/runtime/qa.js

  • Executable scriptline 1
    Executable file

scripts/runtime/t3d.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

scripts/status.py

  • Executable scriptline 1
    Executable file

scripts/sun.py

  • Executable scriptline 1
    Executable file

scripts/sunlight.py

  • Executable scriptline 1
    Executable file

scripts/terrain3d.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

travel-vlog/SKILL.md

  • Access to secretsline 22
    [Credential-related source omitted]

travel-vlog/scripts/vlog.py

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    def labnana_key():     k = os.environ.get("LABNANA_API_KEY")     if k: return k, os.environ.get("LABNANA_API_URL", "https://api.labnana.com")
  • Network accessline 29
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 32
    if f.exists():             kv = dict(l.strip().split("=", 1) for l in f.read_text().splitlines() if "=" in l and not l.startswith("#"))             if kv.get("LABNANA_API_KEY"): return kv["LABNANA_API_KEY"], kv.get("LABNANA_API_URL", "https
  • Network accessline 33
    kv = dict(l.strip().split("=", 1) for l in f.read_text().splitlines() if "=" in l and not l.startswith("#"))             if kv.get("LABNANA_API_KEY"): return kv["LABNANA_API_KEY"], kv.get("LABNANA_API_URL", "https://api.labnana.com")     ra
  • Network accessline 34
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 41
    body = {"provider": prov, "model": model, "prompt": prompt, "imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"},             "referenceImages": [{"inlineData": {"data": base64.b64encode(r).decode(), "mimeType": "image/jpeg"}} for r in 
  • Network accessline 42
    "referenceImages": [{"inlineData": {"data": base64.b64encode(r).decode(), "mimeType": "image/jpeg"}} for r in refs]}     req = urllib.request.Request(f"{url}/openapi/v1/images/generation", data=json.dumps(body).encode(), method="POST",     
  • Network accessline 43
    req = urllib.request.Request(f"{url}/openapi/v1/images/generation", data=json.dumps(body).encode(), method="POST",
  • Network accessline 49
    ctx = ssl.create_default_context()     try:         res = json.loads(urllib.request.urlopen(req, timeout=300, context=ctx).read())
  • Network accessline 50
    try:         res = json.loads(urllib.request.urlopen(req, timeout=300, context=ctx).read())     except urllib.error.HTTPError as e:
  • Network accessline 51
    res = json.loads(urllib.request.urlopen(req, timeout=300, context=ctx).read())
  • Possible obfuscationline 56
    Path(out).write_bytes(base64.b64decode(part["inlineData"]["data"])); return out

travel-vlog/scripts/vlog.sh

  • Executable scriptline 1
    #!/bin/zsh

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Declared and executed: 9 facts
  • Contacts s3.amazonaws.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/dem.py:12High confidence
  • Contacts overpass-api.de, which SKILL.md, the README and the plugin manifest do not mentionscripts/osm.py:16High confidence
  • Contacts maps.mail.ru, which SKILL.md, the README and the plugin manifest do not mentionscripts/osm.py:16High confidence
  • Contacts overpass.kumi.systems, which SKILL.md, the README and the plugin manifest do not mentionscripts/osm.py:16High confidence
  • Contacts wprd0, which SKILL.md, the README and the plugin manifest do not mentionscripts/render.py:18High confidence
  • Contacts webst0, which SKILL.md, the README and the plugin manifest do not mentionscripts/render.py:19High confidence
  • Contacts server.arcgisonline.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/render.py:21High confidence
  • Contacts s3.amazonaws.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/render.py:22High confidence
  • Contacts unpkg.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/render.py:24High confidence
Signal confidence: 125 facts

and 75 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.