Skip to main content

CLI Reference

This page is generated from the same argparse tree used by the praxist executable. The command implementation is the sole definition; rebuild the documentation after changing CLI arguments.

usage: praxist [-h] [--version] <command> ...

Global arguments

ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--versionnoshow program's version number and exit

Commands

CommandPurpose
praxist configure-llmPersist a built-in Praxist LLM provider profile.
praxist docsOpen or print the hosted Praxist documentation.
praxist doctorCheck Praxist host readiness.
praxist examplesList or install complete writable example projects.
praxist install-skillsInstall bundled Praxist skills for Codex or Claude Code.
praxist uninstall-skillsRemove Praxist-managed agent skill registrations.
praxist product-usageReview or change pseudonymous product-usage consent.
praxist monitorWatch Praxist run state in a live read-only terminal dashboard.
praxist resolveResolve a task project's plugin manifest (no LLM calls).
praxist resumeResume an interrupted Praxist run.
praxist setupConfigure this host for Praxist operation.
praxist startLaunch a new Praxist research run (registry-backed).
praxist statusList known Praxist experiment runs.
praxist stopStop a Praxist run by run_id, or stop everything with --all.
praxist takeoverOpen Codex or Claude Code and hand off a project to Praxist takeover.
praxist uninstallRemove the user-level Praxist installation.
praxist user-agreementReview the Praxist License and User Agreement or inspect acceptance status.

praxist configure-llm

Persist a built-in Praxist LLM provider profile.

usage: praxist configure-llm [-h] --provider PROVIDER [--model MODEL]
                             [--agent-system {claude_sdk,codex_sdk}]
                             [--api-key-stdin | --api-key-env API_KEY_ENV | --no-api-key | --remove-api-key]
                             [--config-file CONFIG_FILE] [--project-env-file PROJECT_ENV_FILE]
                             [--print-source-command] [--json] [--dry-run]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--provideryesBuilt-in provider name or compatible provider plugin reference.
--modelnoProvider model name to persist.
--agent-systemnoAgent runtime selection to persist. Choices: claude_sdk, codex_sdk.
--api-key-stdinnoRead the provider API key from stdin; a local TTY shows one * per character.
--api-key-envnoRead the provider API key from this environment variable.
--no-api-keynoUpdate non-secret provider settings without writing an API key.
--remove-api-keynoRemove this provider's stored API key from the selected config file(s).
--config-filenoConfig file to update (default: $PRAXIST_CONFIG_FILE or the user config).
--project-env-filenoAlso write Praxist LLM config to this explicit task-local .env file.
--print-source-commandnoPrint the shell command that loads the selected config file.
--jsonnoEmit the result as JSON.
--dry-runnoValidate and report changes without writing files.

praxist docs

Open or print the hosted Praxist documentation.

usage: praxist docs [-h] [--no-open]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--no-opennoPrint the documentation URL without opening a browser.

praxist doctor

Check Praxist host readiness.

usage: praxist doctor [-h] [--json] [--task-path TASK_PATH] [--config-file CONFIG_FILE]
                      [--agent-system {claude_sdk,codex_sdk}] [--model-provider MODEL_PROVIDER]
                      [--model MODEL] [--codex-native] [--target {auto,codex,claude}] [--advisory]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--jsonnoEmit the readiness report as JSON.
--task-pathnoAlso validate this task project and its runtime environment.
--config-filenoConfig file to inspect (default: $PRAXIST_CONFIG_FILE or the user config).
--agent-systemnoCheck one research runtime (default: configured runtime or claude_sdk). Choices: claude_sdk, codex_sdk.
--model-providernoCheck one model_provider ref using the same precedence as praxist start.
--modelnoCheck this selected model (Codex-native verifies it in the account catalog).
--codex-nativenoCheck codex_sdk with native OpenAI and the saved ChatGPT login.
--targetnoCheck bundled skills for this agent host (default: detect managed installs). Choices: auto, codex, claude. Default: auto.
--advisorynoAlways return exit 0 while retaining readiness failures in the report.

