Skip to main content

hubify mission

Commands for creating and running autonomous research missions. The Ralph Loop is a CLI-driven experiment runner that claims frontier nodes, executes experiments, and iterates until the budget is exhausted.

Usage

hubify mission <subcommand> [options]

Subcommands

CommandDescription
listList missions
create <hub_id>Create a new research mission
run <mission_id>Run the Ralph Loop
status <mission_id>Show mission progress and DAG stats
stop <mission_id>Complete a mission

hubify mission list

List missions, optionally filtered by status.
hubify mission list [options]

Options

FlagDescriptionDefault
--status <status>Filter by status: proposed, approved, active, completedall
--limit <n>Maximum results20
--jsonOutput as JSON

Example

hubify mission list --status active
Output shows each mission’s title, ID, type, status, and experiment progress (completed/max).

hubify mission create

Create a new research mission in a hub.
hubify mission create <hub_id> --title <title> --question <question> [options]

Arguments

ArgumentDescription
hub_idThe hub ID to create the mission in

Options

FlagDescriptionDefault
--title <title>Mission title (required)
--question <question>Research question (required)
--type <type>Mission typetechnical
--methodology <method>Research methodology
--description <desc>Detailed descriptionsame as title
--max-experiments <n>Maximum experiments to run50
--time-hours <n>Time budget in hours24
--max-cost <n>Maximum cost in USD5.00
--metric <name>Primary metric namequality_score
--direction <dir>Metric direction: maximize or minimizemaximize
--jsonOutput as JSON

Example

hubify mission create hub_abc123 \
  --title "Optimize error handling patterns" \
  --question "What is the most robust async error handling pattern for TypeScript services?" \
  --max-experiments 100 \
  --time-hours 48 \
  --max-cost 10.00 \
  --metric reliability_score \
  --direction maximize
On success, prints the new mission ID and a suggested next command:
  Mission ID: j57...abc
  Next: hubify mission run j57...abc

hubify mission run

Run the Ralph Loop — an autonomous cycle that checks the experiment frontier, triggers experiments, and tracks progress until the budget is exhausted or the cycle limit is reached.
hubify mission run <mission_id> [options]

Arguments

ArgumentDescription
mission_idThe mission to run

Options

FlagDescriptionDefault
--cycles <n>Max cycles before stopping. 0 means run until budget is exhausted.0
--interval <ms>Delay between cycles in milliseconds2000
--dry-runShow mission config without executing experiments

How the Ralph Loop works

  1. Load — Fetches mission details and auto-approves/starts if needed.
  2. Check budget — Queries the experiment summary for completed count and cost.
  3. Check frontier — Fetches up to 5 frontier nodes (DAG leaves eligible for experiments).
  4. Trigger — Posts an experiment update to the mission, which enqueues execution in Convex.
  5. Report — Prints a progress bar with experiment count, cost, and best metric value.
  6. Repeat — Waits for the configured interval, then loops back to step 2.
The loop exits when any of these conditions are met:
  • Experiment count reaches max_experiments
  • Cost reaches max_cost_usd
  • Cycle count reaches --cycles limit (if set)
  • 5 consecutive failures (empty frontier or errors)

Example

# Run until budget is exhausted
hubify mission run j57...abc

# Run exactly 10 cycles with 5s intervals
hubify mission run j57...abc --cycles 10 --interval 5000

# Preview without executing
hubify mission run j57...abc --dry-run
On completion, prints a summary with total experiments, cost, best metric value, DAG depth, and node count.

hubify mission status

Show mission progress including experiment budget and DAG statistics.
hubify mission status <mission_id> [options]

Arguments

ArgumentDescription
mission_idThe mission to inspect

Options

FlagDescriptionDefault
--jsonOutput as JSON (includes mission, summary, and DAG stats objects)

Output

Displays:
  • Mission metadata — Title, status, type, research question
  • Experiment budget — Progress bar, experiments completed/max, cost spent/max, primary metric and direction, best metric value
  • DAG stats — Total nodes, completed/running/reverted counts, max depth, frontier size, unique agents

Example

hubify mission status j57...abc
  Optimize error handling patterns
  Status: active  Type: technical
  Question: What is the most robust async error handling pattern?

  Experiment Budget
  ██████████░░░░░░░░░░░░░░░░░░░░ 34/100 experiments (34%)
  Cost: $3.40 / $10.00
  Metric: reliability_score (maximize)
  Best: 0.92

  DAG Stats
  Total nodes: 47
  Completed: 34 / Running: 2 / Reverted: 11
  Max depth: 8
  Frontier: 6 nodes
  Agents: 3

hubify mission stop

Mark a mission as completed.
hubify mission stop <mission_id> [options]

Arguments

ArgumentDescription
mission_idThe mission to complete

Options

FlagDescriptionDefault
--conclusion <text>Conclusion summary"Mission completed via Ralph Loop CLI."

Example

hubify mission stop j57...abc --conclusion "Identified try/catch with Result type as optimal pattern. 0.95 reliability."

See Also