ข้ามไปที่เนื้อหา

CLI Reference

OpenJarvis มี command-line interface ผ่านคำสั่ง jarvis สร้างขึ้นบน Click มีคำสั่งย่อยสำหรับถามคำถาม โมเดล, จัดการ memory, รัน benchmark และให้บริการ API ที่เข้ากันได้กับ OpenAI

ตัวเลือกทั่วไป

jarvis --version   # Print the OpenJarvis version
jarvis --help      # Show top-level help with all subcommands

jarvis init

ตรวจจับฮาร์ดแวร์ในเครื่อง (CPU, GPU, RAM) และสร้างไฟล์ configuration ที่ ~/.openjarvis/config.toml

jarvis init           # Interactive — refuses to overwrite existing config
jarvis init --force   # Overwrite existing config without prompting
ตัวเลือก คำอธิบาย
--force เขียนทับ configuration ที่มีอยู่โดยไม่ถาม

คำสั่ง init จะตรวจจับสิ่งเหล่านี้อัตโนมัติ:

  • แพลตฟอร์ม (Linux, macOS, Windows)
  • ยี่ห้อและจำนวนคอร์ของ CPU
  • RAM เป็น GB
  • ยี่ห้อ, รุ่น, VRAM และจำนวนของ GPU (ผ่าน nvidia-smi, rocm-smi หรือ system_profiler)

จากฮาร์ดแวร์ที่ตรวจจับได้ มันจะแนะนำ inference engine ที่เหมาะสมและเขียน ไฟล์ TOML ที่ตั้งค่าไว้ล่วงหน้า

ตัวอย่างผลลัพธ์:

Detecting hardware...
  Platform : linux
  CPU      : AMD Ryzen 9 7950X (32 cores)
  RAM      : 64 GB
  GPU      : NVIDIA RTX 4090 (24.0 GB VRAM, x1)

Config written successfully.

jarvis ask

ส่งคำถามไปยัง inference engine (โดยตรงหรือผ่านเอเจนต์) แล้วพิมพ์คำตอบ

jarvis ask "What is the capital of France?"

ตัวเลือก

ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
-m, --model MODEL string อัตโนมัติ โมเดลที่ใช้สำหรับ inference
-e, --engine ENGINE string อัตโนมัติ Engine backend (ollama, vllm, llamacpp ฯลฯ)
-t, --temperature TEMP float 0.7 Temperature ของ sampling
--max-tokens N int 1024 จำนวน token สูงสุดที่จะสร้าง
--json flag ปิด แสดงผลลัพธ์เป็น JSON ดิบแทนข้อความล้วน
--no-stream flag ปิด ปิดการสตรีมมิง (โหมด synchronous)
--no-context flag ปิด ปิดการแทรกบริบทจาก memory
-a, --agent AGENT string ไม่มี เอเจนต์ที่ใช้ (simple, orchestrator)
--tools TOOLS string ไม่มี ชื่อ tool ที่จะเปิดใช้ คั่นด้วยคอมมา
-i, --image PATH path ไม่มี ไฟล์รูปภาพสำหรับ vision model (เช่น gemma3:4b); ใช้ซ้ำได้
-S, --screen flag ปิด จับภาพหน้าจอปัจจุบันแล้วส่งให้ vision model

Direct Mode เทียบกับ Agent Mode

Direct mode (ค่าเริ่มต้น) ส่งคำถามตรงไปยัง inference engine:

jarvis ask "Explain quantum computing"

Agent mode จัดเส้นทางคำถามผ่านเอเจนต์ที่ใช้ tool ได้และจัดการการโต้ตอบ แบบหลายรอบ:

jarvis ask --agent orchestrator "What is 2+2?"
jarvis ask --agent orchestrator --tools calculator,think "Calculate sqrt(144) + 3^2"
jarvis ask --agent simple "Hello"

ตัวอย่างการใช้งาน

# Basic query
jarvis ask "What is machine learning?"

# Specify a model
jarvis ask -m qwen3:8b "Summarize this concept"

# Use the orchestrator agent with tools
jarvis ask --agent orchestrator --tools calculator "What is 15% of 340?"

# Get JSON output
jarvis ask --json "Hello"

# Disable memory context injection
jarvis ask --no-context "Tell me about Python"

# Set maximum token generation
jarvis ask --max-tokens 2048 "Write a detailed essay about AI"

อินพุตแบบ Vision

โมเดลที่รองรับ vision (เช่น gemma3:4b) อ่านรูปภาพควบคู่กับ text prompt ของ คุณได้ แนบไฟล์รูปภาพหนึ่งไฟล์หรือมากกว่าด้วย -i/--image หรือจับภาพหน้า จอปัจจุบันด้วย -S/--screen:

