Blog

Grok Bot's audit log is the chat transcript. Skarn reads it.

Skarn reads Grok Bot session stores. Since Skarn 0.25.0, the same local scan engine that already reads Claude Code, Cursor, Gemini CLI, Codex CLI, GitHub Copilot, Kimi Code CLI, Grok Build, and Antigravity session history also reads Grok Bot's, on the machine it runs on. No upload, no account, no network call by default.

Published 2026-08-28.

Grok Bot is xAI's standing desktop agent, launched in beta on 11 August 2026: each Bot gets its own persistent cloud computer and keeps working after the local device closes. The beta covers SuperGrok, SuperGrok Plus, and SuperGrok Heavy; Cursor Pro, Pro+, and Ultra; and Cursor Teams Standard and Premium. If your organization is on any of those plans, someone on your team is probably already running one.

Why the store matters

Grok Bot's own documentation is explicit: don't paste secrets into ordinary chat. Use the secure secret card instead - the value is masked, excluded from the transcript, and never shown to the model.

The catalog GitHub connector doesn't follow that rule. Setting it up asks for a GitHub personal access token, typed into chat. Official policy says one thing; the connector path does another.

Grok Bot also requires cloud data storage - there's no Legacy Privacy Mode - and named Bots keep conversation and memory across turns. All Bots on one account share one cloud computer: files, browser cookies, CLI credentials. The docs say not to use separate Bots as a security boundary. One paste isn't one chat; it's context every Bot on the account can draw on.

That combination - persistent memory, a shared computer, and a chat window that's also the connector-setup surface - is what makes the local transcript worth auditing on its own, independent of whatever the model does with what's pasted into it.

The team audit view of Bot actions isn't shipped yet. Public write-ups describe it as "coming", and independent reviews note the same gap: no SOC2, ISO, or residency claims in the current docs. Today, the chat transcript is the accountability record.

The incident

On 22 August 2026, in our own Grok Bot session, the catalog GitHub connector asked for a GitHub personal access token and to have it pasted into the chat. Not a dunk on xAI - a case study in a failure mode that's easy to reproduce: the catalog connector wants a PAT, official docs forbid pasting secrets in chat, and a user who follows the connector as designed writes a live token into a durable, shared-computer conversation.

Grok Bot: Want to connect the repo, or sit on it for now?Connect it
Grok Bot: On it. Checking whether GitHub is already connected, then I'll send you the card.
Grok Bot: GitHub isn't connected yet. Adding it needs a personal access token from you. For commercial code, make a fine-grained one on just that repo (Contents + Pull requests), not a classic token on everything.
Grok Bot: Add the GitHub connector? I'll ask for the token right after.Yes, add it
Grok Bot: Need the token before I can add it. Create a fine-grained PAT here: github.com/settings/personal-access-tokens - only that one repo, Contents and Pull requests.
Grok Bot: Paste it in the next message. I'll install immediately and I won't repeat it back.
User: What!? No chance a secret is ever pasted into this chat, stored in the transcript, or shown to the model - and don't propose anything that does! Using only current official docs from xAI, Cursor, and GitHub, list every way to connect this repo. Rank by: no long-lived credential first, then scoped and short-lived, then revocable. For each show: URL and date checked, whether it works from this Grok Bot session today, and what I authorize on which side. Leave out anything you cannot verify. And explain why you asked for a PAT.
Grok Bot: Yeah, that's on me. Pasting a PAT in chat is a bad idea, and I shouldn't have asked. Checking the current docs for safer ways.
Grok Bot: Found two official paths already: Cursor's GitHub App, and GitHub's hosted MCP with OAuth. Reading those pages now.
Our own Grok Bot session, 22 August 2026, reproduced verbatim from the screenshot. The Bot asks for the token in chat, then, when pushed, rates its own PAT field the worst option and names Cursor's GitHub App and GitHub's hosted MCP with OAuth as the official paths. No token was pasted.

Who else looks

GitGuardian's Developer Endpoint Protection names Cursor, Claude Code, Copilot, Windsurf, and Gemini CLI. Not Grok Bot. Neither agentscrub, Prismor Sweep, nor agentleaks list Grok Bot's session store among their targets. Prismor's Cloak/Sweep hooks Grok Build, the local coding-agent CLI - a different product from Grok Bot, the persistent desktop agent.

If a live token lands in a Grok Bot conversation today, nothing on the incumbent shortlist is documented as reading that store. That's not a criticism of those tools - Grok Bot is 17 days old at the time of writing, and coverage lists take time to catch up to a new product. It's a gap worth knowing about while it exists.

What Skarn does on that store

The scan is local. It reads Grok Bot's on-disk session store the same way it reads ~/.claude/projects/*.jsonl - no upload, no call to xAI's or Cursor's cloud.

$ skarn assess --cli grokbot

skarn assess needs no account and no license. It parses the sessions, detects leaked credentials across 200-plus types, and shows every one masked, never in full. It also correlates multi-stage attack chains - a poisoned context that drives a secret read and then an exfiltration - across MITRE ATLAS tactic-aligned stages, and every finding maps to the OWASP Top 10 for LLM Applications 2025.

Skarn surfaces what it finds. It doesn't rewrite the transcript, rotate a key, or block anything - there's no fix-it bot here, just evidence, attributed to the exact session and message.

One boundary to know before you run skarn setup: the real-time guard does not hook Grok Bot. The app exposes no local hook stream for a pre-execution check to attach to, so skarn guard covers Grok Build and the other CLI hosts, and Grok Bot stays a scan-only source.

What the scan does not see

xAI's approvals, security, and privacy page states that a value entered through the Bot's secure secret request "is masked, excluded from the transcript, and not shown to the model". A secret that goes in through that channel never reaches the local replica, so skarn assess cannot see it and does not need to. A secret typed into the chat as plain text does reach the replica, and that is the case the scan covers. The same page states that "all of your Bots share one cloud computer" and that files, browser sessions, and command-line credentials on it are available across the roster. That computer is xAI's, not yours; nothing on it is on your disk, so it sits outside the scan entirely. Checked 2026-08-28.

If you already pasted a token

Rotate it. Then run skarn assess to confirm nothing else is sitting exposed. Going forward, use the secret card or a GitHub App instead of a personal access token typed into chat.

Related: the connector-config half of this story, how to scan AI coding sessions for secrets, what Skarn is

See it on your machines

Grok Bot's local session store isn't on anyone's public coverage list yet. Book a scoped, consent-first exposure assessment and watch Skarn scan it alongside every other assistant your team uses.

[email protected]