SpaceXAI released Grok Bot today, which is a desktop app and personal agent. I love learning about new products in the AI space, and figured I would write down my first impressions.

TLDR

  • It's conversational with a simple interface, basically like iMessage or Signal.

  • It integrates tightly with Cursor cloud.

  • The memory system is relatively simple and low-customizability.

  • The onboarding is very good.

Walkthrough

The first screen feels clean. OAuth was simple, I used my Cursor company account through Letta.

I like that it seems to be cloud-first:

The onboarding is slick. This screen does a good job at telling users what kinds of things they should be doing -- make a bot that does one thing well.

Integrations/connections are probably the biggest leverage thing you can add to your tool. Grok Bot lists out a ton of different services to connect to. Connecting services is by far the most annoying part of most AI tools, and it seems like Grok is trying to make it very easy.

Next, you create a bot. I like this -- you basically give them a shape, a color, and a name. From a product perspective, this is nice because it provides users a design language they can use to suit their organization/work. For example, you could make all sales-related agents purple. I chose a grey circle and called it Pete.

I like the conversations display here. It's simple to look at, clean, and not unlike Signal. Signal is my preferred interface for my Letta agent, through Letta Channels. I like that the agent initiates the discussion for me -- it's starting by getting through integrations, which are extremely annoying but very good at showing people how powerful AI is once it is done:

Ah this is a slick sign-in flow. Well done to the team:

Grok Bot has very good onboarding. It focuses on the core things immediately:

  1. 1.

    Connecting to external data and tools

  2. 2.

    Providing you a small set of options to select from before you are given open-ended access

I clicked too fast and didn't get a picture, but Grok Bot asked what I wanted to do with Slack now that it was connected. I chose "catch me up on mentions" and it went off to work.

This is a good, succinct overview of recent Slack mentions. I would say it's missing some context that I would have expected it to know, but it again did a good job at giving me four options to select from.

Since we use Linear constantly, I want to see what it'll do if I ask it to follow up on the Linear ticket LET-9788, which is about adding voice transcription to the Letta desktop app.

Grok Bot doesn't yet have access to Linear/GH, but it was able to reconstruct some context using Slack messages. It asked if I wanted to connect to either. Let's do both for now.

Since I clicked both, Grok Bot went ahead and opened a Linear authorization card as well as a small screen to log into GitHub. I'm impressed.

Linear was easy to sign into, took two clicks.

Signing into GitHub

Grok Bot lives in the cloud, and it asked me to sign into GitHub on its computer. It opened a small view into what Grok was seeing, and it provided me very clear instructions about what to do.

Overwhelm

Grok Bot's strictly conversational flow started to break down for me a little bit at this point. I authenticated Linear and GitHub, both of which contain different pieces of information about the task. I would typically expect the agent to examine both GitHub and Linear to help me understand the project the best, but now I have several lagging questions to answer, some of which is outdated -- note the two requests for choices.

I'll ask for it to resolve the merge conflicts on the original pull request I submitted. There have been a lot of changes to the repository since I submitted, so there's lots of tidying to do.

I'm impressed with this -- a few of our team members use Cursor Cloud and have been very impressed with the build quality, so having an "Open in Cursor" button is quite slick. I was able to click this to see the cloud job dispatched by Grok Bot.

While that's running, let me go handle the other pending question. It seems to be dated since I already asked it to handle the merge conflicts. Grok Bot seems to be async by nature, which I think is overall a good pattern, but I can't help but feel like this question should have been invalidated when I answered the first one.

Grok Bot was able to detect that ongoing work was already addressing this, and just re-sent the Cursor cloud link:

It finished, and then asked if I wanted to have it watch the CI or post a status ping to the team about the merge conflict resolution.

Oh, very cool -- it created something called a "routine". The analogue in Letta is Schedules, but I love that they have a clean display in the chat log:

Clicking the "Watch PR 13189 CI" text opens a side panel containing details on the routine:

Very slick UI.

As a side note, I saw that the Cursor agent used Sonnet 4.6, but I don't really understand why -- how was that controlled? I'll ask Pete, my Grok Bot.

Some observations:

  • Pete should really know how models are chosen, or at least have some awareness of how Cursor jobs are dispatched.

  • I got three messages sent but I'm not sure why, I would have preferred one correct answer. Perhaps this is just rendering though, they might render paragraphs as separate message bubbles.

Memory

I think a lot about agent memory and figured I'd pick apart out Grok Bot's memory works. The best way to start is to ask!

Okay, so Grok has:

  • Metadata about me, like my name and where I work

  • A history log of events

  • Something like a scratchpad

This is a common memory pattern, but I want to learn more about how it appears in Grok's context window.

Grok's context window

Context window construction, also called context management, is what makes a good agent good. Letta is fundamentally a context management system, and I want to understand how Grok has chosen to represent the world to the agent. Context management is what determines how the agent's memory works.

I'm trying to understand how the context window is constructed, so I asked for a document that can help me understand what the agent sees:

Yeah, can you send me a text file or HTML file showing me basically what your context window looks like, roughly?

After some back and forth, I got a markdown document that breaks Pete's context window down in to a few chunks:

  1. 1.

    Agent profile. This is information about Pete, what it works on, its name, etc. Core identity type stuff.

  2. 2.

    User metadata. Information about me, my time zone, etc.

  3. 3.

    User profile. Seems to be more detailed information about me, like where I work and my Slack user ID.

  4. 4.

    Memory log. Dated facts in the format - (YYYY-MM-DD) <fact>. A relatively simple approach.

  5. 5.

    Shared used memory. Empty right now, but it seems like Grok bot supports learning across agents.

  6. 6.

    Routines list. Currently active routines -- right now this only contains the CI monitoring job for the pull request we started with.

  7. 7.

    Skill catalog. A list of available agent skills.

  8. 8.

    Conversation history. Recent messages, tagged with a short code like [t5u]. This allows Grok to refer to specific messages in the chat history.

  9. 9.

    Tool results. Grok is calling tools behind the scenes and getting tool results. I can't see any of Grok's tool calls from where I am, they've opted to hide its activity from me.

  10. 10.

    System reminders. Grok has a list of reminders about currently active routines, noting that the CI monitoring routine has not yet triggered. Unclear why there is a routines list and a system reminder, possibly for caching purposes?

Grok was unwilling to share the following with me:

  • Full product policy / safety instructions (long; internal)

  • Full tool JSON schemas (very long; loaded per server when needed)

  • Secrets, tokens, raw credential material

This seems standard, though I will say that I do not like it when I cannot control the agent's prompting.

Closing notes

Overall, decent product experience. The onboarding was the strongest part for me. I bristled a little at feeling like I didn't fully control the prompting/design of the agent, and I didn't quite like that the agent's activity isn't really obvious to me. Tool calls are not displayed to me unless it requires action -- trading transparency away for lowered attention needs.

The actual app is well-built software. Kudos to the team on the release!