一键导入
emulator-env
Start/stop/status the local test environment — Firebase Emulator Suite + dev-status dashboard (port 3333). Triggers include "에뮬레이터 띄워/내려/상태".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Start/stop/status the local test environment — Firebase Emulator Suite + dev-status dashboard (port 3333). Triggers include "에뮬레이터 띄워/내려/상태".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | emulator-env |
| description | Start/stop/status the local test environment — Firebase Emulator Suite + dev-status dashboard (port 3333). Triggers include "에뮬레이터 띄워/내려/상태". |
| user_invocable | true |
Manage the local test environment: Firebase Emulator Suite and the dev-status.js monitoring dashboard. Start background processes from the main session (background Bash) so their handles stay owned by this session — logs and shutdown remain manageable later.
up: start environment (reuse if already running)down: stop emulator + dashboardstatus: report port status only, change nothing| Service | Port |
|---|---|
| Firebase Auth emulator | 9099 |
| Functions emulator | 5001 |
| Firestore emulator | 8080 |
| Emulator UI | 4000 |
| Emulator Hub | 4400 |
| dev-status dashboard | 3333 |
.env.test exists[ -f functions/secrets/.env.test ] || cp functions/secrets/.env.test.example functions/secrets/.env.test
lsof -i :5001 -i :8080 -i :9099 -sTCP:LISTEN
lsof -ti :<port> | xargs kill), then continue to step 3.Run as a background Bash process (the script internally moves to repo root where firebase.json lives):
cd functions && npm run emulator
If port 3333 is not listening (lsof -i :3333 -sTCP:LISTEN), run as a background Bash process from the repo root:
node dev-status.js
Poll until 5001 / 8080 / 9099 / 3333 all listen (single bash retry loop, ~60s budget):
for i in $(seq 1 30); do
up=$(for p in 5001 8080 9099 3333; do lsof -ti :$p -sTCP:LISTEN >/dev/null && echo $p; done | wc -l)
[ "$up" -ge 4 ] && echo ready && break
sleep 2
done
On timeout: read the emulator background process output and report the cause (common: port already in use, firebase CLI missing, .env.test malformed).
Collect PIDs across all managed ports and SIGTERM:
for p in 9099 5001 8080 4000 4400 3333; do lsof -ti :$p -sTCP:LISTEN; done | sort -u | xargs kill 2>/dev/null
Wait a moment, then verify all ports are freed (rerun the lsof check; if something survives, report the PID instead of force-killing). Report the result.
Report each port's state as a table, change nothing:
for p in 9099 5001 8080 4000 4400 3333; do
pid=$(lsof -ti :$p -sTCP:LISTEN | head -1)
echo "$p ${pid:-free}"
done
npm run emulator = cd .. && firebase emulators:start — full suite (auth + functions + firestore), defined in functions/package.json.dev-status.js, repo root) monitors all service ports and can kill processes from the browser.emulator-test skill.