Look up available Korean national forest recreation lodging or camping slots on foresttrip.go.kr. Use when the user asks for 숲나들e or 자연휴양림 빈 객실/빈자리 조회, not for booking.
Detected risks:
Foresttrip Vacancy automates availability lookups for South Korea's national forest recreation areas (자연휴양림) through the official 숲나들e portal at foresttrip.go.kr. It is strictly a query-only tool: it checks open lodging and camping slots by date and deliberately excludes reservation submission, payment, captcha solving, queue bypass, and any repeated sniping or aggressive polling. A Python helper drives Playwright to log in, obtain the CSRF token, cookies, and official recreation-forest IDs, and then calls only the monthly-reservation JSON endpoint. As of the documented check, accessing that screen without logging in returns a 401, so an authenticated session is a required precondition, and the skill will not seek unofficial routes or captcha bypasses when secrets are missing.
Prerequisites are Python 3.9 or later and the Playwright Chromium browser. Credentials are read from the KSKILL_FORESTTRIP_ID and KSKILL_FORESTTRIP_PASSWORD environment variables, with a documented resolution order that prefers existing environment variables, then an agent secret vault, then a fallback dotenv file at ~/.config/k-skill/secrets.env with 0600 permissions, and finally prompting the user. Inputs include one or more dates in YYYYMMDD form, a scope selector (--all for every forest, --forest-id for a specific insttId, or --forest-name for a partial name match), an output format (--text or --json), an optional category filter (01 for lodging, 02 for camping, or both), and advanced options such as --week-range, --concurrency for one to five parallel workers, and a session-cache override.
Results are summarized conservatively around the query date and scope, available forest and room or facility names, lodging-versus-camping type, capacity, and any fetch-failure count, stating plainly when no vacancy exists and noting that real availability should be reconfirmed on the site. Rooms whose name contains 예비 are operator-held internal slots not shown to users and are automatically excluded, and duplicate rows for the same forest, date, and room are de-duplicated. The documentation also lists failure modes, safety notes, and maintainer verification steps that need no live account.
No. It is query-only. Reservation submission, payment, captcha solving, queue bypass, and repeated sniping are all explicitly out of scope.
The KSKILL_FORESTTRIP_ID and KSKILL_FORESTTRIP_PASSWORD environment variables, plus Python 3.9+ and the Playwright Chromium browser. A logged-in session with CSRF is required because the lookup screen returns 401 when accessed without authentication.
In order: existing environment variables, then an agent secret vault, then the fallback dotenv file at ~/.config/k-skill/secrets.env (permissions 0600), and finally asking you. The helper itself only reads the two environment variables.
Yes. Use --categories 01 for lodging (숙박), 02 for camping (야영), or 01,02 for both.
Rooms whose name includes 예비 are operator-held internal slots not exposed on the user reservation screen, so the helper excludes them by design. Duplicate rows for the same forest, date, and room are also de-duplicated.
Quick Setup:
.claude/skills/Repository
nomadamas/k-skill