# Ask about a local image
jarvis ask -i screenshot.png "What is shown in this image?"

# Send multiple images (the flag is repeatable)
jarvis ask -i chart-a.png -i chart-b.png "Compare these two charts"

# Capture the current screen and ask about it
jarvis ask --screen "Summarize what's on my screen"

Vision รันเฉพาะใน direct mode เท่านั้น หากคุณส่ง --agent ไปด้วย รูปภาพ จะถูกข้ามและมีข้อความแจ้ง — รันใหม่ด้วย --agent "" เพื่อบังคับ direct mode

Context window ของ Ollama ปรับได้สำหรับรูปภาพขนาดใหญ่หรือ prompt ยาวๆ ด้วย environment variable JARVIS_NUM_CTX (ค่าเริ่มต้น 16384):

JARVIS_NUM_CTX=8192 jarvis ask --screen "What's on my screen?"

รักษา Vision ให้อยู่ในเครื่อง

รูปภาพเป็นข้อมูล sensitive OpenJarvis จะพิมพ์คำเตือนความเป็นส่วนตัวก่อนส่งรูปภาพไปยัง engine ที่ไม่ใช่ local ดังนั้นภาพหน้าจอจะไม่ออกจากเครื่องของคุณโดยไม่รู้ตัว ใช้ engine แบบ local (เช่น ollama กับ gemma3:4b) เพื่อให้ vision อยู่ในเครื่องทั้งหมด

รูปแบบผลลัพธ์ JSON

เมื่อใช้ --json ใน direct mode ผลลัพธ์จะมี:

{
  "content": "The response text...",
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 85,
    "total_tokens": 97
  }
}

เมื่อใช้ --json ใน agent mode ผลลัพธ์จะมี:

{
  "content": "The response text...",
  "turns": 3,
  "tool_results": [
    {
      "tool_name": "calculator",
      "content": "51.0",
      "success": true
    }
  ]
}

jarvis model

จัดการและตรวจสอบโมเดลภาษาที่มีอยู่บน engine ที่กำลังรันอยู่

jarvis model list

แสดงรายการโมเดลทั้งหมดที่มีจาก inference engine ที่กำลังรันอยู่ แสดงเป็น ตาราง Rich พร้อมพารามิเตอร์โมเดล, ความยาวบริบท และความต้องการ VRAM

jarvis model list

ตัวอย่างผลลัพธ์:

           Available Models
┌─────────┬────────────────┬────────┬─────────┬──────┐
│ Engine  │ Model          │ Params │ Context │ VRAM │
├─────────┼────────────────┼────────┼─────────┼──────┤
│ ollama  │ qwen3:8b       │ 8B     │ 32,768  │ 6GB  │
│ ollama  │ llama3.2:3b    │ 3B     │ 8,192   │ 3GB  │
└─────────┴────────────────┴────────┴─────────┴──────┘

jarvis model info <model>

แสดงข้อมูลแบบละเอียดของโมเดลที่ระบุ

jarvis model info qwen3:8b

ตัวอย่างผลลัพธ์:

┌─ Qwen 3 8B ──────────────────────────────┐
│ Model ID:     qwen3:8b                    │
│ Name:         Qwen 3 8B                   │
│ Parameters:   8B                          │
│ Context:      32,768                      │
│ Quantization: none                        │
│ Min VRAM:     6GB                         │
│ Engines:      ollama, vllm                │
│ Provider:     Alibaba                     │
│ API Key:      not required                │
└───────────────────────────────────────────┘

jarvis model pull <model>

ดาวน์โหลดโมเดลผ่าน Ollama แสดง progress bar ระหว่างดาวน์โหลด

jarvis model pull qwen3:8b

Note

คำสั่ง pull ต้องการ instance ของ Ollama ที่กำลังรันอยู่ มันเชื่อมต่อกับ API ของ Ollama ที่ host ซึ่งตั้งค่าไว้ใน config.toml ของคุณ


jarvis pearl

เข้าถึง node, wallet และเครื่องมือ RPC เนทีฟของ Pearl จาก CLI ของ OpenJarvis

jarvis pearl doctor
jarvis pearl node -- <pearld args>
jarvis pearl wallet -- <oyster args>
jarvis pearl ctl -- <prlctl args>
jarvis pearl address

คำสั่ง wrapper ของ Pearl ทั้งหมดใช้รูปแบบ jarvis pearl <command> คำสั่ง pass-through map ไปยัง binary เนทีฟของ Pearl:

คำสั่งของ OpenJarvis Binary ของ Pearl ใช้สำหรับ
jarvis pearl doctor n/a ตรวจสอบว่าค้นพบ pearld, oyster และ prlctl หรือไม่
jarvis pearl node pearld รัน Pearl full node
jarvis pearl wallet oyster รัน Oyster wallet daemon
jarvis pearl ctl prlctl Query Pearl node หรือ wallet RPC
jarvis pearl address prlctl --wallet getnewaddress สร้างที่อยู่ wallet จาก Oyster

ใช้ PEARL_HOME=/path/to/pearl หรือ --pearl-home /path/to/pearl หากไม่มี ไดเรกทอรี bin/ ของ Pearl อยู่ใน PATH ดู คู่มือ Pearl CLI สำหรับตัวอย่าง


jarvis memory

จัดการ document memory store สำหรับ retrieval-augmented generation

jarvis memory index <path>

Index เอกสารจากไฟล์หรือไดเรกทอรีเข้า memory store

jarvis memory index ./docs/
jarvis memory index ./notes.md
jarvis memory index ./data/ --chunk-size 256 --chunk-overlap 32
jarvis memory index ./docs/ --backend sqlite
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
--backend, -b string config Override memory backend เริ่มต้น
--chunk-size int 512 ขนาด chunk เป็น token
--chunk-overlap int 64 การทับซ้อนระหว่าง chunk เป็น token

Pipeline การนำเข้ารองรับข้อความ, markdown, ไฟล์โค้ด และ PDF (เมื่อติดตั้ง pdfplumber) ไฟล์ binary และไดเรกทอรีที่ซ่อนจะถูกข้ามอัตโนมัติ

jarvis memory search <query>

ค้นหา memory store หา chunk เอกสารที่เกี่ยวข้อง

jarvis memory search "machine learning basics"
jarvis memory search -k 10 "neural networks"
jarvis memory search --backend faiss "embeddings"
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
--top-k, -k int 5 จำนวนผลลัพธ์ที่จะคืน
--backend, -b string config Override memory backend เริ่มต้น

ผลลัพธ์แสดงในตารางพร้อมอันดับ, คะแนน, ไฟล์ต้นทาง และตัวอย่างเนื้อหา

jarvis memory stats

แสดงสถิติ memory store รวมถึงจำนวนเอกสารและขนาดฐานข้อมูล

jarvis memory stats
jarvis memory stats --backend sqlite
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
--backend, -b string config Override memory backend เริ่มต้น

jarvis telemetry

Query และจัดการข้อมูลเทเลเมทรีของ inference ที่เก็บใน SQLite

jarvis telemetry stats

แสดงสถิติเทเลเมทรีแบบรวมผล รวมจำนวนการเรียก, token, ต้นทุน และ latency ทั้งหมด แยกตามโมเดลและ engine

jarvis telemetry stats
jarvis telemetry stats -n 5    # Show top 5 models
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
-n, --top int 10 จำนวนโมเดลอันดับต้นๆ ที่จะแสดง

jarvis telemetry export

Export record เทเลเมทรีดิบเป็นรูปแบบ JSON หรือ CSV

jarvis telemetry export                          # JSON to stdout
jarvis telemetry export --format csv             # CSV to stdout
jarvis telemetry export --format json -o data.json  # JSON to file
jarvis telemetry export -f csv -o metrics.csv    # CSV to file
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
-f, --format choice json รูปแบบผลลัพธ์: json หรือ csv
-o, --output path stdout Path ของไฟล์ผลลัพธ์

jarvis telemetry clear

ลบ record เทเลเมทรีทั้งหมดออกจากฐานข้อมูล

jarvis telemetry clear         # Interactive confirmation
jarvis telemetry clear --yes   # Skip confirmation
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
-y, --yes flag ปิด ข้ามการยืนยัน

Warning

คำสั่งนี้ลบข้อมูลเทเลเมทรีที่เก็บไว้ทั้งหมดอย่างถาวร ใช้ --yes เพื่อข้ามการยืนยันในสคริปต์อัตโนมัติ


jarvis bench

รัน benchmark การอนุมานกับ engine ที่กำลังรันอยู่

jarvis bench run

รัน benchmark และรายงานผลลัพธ์

jarvis bench run                               # Run all benchmarks, 10 samples
jarvis bench run -n 20                         # 20 samples per benchmark
jarvis bench run -b latency                    # Only the latency benchmark
jarvis bench run -b throughput -n 50 --json    # Throughput, 50 samples, JSON output
jarvis bench run -o results.jsonl              # Write JSONL results to file
jarvis bench run -m qwen3:8b -e ollama         # Specific model and engine
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
-m, --model MODEL string อัตโนมัติ โมเดลที่จะ benchmark
-e, --engine ENGINE string อัตโนมัติ Engine backend
-n, --samples N int 10 จำนวน sample ต่อ benchmark
-b, --benchmark NAME string ทั้งหมด Benchmark เฉพาะที่จะรัน
-o, --output PATH path ไม่มี เขียนผลลัพธ์ JSONL ลงไฟล์
--json flag ปิด แสดงผลลัพธ์สรุปแบบ JSON ทาง stdout

