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.
--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.ralphy.versionand install mode (developerfrom a repo checkout,binaryfrom a release artifact)ralphy.linkedProject— the path resolved by project auto-detectiondeps.{bun,ffmpeg}— both are requiredkeys— one boolean perOPENROUTER_API_KEY,ELEVENLABS_API_KEYblockersandwarnings— concrete remediation stringsversions.{current,latest,update_hint}— when a newer release is available
- Pretty
- JSON
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:
versions.update_hint contains the right command for your install (brew upgrade ralphy vs npm update -g @alecs5am/ralphy).
Common failures
| Symptom | Remediation |
|---|---|
bun is not installed | brew install bun |
ffmpeg is not installed | brew install ffmpeg |
OPENROUTER_API_KEY missing | ralphy setup and paste, or export OPENROUTER_API_KEY=... |
ralphy is not linked to a project | cd into your checkout, or ralphy setup --link <path> |
Linked project ... has no package.json | The project moved. Re-link with ralphy setup --link <new-path> |
doctor’s output names the verb that fixes it. Full error code coverage is on Error catalog.
After a fix
Re-rundoctor to verify. It’s idempotent and cheap (no model calls):
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.
Related
- Quickstart: install — fresh-machine bootstrap
- Env + config — every env var the CLI reads
- Error catalog —
E_ENV_KEY_MISSING,E_DEP_MISSING, et al. - cli/commands/setup.ts, cli/commands/doctor.ts