pub struct PutArgs {Show 48 fields
pub file: PathBuf,
pub json: bool,
pub input: Option<String>,
pub uri: Option<String>,
pub title: Option<String>,
pub timestamp: Option<i64>,
pub track: Option<String>,
pub kind: Option<String>,
pub video: bool,
pub transcript: bool,
pub tags: Vec<(String, String)>,
pub labels: Vec<String>,
pub metadata: Vec<String>,
pub no_auto_tag: bool,
pub no_extract_dates: bool,
pub no_extract_triplets: bool,
pub audio: bool,
pub transcribe: bool,
pub audio_segment_seconds: Option<u32>,
pub embedding: bool,
pub no_embedding: bool,
pub embedding_vec: Option<PathBuf>,
pub embedding_vec_model: Option<String>,
pub vector_compression: bool,
pub contextual: bool,
pub contextual_model: Option<String>,
pub tables: bool,
pub no_tables: bool,
pub extraction_budget_ms: Option<u64>,
pub clip: bool,
pub no_clip: bool,
pub update_existing: bool,
pub allow_duplicate: bool,
pub temporal_enrich: bool,
pub memory_id: Option<MemoryId>,
pub logic_mesh: bool,
pub parallel_segments: bool,
pub no_parallel_segments: bool,
pub parallel_segment_tokens: Option<usize>,
pub parallel_segment_pages: Option<usize>,
pub parallel_threads: Option<usize>,
pub parallel_queue_depth: Option<usize>,
pub raw: bool,
pub no_raw: bool,
pub dedup: bool,
pub enrich: bool,
pub no_enrich: bool,
pub lock: LockCliArgs,
}Expand description
Arguments for the put subcommand
Fields§
§file: PathBufPath to the memory file to append to
json: boolEmit JSON instead of human-readable output
input: Option<String>Read payload bytes from a file instead of stdin
uri: Option<String>Override the derived URI for the document
title: Option<String>Override the derived title for the document
timestamp: Option<i64>Optional timestamp to store on the frame. Accepts epoch seconds (1673740800) or human-readable dates: “Jan 15, 2023”, “2023-01-15”, “01/15/2023”
track: Option<String>Track name for the frame
kind: Option<String>Kind metadata for the frame
video: boolStore the payload as a binary video without transcoding
transcript: boolAttempt to attach a transcript (Dev/Enterprise tiers only)
Tags to attach in key=value form
labels: Vec<String>Free-form labels to attach to the frame
metadata: Vec<String>Additional metadata payloads expressed as JSON
no_auto_tag: boolDisable automatic tag generation from extracted text
no_extract_dates: boolDisable automatic date extraction from content
no_extract_triplets: boolDisable automatic triplet extraction (SPO facts as MemoryCards)
audio: boolForce audio analysis and tagging when ingesting binary data
transcribe: boolTranscribe audio using Whisper and use the transcript for text embedding Requires the ‘whisper’ feature to be enabled
audio_segment_seconds: Option<u32>Override the default segment duration (in seconds) when generating audio snippets
embedding: boolCompute semantic embeddings using the installed model Increases storage overhead from ~5KB to ~270KB per document
no_embedding: boolExplicitly disable embeddings (default, but kept for clarity)
embedding_vec: Option<PathBuf>Path to a JSON file containing a pre-computed embedding vector (e.g., from OpenAI) The JSON file should contain a flat array of floats like [0.1, 0.2, …]
embedding_vec_model: Option<String>Embedding model identity for the provided --embedding-vec vector.
This is written into per-frame extra_metadata (memvid.embedding.*) so that
semantic queries can auto-select the correct runtime across CLI/SDKs.
Options: bge-small, bge-base, nomic, gte-large, openai, openai-small, openai-ada, nvidia
(also accepts canonical IDs like text-embedding-3-small and BAAI/bge-small-en-v1.5).
vector_compression: boolEnable Product Quantization compression for vectors (16x compression) Reduces vector storage from ~270KB to ~20KB per document with ~95% accuracy Only applies when –embedding is enabled
contextual: boolEnable contextual retrieval: prepend LLM-generated context to each chunk before embedding This improves retrieval accuracy for preference/personalization queries Requires OPENAI_API_KEY or a local model (phi-3.5-mini)
contextual_model: Option<String>Model to use for contextual retrieval (default: gpt-4o-mini, or “local” for phi-3.5-mini)
tables: boolAutomatically extract tables from PDF documents Uses aggressive mode with fallbacks for best results
no_tables: boolDisable automatic table extraction (when –tables is the default)
extraction_budget_ms: Option<u64>Time budget for text extraction per document (milliseconds)
When set, extraction stops early and queues the frame for background enrichment
Use memvid process-queue to complete extraction later
clip: boolEnable CLIP visual embeddings for images and PDF pages Allows text-to-image search using natural language queries Disabled by default; use –clip to enable
no_clip: boolDisable CLIP visual embeddings (no-op, CLIP is disabled by default)
update_existing: boolReplace any existing frame with the same URI instead of inserting a duplicate
allow_duplicate: boolAllow inserting a new frame even if a frame with the same URI already exists
temporal_enrich: boolEnable temporal enrichment: resolve relative time phrases (“last year”) to absolute dates Prepends resolved temporal context to chunks for improved temporal question accuracy Requires the temporal_enrich feature in memvid-core
memory_id: Option<MemoryId>Bind to a dashboard memory ID (UUID or 24-char ObjectId) for capacity and tracking If the file is not already bound, this will sync the capacity ticket from the dashboard
logic_mesh: boolBuild Logic-Mesh entity graph during ingestion (opt-in)
Extracts entities (people, organizations, locations, etc.) and their relationships
Enables graph traversal with memvid follow
Requires NER model: memvid models install --ner distilbert-ner
parallel_segments: boolUse the experimental parallel segment builder (requires –features parallel_segments)
no_parallel_segments: boolForce the legacy ingestion path even when the parallel feature is available
parallel_segment_tokens: Option<usize>Target tokens per segment when using the parallel builder
parallel_segment_pages: Option<usize>Target pages per segment when using the parallel builder
parallel_threads: Option<usize>Worker threads used by the parallel builder
parallel_queue_depth: Option<usize>Worker queue depth used by the parallel builder
raw: boolStore raw binary content along with extracted text. By default, only extracted text + BLAKE3 hash is stored (–no-raw behavior). Use –raw when you need to retrieve the original file later.
no_raw: boolDon’t store raw binary content (DEFAULT behavior). Only extracted text + BLAKE3 hash is stored. This flag is kept for backwards compatibility but is now the default.
dedup: boolSkip ingestion if identical content (by BLAKE3 hash) already exists in the memory. Returns the existing frame’s ID instead of creating a duplicate.
enrich: boolRun rules-based memory extraction after ingestion (default: enabled) Extracts facts, preferences, events, relationships from ingested content
no_enrich: boolDisable automatic rules-based enrichment
lock: LockCliArgsImplementations§
Source§impl PutArgs
impl PutArgs
pub fn wants_parallel(&self) -> bool
pub fn sanitized_parallel_opts(&self) -> BuildOpts
Trait Implementations§
Source§impl Args for PutArgs
impl Args for PutArgs
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl FromArgMatches for PutArgs
impl FromArgMatches for PutArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Auto Trait Implementations§
impl Freeze for PutArgs
impl RefUnwindSafe for PutArgs
impl Send for PutArgs
impl Sync for PutArgs
impl Unpin for PutArgs
impl UnwindSafe for PutArgs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);