openword-player
SKILL.md
OpenWord Player
Read references/session-runbook.md before running a session.
Treat repository README.md as the source of truth for install/startup/API details, and re-check it when commands fail or look outdated.
Session Workflow
- Ask the user which mode to run before gameplay starts.
- Prepare runtime (download/install/start, browser, key setup).
- Branch to human-guided mode or AI REST mode.
- Keep the user involved during play, including AI-driven sessions.
Use this exact mode-selection question:
这局你想怎么进行:你自己玩(我引导)还是我用 REST API 代玩?
If the user does not choose, default to human-guided mode.
Runtime Preparation
- If repository does not exist locally, run:
git clone https://github.com/dinghuanghao/openword.git - Install and start:
npm installnpm run dev - Ensure browser opens
http://127.0.0.1:30000. - Prompt the user to enter
GEMINI_API_KEYin the key modal or Settings. - Confirm the game can reach interactive state before sending turns.
Human-Guided Mode
- Confirm user can input actions in the browser.
- Help user craft opening world prompt and style.
- For each turn, provide a short recap and 3 action options with different risk/reward.
- Let the user pick or rewrite the action.
- Remind controls only when relevant:
机器人按钮toggles built-in Auto Player,Escexits auto mode/panels, Settings hasConnect API Bridge.
AI REST Mode
- Ensure one browser tab is online at
http://127.0.0.1:30000. - In Settings, ensure
Connect API Bridgeis connected. - Check server health (
GET /health). - Start or resume game via REST (
create_gameorload_game). - Loop:
call
get_current_game_state-> choose next action -> calldo_action. - Use
last_scene_image_pathto share scene visuals with the user.
Use scripts/openword_rest.sh first (curl-only, Python-free).
REST API Schema
| Method | Path | Body | Success fields |
|---|---|---|---|
GET |
/health |
none | status, bridge_online |
POST |
/api/create_game |
{ "description": string, "style": string } |
status, game_id |
GET |
/api/show_history_games |
none | status, games |
POST |
/api/load_game |
{ "game_id": string } |
status |
GET |
/api/get_current_game_state |
none | status, game_id, world_view, narrative, player_profile, last_scene_image_path |
POST |
/api/do_action |
{ "description": string } |
status, game_id, world_view, narrative, player_profile, last_scene_image_path |
Interaction Contract
Never run long silent streaks. Keep the user in the loop even when AI plays.
- Share updates at least every 1-2 turns.
- At meaningful branch points, ask user preference before committing.
- Surface scene image paths and display scene images when possible.
- Highlight interesting moments: scene changes, risky decisions, major rewards, unexpected twists.
Failure Handling
NO_BRIDGE: ask user to open game tab and enableConnect API Bridge.- Bridge occupied: another tab owns the bridge; disconnect that tab first.
- Missing key/model errors: ask user to configure
GEMINI_API_KEY. - Slow/timeout calls: increase timeout, avoid overlapping requests.
Weekly Installs
3
Repository
dinghuanghao/openwordGitHub Stars
32
First Seen
9 days ago
Security Audits
Installed on
amp3
cline3
opencode3
cursor3
kimi-cli3
codex3