praxist examples

List or install complete writable example projects.

usage: praxist examples [-h] <action> ...
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit

praxist install-skills

Install bundled Praxist skills for Codex or Claude Code.

usage: praxist install-skills [-h] [--target {codex,claude}] [--target-dir TARGET_DIR]
                              [--mode {copy,symlink}] [--replace] [--force-unmanaged]
                              [--migrate-legacy-symlinks] [--dry-run] [--json]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--targetnoSkill host. Default: codex. Choices: codex, claude. Default: codex.
--target-dirnoOverride the target skill directory.
--modenoRegister skills by copying package content or linking a source checkout. Choices: copy, symlink. Default: copy.
--replacenoRefresh existing Praxist-managed entries; unmanaged paths require --force-unmanaged.
--force-unmanagednoWith --replace, back up and replace unmanaged entries whose names exactly match bundled Praxist skills. Unrelated skills are untouched.
--migrate-legacy-symlinksnoWith --replace, explicitly adopt old Praxist repo-style symlinks that predate the ownership manifest.
--dry-runnoReport actions without changing the target directory.
--jsonnoEmit the result as JSON.

praxist uninstall-skills

Remove Praxist-managed agent skill registrations.

usage: praxist uninstall-skills [-h] [--target {codex,claude}] [--target-dir TARGET_DIR] [--dry-run]
                                [--json]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--targetnoSkill host. Default: codex. Choices: codex, claude. Default: codex.
--target-dirnoOverride the target skill directory.
--dry-runnoReport removals without changing the target directory.
--jsonnoEmit the result as JSON.

praxist product-usage

Review or change pseudonymous V2 product-usage consent. Withdrawal stops future capture and deletes unsent local events; delivered events expire through scheduled retention.

usage: praxist product-usage [-h] <command> ...
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit

praxist monitor

Render a live read-only dashboard from praxist status, orchestrator snapshots, peer memory health, recent logs, and lightweight host load. The dashboard runs directly in the current terminal and never controls the Praxist research process.

usage: praxist --monitor [-h] [--run-id RUN_ID] [--run-dir RUN_DIR] [--task-path TASK_PATH]
                         [--latest] [--interval INTERVAL] [--once] [--follow] [--no-clear] [--plain]
                         [--log-lines LOG_LINES] [--peer-limit PEER_LIMIT]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--run-idnoMonitor one run id.
--run-dirnoMonitor one run dir.
--task-pathnoPrefer active rows for this task path.
--latestnoSelect the latest active run row when more than one exists.
--intervalnoFrame interval in seconds (default: 0.2 for the fullscreen TUI, 1 for plain text).
--oncenoRender one frame and exit.
--follownoKeep refreshing even when stdout is not an interactive terminal.
--no-clearnoAppend frames instead of clearing the terminal between refreshes.
--plainnoUse the legacy plain-text monitor instead of the fullscreen TUI.
--log-linesnoRecent log lines to show for the selected run (default: 18). Default: 18.
--peer-limitnoMaximum peer rows to render (default: 24). Default: 24.

praxist resolve

Discover and resolve a task project's plugin manifest without making any LLM calls. Equivalent to:

python -m praxist.run run --task-path <path> --resolve-only --local

Exits non-zero on resolution failure (manifest schema error, missing plugin, etc.). On success, emits a JSON document on stdout summarizing the resolved run identity.

usage: praxist resolve [-h] [--config-file CONFIG_FILE] [--agent-system {claude_sdk,codex_sdk}]
                       [--workspace WORKSPACE] [--run-dir RUN_DIR] [--runtime RUNTIME]
                       [--codex-native] [--model-provider MODEL_PROVIDER]
                       [--budget-policy BUDGET_POLICY] [--credential-profile CREDENTIAL_PROFILE]
                       [--model MODEL] [--result-summary RESULT_SUMMARY]
                       [task_path]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
