Output Charts

Blog

One prompt, one live dashboard: let your AI agent build it and keep it current

Paste one line into Claude Code, Cursor, Grok or any agent that can fetch a URL. It builds a published dashboard, hands you the link, and keeps the numbers fresh. No data connections.

Here is the whole setup:

Read https://outputcharts.com/llms.txt and build me a dashboard of this.

Paste that into Claude Code, Cursor, Grok or your own agent. Then add what you want to see: a CSV, a few numbers, or a sentence like "this month's AI spend by day and by model". The agent comes back with a link to a published dashboard. When the numbers change, it sends the new ones, and the same link shows them.

You don't need to connect a database, fill in a setup wizard, or learn a chart editor. You don't hand over any credentials either. This post covers what happens when you paste that line, what people build with it, how the dashboard stays current, and why your data stays where it is.

Why one line is enough

llms.txt is a short file written for agents rather than people. It says what Output Charts is and how to call it, and it links to the full instructions: a skill file with four complete worked examples, the agent API docs, and an MCP server. An agent that reads it has everything it needs to finish the job without asking you how the API works.

So it doesn't matter much which agent you use. Anything that can fetch a URL and make an HTTP request can do it. Agents that work better with tools can use the MCP server, which offers the same API as tools. The agent API docs walk through adding it as a connector in Claude, ChatGPT and Grok.

The agent does three things:

  1. It opens your account, if you don't have one. One call with your email address, no key needed. The account starts a seven-day Solo trial with no card, and you get an email with a link that makes the account yours.
  2. It builds the dashboard in one call. All the visuals, their sizes and the publish step go in a single request, and the answer carries the public link.
  3. It keeps the dashboard current. Whenever the numbers change, it pushes new ones to the same dashboard.

The live session on our homepage is Claude Code, a usage export and nothing else. It took 2.2 seconds from the first call to the link.

Walkthrough: from a CSV to a live link

Say you have usage.csv, an export of your AI coding tool's usage, and you want to see where the money goes.

1. Open your agent where it can see the file and paste:

Read https://outputcharts.com/llms.txt and build me a dashboard of this month's
AI spend by day and by model. The export is usage.csv.

2. Give it your email when it asks. If you don't have an account yet, the agent signs you up. It keeps the key the sign-up returns for the rest of the session and gives you a claim link. The same link arrives by email as "An AI agent set up Output Charts for you."

3. Let it pick the visuals. For this export a sensible agent makes two KPIs (spend this month and the share of input served from the prompt cache), a line of daily cost by model and a bar of cost by model. You don't have to know there are eleven visual types or what JSON each one takes. The agent reads that from the schema. If it sends something that doesn't fit, the API names the field, says how to fix it and shows a valid example, and nothing gets half-built.

4. Open the link. The answer to that one call is the dashboard's public address. It opens in any browser, for anyone you give it to, with no account needed.

5. Claim the account. Click the link in the email and sign in with Google or set a password. That's important: an account nobody claims or pays for is deleted 30 days after sign-up, dashboards included.

Already have an account? Make a key under Account → API keys and give it to the agent, for example as an environment variable named OC_KEY. The agent skips the sign-up and goes straight to step 3.

What people put on these dashboards

The best candidates are numbers you look at more than once, that already exist in something the agent can run or read. A few examples:

  • AI coding spend. Daily cost by model and cache share, from a usage export. That's the example on the homepage, and you can open the live page.
  • A pull request queue. The oldest open PR, the count and a table of what's waiting for review, refreshed every hour by a GitHub Actions workflow running gh pr list.
  • A client's page speed report. Load times and page weight before and after the fixes, current after every Lighthouse run. On Solo, the public page shows the dashboard alone with no Output Charts bar, so the link you send the client looks like your report.
  • Flow metrics for coding agents. Lead time, work in progress and what's waiting on a person, computed from the agents' own logs.
  • The everyday ones. Yesterday's signups from a nightly cron job, MRR from a Stripe webhook, build time by branch from CI, stock by location from a spreadsheet script.

The first four are worked examples in the skill file, valid as written, so an agent can adapt one to your data instead of starting from scratch. The gallery has more dashboards built the same way.

There's a clear limit, too. If the answer is a one-off question ("what did we spend yesterday?"), you don't need a dashboard; a reply in chat is enough. A dashboard pays off when the same question comes back every day.

