Skip to main content
ralphy setup configures keys and links a project the first time. ralphy doctor verifies env health on every run after that. Together they cover bootstrap, recovery, and CI gating. Both emit JSON by default — the agent reads doctor on session start to decide whether to ask the user for a missing key.

ralphy setup

The first-run wizard. Interactive on TTY, scriptable with --non-interactive. Reads OPENROUTER_API_KEY and ELEVENLABS_API_KEY, optionally pings each provider to verify, writes to <project>/.env, optionally imports public profiles.
The non-interactive path is implied whenever any of --openrouter-key, --elevenlabs-key, --keys-from-env, --project-dir, or --import-profile is set, so you can drop the explicit -y/--non-interactive in CI scripts. By default setup verifies each key with a live API ping. Pass --no-verify to skip; pass --allow-unverified to save a key anyway when verification fails. Full flag detail: /reference/cli/setup.

ralphy doctor

Env health check. No prompts, no writes — just a JSON report.
The report includes:
  • ralphy.version and install mode (developer from a repo checkout, binary from a release artifact)
  • ralphy.linkedProject — the path resolved by project auto-detection
  • deps.{bun,ffmpeg} — both are required
  • keys — one boolean per OPENROUTER_API_KEY, ELEVENLABS_API_KEY
  • blockers and warnings — concrete remediation strings
  • versions.{current,latest,update_hint} — when a newer release is available
Exit code is non-zero when blockers is non-empty — the canonical CI guard.

Update checks

doctor checks for a newer release once per 24 hours. The network call is bounded by a 5-second timeout; failure is silent. Disable with:
When an update is available, versions.update_hint contains the right command for your install (brew upgrade ralphy vs npm update -g @alecs5am/ralphy).

Common failures

Every blocker line in doctor’s output names the verb that fixes it. Full error code coverage is on Error catalog.

After a fix

Re-run doctor to verify. It’s idempotent and cheap (no model calls):
When the agent runs doctor on session start and sees a blocker, it walks the user through the remediation and then re-runs doctor until it’s green — that’s all there is to the “core” playbook.