task_pathnoPath to the task project directory (default: current directory). Default: ..
--config-filenoConfig file to load (default: $PRAXIST_CONFIG_FILE or the user config).
--agent-systemnoAgent system used to resolve runtime/provider defaults. Choices: claude_sdk, codex_sdk.
--workspacenoWorkspace directory (default: current working directory). Default: ``.
--run-dirnoOverride run artifact directory. Defaults to the task project's runtime_outputs.root / experiments directory; paths inside the Praxist source checkout are rejected. Default: ``.
--runtimenoOverride agent_runtime plugin ref. Default: ``.
--codex-nativenoResolve with codex_sdk, native OpenAI, and saved ChatGPT login while ignoring API-key/custom-endpoint configuration.
--model-providernoOverride model_provider plugin ref. Default: ``.
--budget-policynoOverride budget_policy plugin ref. Default: ``.
--credential-profilenoOverride credential profile name (rarely needed for resolve-only). Default: ``.
--modelnoOverride agent model. Not used by resolve-only itself, but propagated for parity. Default: ``.
--result-summarynoValidate one evaluator-produced JSON summary against the task's maturity telemetry contract before resolving. Default: ``.

praxist resume

Continue an existing Praxist run directory from its last safe completed generation boundary. The target may be a registry run_id from praxist status or a direct experiments/run_* path.

usage: praxist resume [-h] [--task-path TASK_PATH] [--config-file CONFIG_FILE]
                      [--agent-system {claude_sdk,codex_sdk}] [--runtime RUNTIME_REF]
                      [--codex-native] [--model MODEL] [--model-provider MODEL_PROVIDER_REF]
                      [--strategy {auto,mixed,explore,exploit}] [--cohort COHORT]
                      [--generations GENERATIONS] [--server] [--daemonize]
                      [--resume-policy {completed_generation}] [--force]
                      [--startup-timeout STARTUP_TIMEOUT] [--json]
                      target
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
targetyesRegistry run_id or path to an existing Praxist run directory.
--task-pathnoOverride task project path when resuming from a run directory.
--config-filenoConfig file to load (default: $PRAXIST_CONFIG_FILE or the user config).
--agent-systemnoOverride agent system for the resumed launch. Choices: claude_sdk, codex_sdk.
--runtimenoOverride agent_runtime plugin ref.
--codex-nativenoResume in Codex-native saved-login mode without provider API keys.
--modelnoOverride model name.
--model-providernoOverride model_provider plugin ref.
--strategynoOverride frontier strategy. Choices: auto, mixed, explore, exploit.
--cohortnoCohort size override (exported as COHORT_SIZE).
--generationsnoMaximum generations override (exported as MAX_GENERATIONS).
--servernoDisable --local mode (server mode).
--daemonizenoUse the same double-fork daemon launch path as praxist start.
--resume-policynoResume policy forwarded to praxist.run. Choices: completed_generation. Default: completed_generation.
--forcenoAllow resume only when an old registry entry's process ownership cannot be verified. It never overrides a verified live controller.
--startup-timeoutnoSeconds to wait for resume startup artifacts. Default: 30.0.
--jsonnoEmit one JSON document on stdout instead of the operator summary.

praxist setup

Pip-first Praxist host setup. Run this after installing the package and runtime extras. It writes only Praxist user-level configuration and Praxist-managed agent skill registrations; it does not install global agent CLIs or task-specific dependencies.

usage: praxist setup [-h] [--agent-system {claude_sdk,codex_sdk}] [--provider PROVIDER]
                     [--model MODEL] [--api-key-stdin | --api-key-env API_KEY_ENV | --no-api-key]
                     [--interactive]
                     [--profile {codex-native,deepseek-api,openrouter-api,anthropic-api}]
                     [--list-profiles] [--agent-managed] [--install-skills {codex,claude,none}]
                     [--config-file CONFIG_FILE] [--json] [--dry-run] [--skip-doctor]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--agent-systemnoAgent runtime selection to persist. Choices: claude_sdk, codex_sdk.