Benchmark ที่มี:

  • latency -- วัด latency ของ inference ต่อการเรียก (mean, p50, p95, min, max)
  • throughput -- วัด throughput เป็น token ต่อวินาที

jarvis channel

จัดการ messaging channel สำหรับการสื่อสารข้ามหลายแพลตฟอร์ม Channel เชื่อมต่อกับ API ของแพลตฟอร์มโดยตรง (Telegram, Discord, Slack ฯลฯ) -- ไม่ต้องใช้ gateway

jarvis channel list

แสดงรายการ channel backend ที่ลงทะเบียนไว้และสถานะการเชื่อมต่อ

jarvis channel list

jarvis channel send

ส่งข้อความไปยัง channel ที่ระบุ

jarvis channel send slack "Hello from Jarvis!"
jarvis channel send discord "Build complete"
Argument ชนิด คำอธิบาย
TARGET string ชื่อ channel ที่จะส่งไป
MESSAGE string เนื้อหาข้อความ

jarvis channel status

แสดงสถานะการเชื่อมต่อของ channel ที่ตั้งค่าไว้

jarvis channel status

Dependency ของ Channel

แต่ละ channel ต้องการ credential เฉพาะแพลตฟอร์ม (bot token, API key) ที่ตั้งค่าไว้ในหมวด [channel.<platform>] ของ config ดู Configuration สำหรับรายละเอียด


jarvis serve

เริ่มเซิร์ฟเวอร์ API ที่เข้ากันได้กับ OpenAI

jarvis serve                                 # Default host/port from config
jarvis serve --port 8000                     # Custom port
jarvis serve --host 0.0.0.0 --port 9000      # Bind to all interfaces
jarvis serve --model qwen3:8b                # Specify default model
jarvis serve --agent orchestrator            # Route requests through an agent
ตัวเลือก ชนิด ค่าเริ่มต้น คำอธิบาย
--host HOST string config Bind address
--port PORT int config หมายเลข port
-e, --engine ENGINE string อัตโนมัติ Engine backend
-m, --model MODEL string config โมเดลเริ่มต้นสำหรับ inference
-a, --agent AGENT string ไม่มี เอเจนต์สำหรับคำขอแบบไม่สตรีม

Dependency ของเซิร์ฟเวอร์

คำสั่ง serve ต้องการ extra server:

uv sync --extra server

คำสั่งนี้จะติดตั้ง FastAPI, uvicorn และ dependency ที่เกี่ยวข้อง

Endpoint ของ API

เซิร์ฟเวอร์ expose endpoint ที่เข้ากันได้กับ OpenAI ดังนี้:

Method Path คำอธิบาย
POST /v1/chat/completions Chat completions (แบบสตรีมและไม่สตรีม)
GET /v1/models รายการโมเดลที่มี
GET /health ตรวจสอบสถานะ (health check)
GET /v1/channels รายการ messaging channel ที่มี
POST /v1/channels/send ส่งข้อความไปยัง channel
GET /v1/channels/status สถานะการเชื่อมต่อของ channel bridge

ตัวอย่างด้วย curl:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3:8b",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

เมื่อตั้งค่าเอเจนต์ไว้ (เช่น --agent orchestrator) คำขอแบบไม่สตรีมจะถูก จัดเส้นทางผ่านเอเจนต์ที่เข้าถึง tool ที่ลงทะเบียนไว้ทั้งหมดได้ สำหรับเอเจนต์ ที่ใช้ tool ได้ (orchestrator, react, openhands) tool ที่ลงทะเบียนไว้ ทั้งหมดจะถูกโหลดและเปิดให้ใช้งานโดยอัตโนมัติ


LLM-guided Spec Search (ยังไม่มี CLI)

LLM-guided spec search (ระบบย่อยการเรียนรู้ harness ที่ขับเคลื่อนด้วย frontier) เปิดให้ใช้เป็น Python library เท่านั้น -- ปัจจุบันยังไม่มีคำสั่งย่อย jarvis ระดับบนสุดสำหรับมัน สร้าง SpecSearchOrchestrator โดยตรงจาก openjarvis.learning.spec_search.orchestrator แล้วเรียก .run(trigger) พร้อม trigger จาก openjarvis.learning.spec_search.triggers ดู docs/user-guide/llm-guided-spec-search.md สำหรับสถาปัตยกรรมและส่วนประกอบพื้นฐาน (splits.py, corpus ภายนอก, external_adapter)