Analytics For AI Agents: The First Web Analytics Tool With a CLI

Eduard CristeaFounder, Eyepup7 min read

Web analytics has had exactly one user persona for two decades: a human looking at a chart. That's now wrong. In 2026, AI agents (Claude Code, Cursor, ChatGPT, Aider) are part of the daily product workflow — and they're blind to your live site. The clumsy workaround is to copy-paste a dashboard screenshot into the chat. The right answer is an analytics tool that exposes its data the way an agent expects: a CLI the agent can call directly. Eyepup ships exactly that, alongside the dashboard.

Key takeaways

  • AI agents are now a first-class user persona for analytics — not a future one. They need structured data they can fetch, not pixels they have to OCR.
  • Eyepup ships a CLI (eyepup …) alongside the dashboard. Same per-visitor dossier in both surfaces.
  • Any AI coding assistant that can run shell commands can call the CLI — no plugin, no protocol, no copy-paste.
  • This unlocks workflows like: an AI agent proposes a UI fix, then verifies the fix worked by querying the next 10 visitors' dossiers — without a human in the middle.
  • No other web analytics tool does this. PostHog, Hotjar, FullStory, Mixpanel, Amplitude — all are dashboard-only with optional REST APIs that no AI agent natively knows how to use.

The status quo: AI agents are blind to your site

A typical 2026 dev workflow:

Human:     "I think the pricing page is broken on mobile."
Claude:    "Want me to look at the code?"
Human:     "Yeah, but also can you check what real visitors are doing?"
Claude:    "I can read your code. I can't see your live site analytics."
Human:     [opens Hotjar, watches 5 sessions, copies a screenshot]
Human:     "Here's a screenshot of the funnel. What do you think?"
Claude:    [reads screenshot, hallucinates 30% of the numbers]

That's the gap. Claude can read the code. Claude can't read the analytics. The human becomes the lossy translation layer.

The fix: give the agent a way to fetch the analytics directly. Not a screenshot, not a chart, but structured per-visitor data the agent can reason over. The lowest-friction surface for that is a CLI — because every AI coding assistant already knows how to run bash.

What Eyepup ships for AI agents

Two surfaces, same per-visitor dossier:

1. The CLI

Install once, run from any terminal that an AI agent has access to:

$ eyepup login
✓ Logged in as eduard@eyepup.com (team: Eyepup)

$ eyepup visitors --recent 24h --filter "blocked-by:price"
17 visitors. Top pattern: hovered annual/monthly toggle, never clicked.

$ eyepup dossier 0xae1b
Visitor 0xae1b… landed on /pricing from a Reddit referral.
Spent 92s on the page, hovered the annual toggle 3× without
clicking it, opened the FAQ once, scrolled to the bottom, then
back to the hero CTA, then left.

  Blocked-by:    price uncertainty (medium confidence)
  Suggested fix: surface the annualized price next to the monthly
                 price by default
  Evidence:      /api/evidence-video/<sid>.mp4 (28s)

$ eyepup patterns --week-over-week
Top friction patterns this week:
  ▲ +12  price uncertainty   (47 visitors)
  ▼  -3  form length          (12 visitors)
  ▲  +5  mobile CTA hidden    (8 visitors)

The CLI is the surface every AI coding agent already knows how to use. Claude Code, Cursor, Zed, Aider, Continue, plain ChatGPT-with-shell — all of them can run shell commands. They don't need a custom integration. They just call the CLI.

2. The dashboard (still)

For humans, the dashboard is the same as ever — visitor list, dossier view, friction patterns, "what the AI saw" video panel. The point of the CLI isn't to replace the dashboard; it's to give agents the same access that humans have always had.

Workflows this unlocks

Workflow 1 — agent proposes a fix and verifies it

Human:    "The pricing page bounce is up 8% week over week."
Claude:   $ eyepup patterns --since 7d
          → 47 visitors blocked by 'price uncertainty' — they hover
            the annual toggle without clicking. Let me look at the code.
Claude:   [reads pricing page source]
Claude:   "I'll change the default to show annual price + show
          monthly as the alternative. Here's the diff."
Human:    "Ship it."
[Claude commits, deploys]
Claude:   [next day]
          $ eyepup patterns --since 24h
          → The pattern dropped to 6 visitors today. Bounce is back
            to baseline. Closing the loop.