--providernoBuilt-in provider name to configure.
--modelnoProvider model name to persist.
--api-key-stdinnoRead the provider API key from stdin; a local TTY shows one * per character.
--api-key-envnoRead the provider API key from this environment variable.
--no-api-keynoConfigure a supported no-key authentication route.
--interactivenoReview the License and User Agreement, choose optional privacy, and select a coherent runtime profile in a local TTY wizard.
--profilenoApply one complete profile; a missing API key is requested in the local terminal. Choices: codex-native, deepseek-api, openrouter-api, anthropic-api.
--list-profilesnoList supported setup profiles as JSON and exit without changes.
--agent-managed, --codex-managednoReport the read-only agent-managed first-use decision state and next required action as JSON. --codex-managed remains a compatibility alias.
--install-skillsnoInstall bundled skills for an agent host (interactive default: codex). Choices: codex, claude, none.
--config-filenoConfig file to update (default: $PRAXIST_CONFIG_FILE or the user config).
--jsonnoEmit setup and readiness results as JSON.
--dry-runnoValidate and report changes without writing files.
--skip-doctornoSkip the final readiness report.

praxist start

Async launcher: starts python -m praxist.run run in a new session, redirects stdout/stderr to a run-local log file, and writes a registry entry under $PRAXIST_STATE_DIR/runs/.

Pass --task-path / --model / --model-provider to override the resolved task and runtime configuration.

usage: praxist start [-h] [--task-path TASK_PATH] [--config-file CONFIG_FILE]
                     [--agent-system {claude_sdk,codex_sdk}] [--runtime RUNTIME_REF]
                     [--codex-native] [--run-dir RUN_DIR] [--resume] [--resume-from RESUME_FROM]
                     [--resume-policy {completed_generation}] [--model MODEL]
                     [--model-provider MODEL_PROVIDER_REF] [--strategy {auto,mixed,explore,exploit}]
                     [--cohort COHORT] [--generations GENERATIONS] [--server] [--daemonize]
                     [--startup-timeout STARTUP_TIMEOUT] [--json]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--task-pathnoTask project directory (default: $TASK_PATH or the current directory).
--config-filenoConfig file to load (default: $PRAXIST_CONFIG_FILE or the user config).
--agent-systemnoAgent system the launched run will use. Default: $PRAXIST_AGENT_SYSTEM if set, else 'claude_sdk'. Recognised values: claude_sdk (default), codex_sdk. Choices: claude_sdk, codex_sdk.
--runtimenoExplicit agent_runtime:* plugin ref. Wins over the agent-system mapping when set.
--codex-nativenoUse codex_sdk with native OpenAI and saved ChatGPT login, ignoring API-key and custom-endpoint settings from process/config/task env.
--run-dirnoExplicit run directory (default: <task>/experiments/run_<ts>_<task>).
--resumenoResume an existing run directory instead of requiring fresh artifacts.
--resume-fromnoPath to an existing run directory to resume. Equivalent to --run-dir <path> --resume.
--resume-policynoResume policy forwarded to praxist.run. Choices: completed_generation. Default: completed_generation.
--modelnoModel name forwarded to the runtime; defaults depend on provider.
--model-providernoProvider plugin ref (e.g. model_provider:deepseek_alias). Default cascades from agent system: claude_sdk → deepseek_alias when DEEPSEEK_API_KEY is set, then openrouter when OPENROUTER_API_KEY is set, then anthropic_messages; codex_sdk follows the same credential-aware selection and falls back to openai_compatible.
--strategynoFrontier strategy (auto|mixed|explore|exploit). Choices: auto, mixed, explore, exploit. Default: auto.
--cohortnoCohort size override (exported as COHORT_SIZE).
--generationsnoMaximum generations override (exported as MAX_GENERATIONS).
--servernoDisable --local mode (server mode).
--daemonizenoDouble-fork the launcher before spawning so the workload survives when the launching shell's process tree is reaped. Required for sandboxed launcher contexts (agent tool shells, CI runners, Docker --init). The default start_new_session=True path is fine for a normal terminal.
--startup-timeoutnoSeconds to wait for startup artifacts before returning. A live run that exceeds the deadline remains in 'starting' state (default 30). Default: 30.0.
--jsonnoEmit one JSON document on stdout instead of the operator table.

