Show your MapleStory (Korea/PC) character info in a pinned GitHub Gist,
updated automatically. No server required — GitHub Actions does the work.
Important
Data is not live. Nexon's Open API only provides a daily snapshot (updated once per day on Nexon's side). A character created today, or combat power gained minutes ago, will not show up until the next day's snapshot — this is a Nexon API limitation, not a bug in this script. See "How it works" below for details.
Note
KMS (Korea) only. Nexon's Open API also officially covers TMS (Taiwan) and MSEA (Southeast Asia), each under a separate app/API key, but not GMS (Global/NA-EU) — Nexon doesn't offer an official API for GMS at all.
Your gist will look like this:
📌 둘이달 (Lv.286)
🍁 듀얼블레이더
⚔️ 전투력 100,113,135
🌏 유니온
Your own server? → none ❌
GitHub Actions (cron) → runs once a day
└→ looks up your nickname via the Nexon Open API → resolves it to an ocid
└→ fetches level / job / world / combat power for that ocid
└→ overwrites your Gist → your pinned profile card stays fresh ✅
Nexon's Open API returns a daily snapshot, not live data — figures are typically about a day behind your actual in-game state. That's also why this runs once a day instead of every 30 minutes like a Steam box would.
- Sign in at openapi.nexon.com
- 애플리케이션 등록 (Register application) → select 메이플스토리 as the API to use
- Copy the issued API key. Approval is usually quick, but can take a while — plan ahead.
| Secret | Where to get it |
|---|---|
NEXON_API_KEY |
From step 1 above |
MAPLE_NICKNAME |
The exact in-game character nickname (KR/PC) you want to show |
GH_TOKEN (with gist scope) |
GitHub → Settings → Developer settings → Personal access tokens |
GIST_ID |
Create a public gist at gist.github.com, copy the id from its URL |
⚠️ The character must be searchable (rankings-visible) on Nexon's side, otherwise the API can't resolve a nickname to anocid.
Go to your repo → Settings → Secrets and variables → Actions → New repository secret
and add all four (NEXON_API_KEY, MAPLE_NICKNAME, GH_TOKEN, GIST_ID).
🔐 Never hard-code keys, tokens, or your nickname in the source — use Secrets only. Note the nickname will still be visible to anyone who reads the resulting gist content, since that's the whole point — only the API key needs to stay hidden.
Profile page → Customize your pins → select the gist you created.
Repo Actions tab → MapleStory-Pin-Box → Run workflow. If the log shows
Gist ... updated ✅, you're done. It then refreshes once a day automatically.
🕐 First run might show yesterday's numbers, not today's — see the data-lag note at the top of this README. That's expected, not a setup mistake.
Don't want to wait for the next daily run? Trigger it on demand:
- From GitHub (no local setup needed): Repo → Actions tab → MapleStory-Pin-Box → Run workflow button (top right) → Run workflow. Takes a few seconds; refresh the gist page once the run turns green.
- From your machine:
pip install -r requirements.txt export NEXON_API_KEY=xxx MAPLE_NICKNAME=xxx GH_TOKEN=xxx GIST_ID=xxx python maple_box.py
Re-running sooner than once a day won't show new numbers unless you also set
MAPLE_DATE=YYYY-MM-DD— Nexon's snapshot itself only updates once a day.
| Want to… | Do this |
|---|---|
| Change update frequency | Edit the cron in .github/workflows/maple-box.yml |
| Rename the gist file | Set the GIST_FILENAME env var |
| Query a specific date's snapshot | Set the MAPLE_DATE env var (YYYY-MM-DD, KST) |
- Scheduled workflows only run on the default branch (
main). - Cron timing is best-effort — GitHub may delay runs by a few minutes.
- Scheduled workflows are disabled after 60 days of no repo activity — push a commit now and then to keep it alive.
- If the character/world/nickname changes in-game,
MAPLE_NICKNAMEmust be updated to match, or lookups will fail.
MIT