Skip to main content

vrin insert

Insert text content into the knowledge base. VRIN automatically chunks the text, extracts structured facts, and indexes everything in the knowledge graph.
vrin insert "ACME Corp reported $50M revenue in Q4 2025, up 23% YoY." --title "ACME Q4"

Options

FlagShortDefaultDescription
--title-t"Untitled"Document title
--tagTags (repeatable: --tag finance --tag earnings)
--metadataMetadata as JSON string
--wait / --no-wait--waitWait for processing to complete
--dry-runfalseShow payload without sending
--jsonForce JSON output

Async mode

By default, insert waits for fact extraction to complete. Use --no-wait to get a job ID immediately:
vrin insert "long document content..." --title "Report" --no-wait --json
# {"ok": true, "data": {"job_id": "job_abc123"}}

# Check status later
vrin job job_abc123

Tags and metadata

vrin insert "content" \
  --title "Q4 Earnings" \
  --tag finance \
  --tag quarterly \
  --metadata '{"source": "SEC filing", "period": "Q4 2025"}'

vrin upload

Upload a file to the knowledge base. Supports PDF, CSV, TXT, MD, and DOCX.
vrin upload ./earnings_report.pdf

Options

FlagDefaultDescription
--save-to-memory / --no-save-to-memory--save-to-memoryPersist extracted knowledge permanently
--wait / --no-wait--waitWait for processing to complete
--jsonForce JSON output

Examples

# Upload and wait for processing
vrin upload ./report.pdf

# Upload without waiting
vrin upload ./report.pdf --no-wait --json
# {"ok": true, "data": {"job_id": "job_xyz789"}}

# Upload for temporary analysis (not persisted)
vrin upload ./draft.pdf --no-save-to-memory

vrin bulk-insert

Insert multiple items from a JSON file. Uses adaptive concurrency for fast batch processing.
vrin bulk-insert ./papers.json

Input format

The JSON file must contain an array of objects:
[
  {
    "content": "First document text...",
    "title": "Document 1",
    "tags": ["research"],
    "metadata": {"author": "Smith"}
  },
  {
    "content": "Second document text...",
    "title": "Document 2"
  }
]
Only content is required. title, tags, and metadata are optional.

Options

FlagDefaultDescription
--concurrency8Initial concurrent workers
--max-concurrency25Maximum concurrent workers (auto-scales)
--tagDefault tags applied to all items
--jsonForce JSON output

Example

# Insert 100 research papers with progress output
vrin bulk-insert ./papers.json --tag research --tag 2025

# Output:
# [1/100] completed: Adaptive-RAG: Learning to Adapt...
# [2/100] completed: Self-RAG: Learning to Retrieve...
# ...

vrin job

Check the status of an async job (from --no-wait inserts or uploads).
vrin job job_abc123

Options

FlagDescription
--waitPoll until the job completes
--jsonForce JSON output

Example

# Check once
vrin job job_abc123 --json
# {"ok": true, "data": {"status": "processing", "progress": 0.6}}

# Wait for completion
vrin job job_abc123 --wait --json
# {"ok": true, "data": {"status": "completed", "facts_extracted": 47}}