ParetoStackpareto-stackdocshpc-labs

The assistant (pareto)

pareto is a chat prompt in your terminal. You type a request or a slash command; it reads the project, shows the steps it will take, asks once before anything that runs your program, and prints the results as text plots. It does the same work as the other commands (analyze, plan, run, search, apply), in one place, and can optionally ask an AI model for settings advice. It does not need an AI model, and it never needs an API key.

Start it

Where Command
Windows (installer) pareto in any terminal, or Start menu > ParetoStack > ParetoStack Command Prompt
Windows (zip) pareto (the pareto.cmd of the package)
Linux, DGX ./pareto from the package folder, or pareto once it is on your PATH
Any paretostack chat (the same program)

pareto PROJECT_FOLDER opens a project (a folder with a paretostack.yaml); with no folder it uses the current one if it has a paretostack.yaml, else the word_filter sample. In a release package the chat is a licensed command, like run: install your license first (paretostack license install license.json).

Models and keys

Choice What it is Needs What leaves your machine
none rule-based advice only nothing nothing
local a model on your own computer (Ollama), installed by install.sh --with-models or install.cmd -WithModels the local model nothing
claude / anthropic Claude your Anthropic key, or Claude Code if it is installed on the machine and signed in a short summary, only after you say yes
openai OpenAI your OpenAI key a short summary, only after you say yes

auto (the default) uses the local model if there is one, else rules only. A cloud model is used only when you pick it (--model claude when you start, or /model claude in the chat). The banner tells you which is in use ("model: none (rule-based advice only)").

Keys. paretostack keys setup (or keys set anthropic, keys set openai) stores a key in a private per-user file; it is never shown again (only its last four characters), and keys test only lists the provider's models. keys status shows what is set; keys remove anthropic deletes one. An environment variable (ANTHROPIC_API_KEY, OPENAI_API_KEY) is used instead of the file when it is set. Without any key, the cloud choices simply say they are not available and the chat carries on with rules.

What a cloud model is sent

Before the first send, the chat prints exactly what the model would receive and asks "Send it to claude?". It is a summary of facts and counts, never your source code:

  • the machine: operating system, architecture, cores, RAM, processor features, the native target, which compilers exist;
  • the project: its name, engine version, accuracy setting, target, the names of the processor targets this machine can run, languages, lines of code, whether it has a run recipe, the profile's wall time;
  • the plan: up to 20 items with their id, title, number of places, number in hot code, whether the change is bit-exact, the version it needs, and its ceiling;
  • for a plain request typed in words, also the names of the projects the chat knows (the samples and the current project).

The Claude backend is started in an empty folder with read-only tools, so it cannot read your project either. Say no and nothing is sent; the advice then comes from the rules.

Commands

Command What it does
/arch this machine and the processor targets
/project [PATH] show or change the project
/samples, /examples [NAME] the sample projects (/examples copy NAME DIR writes one)
/plan [NAME or PATH] what would change (nothing is run)
/run [NAME or PATH] time it, change a copy, time it again, check the output (asks first: it runs your command)
/search [BUDGET] the autonomous search: many candidates (asks first)
/report the result card of the last run
/patch the change as a patch file (the first lines are shown)
/plot [all] a text plot of the speed-ups, for this project or for every sample you have run
/suggest settings advice: version, accuracy, target, which items, search or not
/apply write the last suggestion's settings into paretostack.yaml (asks first)
/config target=NAME the per-user default processor target
/model [auto, local, claude, anthropic, openai, none] which model advises
/explain why the project got the result it got, from the measured facts
/clear, /quit

Anything else is a plain request: "optimize word_filter and show me the plot", "why is text_stats not faster?", "compare all samples". The chat shows the steps it read from your words and asks once before it runs your program; a connected model helps with unusual wording.

What it changes

Your files are not changed by /plan, /run, /search, /report, /plot or /explain. /patch writes a patch file. /apply writes settings into your project's paretostack.yaml, after asking. Applying a verified change to your code is paretostack apply, with the options described in the command line reference.

Scripts

pareto --script FILE reads the lines to type from a file, and --yes answers the questions (running your command, sending a summary to a cloud model) with yes. Use --yes only in scripts you trust: with --model none or local nothing is sent anywhere.

A short session

> /plan word_filter
● plan(word_filter)
  ... what would change, and how many places (nothing is run)
> /run word_filter
  This runs the project's own command several times (it never changes your files). Continue? y
  ... verdict: pass, identical output, 21x faster
> /plot
  ... a text plot of the speed-up