Live updates: the link never changes

A dashboard an AI made that never changes is just a screenshot. The point here is that the page stays current.

Every visual holds one JSON document, and the agent, or a script it writes, replaces that document when the numbers change. Open copies of the dashboard check for new data every 15 seconds, so the office TV, the tab your client left open and the link pinned in your team channel all catch up without anyone reloading. The address is the same as the day it was made.

You can ask for an update in plain words, in the same session or a later one:

usage.csv has this week's rows now. Update the AI coding spend dashboard:
append the new days to the daily cost line, keep the last 60 days,
and refresh the two KPIs and the cost-by-model bar.

The agent has three ways to do that, and picks the one that fits:

  • Replace a visual. Send its whole new document, for example a KPI with today's number.
  • Append rows. Add new days to the end of a line chart or a table, with an optional cap such as "keep the last 90" so the oldest drop off.
  • Update several at once. One request carries a new document for each visual, keyed by the short name the agent gave it when it built the dashboard.

The agent doesn't need to remember anything between sessions. It gives the dashboard and every visual a name of its own (a ref). If it runs the same build again, it gets the existing dashboard back instead of a duplicate, and it can look the dashboard up by that name next time.

It also doesn't have to hand-craft JSON every time. Updates take CSV as well, and numbers written like "$12,840", "1,204" or "25%" are read as numbers. Dates and labels are shown exactly as sent.

Take the agent out of the loop

Asking your agent works fine for a weekly update. For hourly or nightly numbers, have the agent write the job once and let the job do the pushing. Tell it:

Write a script that recomputes these numbers from usage.csv and pushes them to
the dashboard. Make a push-only key bound to this dashboard for it, and set it
up to run every night at 6 AM.

The agent can make a narrower key for that job, one that can only send data to that one dashboard. That's the key that goes in the crontab or the repository secret, while the full key stays with you. If you'd rather write the job yourself, the posts on pushing with cURL and from Python show the request.

No data connections, no credentials

Most dashboard tools start by asking for access to your data: a database connection, a service account, an API token for your billing system, a firewall rule. Then their servers read your tables on a schedule.

Output Charts never connects to anything of yours. It only receives the documents it's sent. That changes what you have to trust:

  • No credentials leave your side. There's no database password, warehouse login or Stripe key to give us, because we never go and fetch anything.
  • You choose the numbers. The agent does the summing where your data already is, on your machine or in your CI job, and sends the totals. "$41.30 on model-a this month" goes to the dashboard; the raw usage log, customer names and row-level records stay where they are. If a column shouldn't be on the page, tell the agent to leave it out.
  • The key only touches dashboards. The worst a leaked push key can do is write numbers to one dashboard, and you can revoke it any time without touching anything else.
  • Nothing to keep in sync. No connector to break when a schema changes, and no nightly extract to babysit.

Two honest caveats. First, your agent reads whatever you point it at, so the usual rules about what you share with your AI tool still apply. Output Charts only ever sees what the agent sends. Second, a published page opens for anyone who has the link. It isn't indexed by search engines unless you choose to list it in the gallery, but treat it as public: publish totals you'd be fine seeing in the wild. For anything more private, keep the dashboard unpublished, or share it view-only by email with the people who should see it.

Things to know

  • The agent features are part of Solo. Solo is $10 a month or $96 a year: up to 20 dashboards, API push with up to five keys, and Format with AI. Every new account starts with seven days of Solo and no card. Free is one dashboard you fill by pasting JSON. Pricing has the full comparison.
  • When the trial ends, nothing is lost. Dashboards stay readable, public pages stay up and keys pause. The agent gets an upgrade link to hand you, and its calls work again as soon as you pay.
  • The limits are generous for this kind of page. Up to 24 visuals per dashboard, 500 rows per chart, 200 per table, 100 KB per document and 60 calls a minute per key. If a job pushes on every tick, have it push once per run instead.
  • The dashboard draws what it's sent. It won't recompute your totals or catch a bad join. Ask the agent to show you the numbers before it pushes them, at least the first time.

Try it

Copy the line, open your agent, and point it at something you already check by hand every week:

Read https://outputcharts.com/llms.txt and build me a dashboard of this.

You get a live link back in the same conversation, and it stays the same link from then on. Prefer to start by hand? Create a free dashboard and paste JSON, or try the shapes on JSON to chart first.

More from the blog