2.1 KiB
2.1 KiB
GrokBoy product notes
North star: a local Grok Bot–like agent — thin CLI core, tool-using ReAct loop, optional Playwright DOM browser (not screenshot-first). GrokBoy is the sole main line; LazyBoy is reference only (no fork).
Done (P0–P3)
| Phase | What |
|---|---|
| P0 | Streaming chat CLI (grokboy chat), xAI/OpenAI-compatible API |
| P1 | Tools + ReAct (shell, files), sessions under ~/.grokboy/sessions/ |
| P2 | Completion contract (report_done / report_blocked), loop guard, context truncation |
| P3 | Optional Playwright DOM tools: navigate / snapshot / click / type / eval (fail-closed) |
P4 — Human handoff (this slice)
Auth walls (login, OTP, captcha) often cannot be automated safely. P4 adds browser_handoff:
- Agent calls
browser_handoffwith areason(optionaltimeout_secs). - Helper ensures Chromium is headed (visible); may relaunch from headless and restore URL.
- Terminal prints bilingual (繁中 + English) instructions.
- Loop blocks until you press Enter (continue) or type
abort, or timeout → fail-closed blocked. - On resume, a DOM snapshot is returned so the model can continue.
Env
GROKBOY_BROWSER_HEADED=1— always launch Chromium headed (recommended when handoff is likely).GROKBOY_HANDOFF_AUTO=1— auto-resume (tests / CI);abortto auto-abort.
Non-goals (this slice)
- Multi-agent orchestration
- Desktop accessibility / native UI automation
- External connectors / SaaS integrations
- Forking LazyBoy or Codex
Acceptance (summary)
See docs/ACCEPTANCE.md section P4. Short list:
browser_handoffregistered and wired into the agent loop- Headed Chromium for handoff; JSONL daemon keeps state within one run when already headed
- Bilingual terminal prompt; Enter / abort / timeout fail-closed
- Post-resume DOM snapshot as tool result
- Offline
cargo test/grokboy smokewithout API key or interactive stdin
Roadmap hint (later)
P5+ may deepen persistence, richer session UX, or more tools — still thin core, DOM-first browser.