Run sequential philosophical experiments using local Ollama models as fresh OpenCode agents. Paseo hosts each session for remote monitoring; each directory under experiments/ carries one problem and its accepted argument between otherwise independent models.
- Install dependencies with
npm install. - Create an experiment with
npm run experiment -- new <slug>. - Edit
experiments/<slug>/problem.md. - Adjust the shared model order or roles in
experiment.jsonif desired. - Check the selected experiment with
npm run experiment -- status.
The configured models are already installed in this machine's Ollama library. New OpenCode sessions load the project-local opencode.json, which makes them selectable without changing the global OpenCode configuration.
Create and automatically select a new experiment:
npm run experiment -- new personal-identity --name "Personal Identity"List all chains or switch the selected chain:
npm run experiment -- list
npm run experiment -- use simulation-problemMost commands operate on the selected experiment. Use --experiment <slug> to target another chain without changing the selection:
npm run experiment -- status --experiment personal-identityThe first completed chain is preserved under experiments/simulation-problem/.
npm run experiment -- runThe command creates an agent in the existing Paseo philosophy workspace, waits for the response, saves it under the selected experiment's rounds/, asks Ollama to unload the model, and verifies the model is absent from Ollama's process list. The Paseo session remains available for review.
For fully remote operation, open a terminal tab in that same Paseo workspace and run these commands there. The terminal controls the state machine while each generated agent appears as its own reviewable Paseo session.
If the terminal disconnects while the agent continues in Paseo, reconnect and run:
npm run experiment -- collectIf a provider finishes without a usable answer, inspect its preserved Paseo session and reset the failed attempt with:
npm run experiment -- retryThis increments the attempt number and returns to ready; it still does not launch another model.
Accept the response as-is:
npm run experiment -- acceptAccept it with comments that the next model will receive:
npm run experiment -- accept --notes "Keep the distinction in section two, but test its second premise."For longer comments, write a Markdown file and use --notes-file PATH. Rejecting preserves the attempt but keeps the same round number:
npm run experiment -- reject --notes "This does not address the stipulated counterexample."Neither decision starts another model. After reviewing the resulting status, explicitly run npm run experiment -- run again.
Use another installed model or role for one round with --model and --role:
npm run experiment -- run --model ollama/gpt-oss:20b --role respondready: a human may start one round.running: a Paseo agent is active or waiting to be collected.awaiting_review: output is saved and Ollama verified the unload.blocked_unload: output is saved, but GPU unloading was not verified. Resolve Ollama and runnpm run experiment -- unload.failed: the Paseo turn failed and requires inspection.complete: the experiment was stopped.
Check state at any time with npm run experiment -- status. Each experiment has its own problem.md, state.json, rounds/, and reviews/. Raw round files and reviews are created with exclusive writes so retries cannot overwrite prior contributions.