Currently in alpha. Sign up free. Expect a few rough edges.
Docs

Use with Claude Code

Claude Code builds and runs things on your data: a scorer from your data scientist's model, scores back in HubSpot, answers from your tables.

Claude Code works through ovs, the Overscore command line. It pulls a sample of your data, writes the code, runs it on your computer, puts it into Overscore, reads the result, and sets up where the results go. Every step is a command you can read in the terminal, and every run is in Overscore's log. On Free, once the welcome's three messages are used, this is how you ask questions and build.

Set it up once

uv tool install overscore-cli      # or: pip install overscore-cli
ovs login                          # it shows an 8-letter code; open the app's /cli page, type the code, check the company, approve

The /cli page names the company the key will be for and the email you are signed in with, on a phone too. If either is not the one you meant, Switch picks another of your companies, and Sign out lets you sign in with the other email.

Then open the folder it names in Claude Code. ovs login makes one folder per company, ~/Overscore/<company>, with the rules and the steps Claude Code reads (an AGENTS.md, and a guide for each kind of job: models, syncs, sources, metrics, dashboards and more), and ends with the line that names it (an agent reading the answer as JSON gets the same line, as next). Open Claude Code in that folder every time. Logging in again uses the same folder and keeps your files; it never writes into a folder it did not make.

The key stays in your computer's keychain, never in a file. Login reads it back before saying it worked; if the keychain cannot keep it, follow the error to unlock the keychain and try again. If it cannot confirm that the new key was turned off, remove that computer on Settings, Agents before retrying. Settings, Agents lists every computer that is logged in, with a button to log it out, and Settings, Account lists the ones logged in as you; a login also ends by itself after 90 days without use.

Another folder, or another agent

ovs login --into ~/clients/acme      # the company's folder somewhere else
ovs init ~/lead-scoring              # any folder of your own, made the same way

Codex, Cursor and Gemini read the same AGENTS.md; ovs init --for cursor or gemini writes their own layouts instead. A folder is the whole company: when data goes in it names its dataset, the first half of a table's name (quickbooks in quickbooks.invoices), as ovs load quickbooks invoices invoices.csv does, and the first load makes it. No folder decides that for you.

Ask

Score every HubSpot contact with the model in files/lead_model.pkl and send the score back to HubSpot.
Build a table of customers who ordered twice this year and keep it up to date.

The first takes Self-serve or Done for you: on Free a model is SQL kept as a view, and nothing is sent out to HubSpot or anywhere else.

What it will and won't do

  • It runs your model on a sample on your computer before it puts anything into Overscore, and shows you the result. A SQL model it builds on the samples there too (ovs run --local), and a dashboard it looks at as the builder does before pushing it (ovs dashboard look); you can watch the same page with ovs dashboard preview.
  • It can do what you can do, except manage keys: an admin's computer may do what an admin may and a member's what a member may, but no computer logged in with ovs login makes or revokes keys.
  • If your company is set to inside-only, logging in from a computer is off; the built-in assistant is the way in.

Keep a dig as an analysis

Do an analysis of why September sold more than August, and keep it.

It starts an analysis, and from then on every query and metric it runs is kept as a step. It keeps the tables and charts that make the point, then saves the analysis with its conclusion. You open it under Dashboards, Reports, where it can be run again, picked up or shared. ovs pull writes each analysis into your folder as analyses/<name>/: a README with the conclusion and the work, each step's SQL, and each table as a CSV. Change the conclusion there and ovs push keeps it as the next version. Ask it to pick an analysis up and it starts from the record, adding its new work after the old.

All docs · Something wrong on this page? Tell us.