That's a loop the human used to be in the middle of. The agent now closes it.

Workflow 2 — pre-launch sanity check

Before shipping a change, the agent checks the current state of friction:

Claude:   [before deploying] "Let me confirm the current friction
           patterns so we have a baseline."
Claude:   $ eyepup patterns --since 30d
          → Baseline: 12 visitors/week with 'mobile CTA hidden'.
            After this deploy, I'll re-check in 24h.

Workflow 3 — debug a customer complaint

A customer says "I couldn't sign up." The agent:

Human:    "Customer complaint from sarah@acme.com. Can you look?"
Claude:   $ eyepup visitors --filter email:sarah@acme.com
          → Found her. Two sessions in the last 24h.
Claude:   $ eyepup dossier <her-id>
          → She tried to sign up at 14:32. Reached the email field,
            filled it in, hit Next — and the form silently failed
            because the company-size dropdown was required but not
            visible. Bug confirmed in the code at /signup line 84.

This is the workflow that justifies the whole architecture. A support workflow that used to take 30 minutes and three Slack messages now takes 90 seconds because the agent has eyes.

Why no other tool does this

Web analytics tools were designed for a 2010-era assumption: a human marketer/PM/founder sits down at a dashboard. The data model and APIs reflect that. Most analytics tools have a REST API — but the API is shaped like "fetch a chart's data" rather than "give me a per-visitor narrative." It's not LLM-friendly out of the box.

PostHog comes closest. They have a great public API and they recently shipped early API-driven AI tooling. But the data model is event-shaped, not narrative-shaped. An LLM gets back rows of events; it has to do the interpretation work itself, every time. That's expensive and slow.

The Eyepup difference is that the interpretation has already happened — the dossier is the narrative. The agent gets back structured prose plus structured tags ("blocked-by: price uncertainty"). It can act on that without re-interpreting raw events.

When this matters most

You'll feel the difference most in three situations:

  1. Small teams. Below 10 people, every minute the founder spends ferrying screenshots between Hotjar and Claude is a minute not spent shipping. Direct agent access to analytics is multiplicative on output.
  2. Customer support. "Why couldn't this customer sign up?" used to be a 30-minute investigation. With agent-readable analytics, it's a 90-second tool call.
  3. Continuous deployment. Teams that deploy 10× per day need verification 10× per day. The agent that ships the change can verify it landed without breaking analytics — if the agent can read the analytics.

When this matters less

A few honest caveats:

  • If your team is enterprise (200+ people), procurement and security review pace beat this advantage.
  • If your AI usage is mostly content generation (not coding/product), agent-readable analytics doesn't move your day-to-day.
  • If your conversion problem is upstream of the website (paid ad targeting, ICP fit), no amount of agent-readable analytics fixes it.

Frequently asked questions

What's the difference between an analytics CLI and just an API?

An API works for programs that have been written to call it. A CLI works for any AI agent that can run shell commands — which is most of them, by default. The CLI is the lowest-friction surface for agent integration: no plugin to install, no protocol to learn, no API client to wire up.

Can my AI agent actually call the CLI?

Yes — Claude Code, Cursor, Zed, Aider, Continue, and any other AI coding assistant with shell access can run eyepup … commands directly. No special integration needed. The agent treats it like any other CLI tool — git, npm, vercel, eyepup.

Can I use the Eyepup CLI without the dashboard?

Yes. The CLI is independent. You can run a sub-account purely through eyepup … commands. Most users use both — the dashboard for browsing, the CLI for agent access.

What can my AI agent actually do through the CLI?

List visitors with filters, fetch a per-visitor dossier (the AI verdict + the evidence video URL), list friction patterns with week-over-week deltas, fetch funnel health, and a few admin commands (whoami, list teams). The full surface area expands as the dashboard does.

Can my AI agent see customer data?

Yes — that's the point. Eyepup respects the same RBAC and excluded-distinct-id rules in the CLI that the dashboard uses. If the human running the agent is allowed to see the data, so is the agent.

How is this different from PostHog's API?

PostHog's API exposes raw events and queries. Eyepup's CLI exposes pre-interpreted dossiers — the AI verdict has already been written by a server-side multimodal LLM watching the session video. Different unit of work: the agent acts on a narrative, not on raw event rows.

Related reads