praxist status

Merge the run registry written by praxist start with a cross-platform ps scan to list every Praxist run the operator should know about.

Rows are tagged with their source: registry (managed run, PID alive), ps-only (matching process without a registry entry — e.g. started through a direct Python invocation), or stale (registry entry whose PID is gone).

usage: praxist status [-h] [--json] [--run-id RUN_ID] [--task-path TASK_PATH] [--active] [--latest]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--jsonnoEmit one JSON document on stdout instead of the plain-text table.
--run-idnoShow only this registry run id.
--task-pathnoShow runs for this task directory.
--activenoShow only live local runs.
--latestnoShow only the newest matching run.

praxist stop

praxist stop <run_id> terminates one specific run via its registry entry. praxist stop --all terminates every Praxist-recognised process — by default the union of registry entries and ps-scan matches.

Registry-backed runs close new admission before discovery. Both modes send SIGTERM, wait --grace seconds, then SIGKILL any process still alive; registry-backed runs also perform a bounded stable-empty rescan for late children.

usage: praxist stop [-h] [--all] [--registry-only] [--ps-scan-only] [--grace GRACE_SECONDS] [--gc]
                    [--dry-run] [--json]
                    [run_id]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
run_idnoRun id (filename stem of $PRAXIST_STATE_DIR/runs/<run_id>.json).
--allnoStop every recognised Praxist run (registry + ps-scan by default).
--registry-onlynoWith --all: only target registry-managed runs.
--ps-scan-onlynoWith --all: only target unregistered runs found by the process scan.
--gracenoSeconds to wait after SIGTERM before SIGKILL (default 5.0). Default: 5.0.
--gcnoRemove stale registry entries. A stale entry is one whose recorded PID is no longer alive, or whose live command line no longer matches the prefix recorded at praxist start time (PID recycling). No signals are sent.
--dry-runnoShow what would be signalled without sending any signals. With --gc, list the would-be-removed entries without deleting any files.
--jsonnoEmit a JSON outcome document instead of the operator summary.

praxist takeover

Open Codex or Claude Code and hand off a project to Praxist takeover.

usage: praxist takeover [-h] [--task-path TASK_PATH] [--codex-native | --configured-provider]
                        [--operator {codex,claude}] [--yes] [--dry-run] [--json]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--task-pathnoResearch project to hand off (default: select locally or use the current directory).
--codex-nativenoUse the no-key Codex-native takeover skill.
--configured-providernoUse the configured-provider takeover skill.
--operatornoAgent CLI that hosts the takeover workflow. Default: codex. Choices: codex, claude. Default: codex.
--yesnoLaunch without the final Enter confirmation.
--dry-runnoShow the redacted handoff without starting the agent CLI.
--jsonnoEmit the redacted handoff as JSON.

praxist uninstall

Remove Praxist-managed CLI files, runtime environment, agent skills, configuration, state, and cache. Research projects, task environments, run directories, agent CLIs, Python, and uv are never removed.

usage: praxist uninstall [-h] [--venv-dir VENV_DIR] [--bin-dir BIN_DIR] [--skills-dir SKILLS_DIR]
                         [--keep-user-data] [--dry-run] [--json]
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit
--venv-dirnoOverride the Praxist-managed virtualenv path.
--bin-dirnoOverride the user bin directory containing Praxist entrypoints.
--skills-dirnoOverride skill removal with one explicit managed directory.
--keep-user-datanoKeep Praxist configuration, registry state, product-usage state, and cache.
--dry-runnoValidate ownership and report removals without changing files.
--jsonnoEmit one machine-readable result document.

praxist user-agreement

Review the Praxist License and User Agreement or inspect acceptance status.

usage: praxist user-agreement [-h] <command> ...
ArgumentRequiredDescription
-h, --helpnoshow this help message and exit