Metadata-Version: 2.5
Name: overscore-cli
Version: 0.1.0
Summary: ovs: the Overscore command line, and the helper a Python model imports
Project-URL: Homepage, https://overscore.tech
Requires-Python: >=3.11
Requires-Dist: duckdb>=1.1
Requires-Dist: keyring>=25
Requires-Dist: requests>=2.31
Description-Content-Type: text/markdown

# overscore-cli

`ovs`, the command line for [Overscore](https://overscore.tech): query your data, build and deploy Python models,
send results to the systems your team works in, from a terminal or from a coding agent like Claude Code.

    uv tool install overscore-cli        # or: pip install overscore-cli
    export OVERSCORE_KEY=ovs_...         # from Settings > Keys in Overscore
    ovs init --dish sales                # this folder becomes a project: overscore.toml, the rules and skills for your agent
    ovs guide                            # every command

`ovs init --for claude|codex|cursor|gemini|agents|all` writes the rules and skills in your agent's layout
(CLAUDE.md and .claude/skills, AGENTS.md, .cursor/rules, GEMINI.md).

## A Python model, start to finish

    ovs pull sales.leads                              # a sample, for local runs
    # write models/lead_scores/model.py and model.toml
    ovs model run lead_scores --local                 # runs here, on the sample
    ovs upload put lead_model files/lead_model.pkl    # the fitted model it reads
    ovs model push lead_scores                        # saved and run in Overscore; prints the run's log
    ovs destination add webhook "Their CRM" https://crm.example.com/in
    ovs sync add scores_out --from lead_scores --key lead_id --to "Their CRM"
    ovs sync run scores_out

A model's script imports its helper: `from overscore_model import rows, read, file, output, log`.

Every command prints JSON when its output is not a terminal (`{"success": true, ...}`, or
`{"success": false, "error": "..."}` with exit code 1), so agents can read it.
