jarvis quickstart — guided 5-step setup for new users.
Functions
quickstart
quickstart(force: bool) -> None
Guided 5-step setup for new users.
Source code in src/openjarvis/cli/quickstart_cmd.py
| @click.command()
@click.option("--force", is_flag=True, help="Redo all steps even if already done.")
def quickstart(force: bool) -> None:
"""Guided 5-step setup for new users."""
console = Console()
# Step 1: Detect hardware
console.print("[bold cyan][1/5][/bold cyan] Detecting hardware...")
hw = detect_hardware()
console.print(f" Platform : {hw.platform}")
console.print(f" CPU : {hw.cpu_brand} ({hw.cpu_count} cores)")
console.print(f" RAM : {hw.ram_gb} GB")
if hw.gpu:
console.print(
f" GPU : {hw.gpu.name} ({hw.gpu.vram_gb} GB VRAM, x{hw.gpu.count})"
)
else:
console.print(" GPU : none detected")
engine_key = recommend_engine(hw)
# Step 2: Write config
console.print()
console.print("[bold cyan][2/5][/bold cyan] Writing config...")
if DEFAULT_CONFIG_PATH.exists() and not force:
console.print(
f" [dim]Config already exists at"
f" {DEFAULT_CONFIG_PATH} (skip)[/dim]"
)
else:
toml_content = generate_default_toml(hw)
DEFAULT_CONFIG_DIR.mkdir(parents=True, exist_ok=True)
DEFAULT_CONFIG_PATH.write_text(toml_content)
console.print(f" [green]Config written to {DEFAULT_CONFIG_PATH}[/green]")
# Step 3: Check engine
console.print()
console.print(f"[bold cyan][3/5][/bold cyan] Checking engine ({engine_key})...")
if not _check_engine_health(engine_key):
console.print(f" [red bold]Engine '{engine_key}' is not reachable.[/red bold]")
console.print()
console.print(f" Start the {engine_key} server and try again.")
console.print(" Run [bold]jarvis doctor[/bold] for detailed diagnostics.")
raise SystemExit(1)
console.print(f" [green]Engine '{engine_key}' is healthy.[/green]")
# Step 4: Verify model
console.print()
console.print("[bold cyan][4/5][/bold cyan] Checking for available models...")
if not _check_model_available(engine_key):
console.print(" [yellow]No models found.[/yellow]")
console.print(
" Pull a model first (e.g. [bold]ollama pull qwen3.5:3b[/bold])."
)
raise SystemExit(1)
console.print(" [green]Models available.[/green]")
# Step 5: Test query
console.print()
console.print("[bold cyan][5/5][/bold cyan] Running test query...")
response = _test_query(engine_key)
console.print(f" [green]Response:[/green] {response[:200]}")
console.print()
console.print(
'[bold green]Setup complete![/bold green]'
' Try: [bold]jarvis ask "Hello"[/bold]'
)
|