Skip to content

Support xAI Grok CLI (Grok Build) as a session provider #512

Description

@rennzhang

What problem does this solve?

Grok Build (grok, xai-org/grok-build) is xAI's open-source terminal coding agent. Spool currently prepares and reads sessions from Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi — but not Grok Build.

Heavy Grok Build users accumulate a large local session history (in my case ~3 GB under ~/.grok/sessions/) that Spool cannot index, organize, or read. Since Spool's local preparation already covers five agents, Grok Build is the most notable gap: several community tools (agent-hop, claudescope, seshport) have already added parsers for this format, which suggests real demand.

What would the solution look like?

A new parser in packages/core/src/parsers/grok.ts, following the existing per-provider parser pattern. The on-disk format is simple and stable:

  • Sessions live at ~/.grok/sessions/<url-encoded-cwd>/<session-uuid>/
  • chat_history.jsonl — one JSON record per message: {type, content}
  • summary.json — session metadata: agent_name, chat_format_version, created_at / updated_at / last_active_at, current_model_id, num_messages, session_summary, reasoning_effort, etc.
  • updates.jsonl{method, params, timestamp} records carrying per-turn timestamps and token usage

Scope-wise, Link-only visibility (like Gemini CLI / OpenCode / Pi today) seems like the right starting point; native resume could follow later since Grok Build supports grok --resume <session-uuid>.

Prior art that may help: seshport PR #1 is a worked example of adding Grok Build support to a session tool; agent-hop and claudescope also ship parsers for this format.

I'm happy to contribute a PR for this if the direction sounds right.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions