Skip to main content

Cli

Struct Cli 

Source
pub struct Cli {
Show 78 fields pub command: Option<Command>, pub log_format: LogFormat, pub debug: bool, pub skippy_metrics_otlp_grpc: Option<String>, pub mesh_guardrails: MeshGuardrailCliMode, pub help_advanced: bool, pub join: Vec<String>, pub discover: Option<String>, pub auto: bool, pub mesh_discovery_mode: MeshDiscoveryMode, pub model: Vec<PathBuf>, pub gguf: Vec<PathBuf>, pub mmproj: Option<PathBuf>, pub port: u16, pub local_model_only: bool, pub native_serving_plugin: Option<PathBuf>, pub native_serving_plugin_config: Option<PathBuf>, pub native_serving_plugin_state: Option<PathBuf>, pub native_serving_plugin_deadline_ms: Option<u64>, pub client: bool, pub console: u16, pub headless: bool, pub swarm_capture: Option<PathBuf>, pub publish: bool, pub mesh_name: Option<String>, pub region: Option<String>, pub min_node_version: Option<String>, pub max_node_version: Option<String>, pub min_protocol_version: Option<u32>, pub max_protocol_version: Option<u32>, pub require_release_attestation: bool, pub release_signer_key: Vec<String>, pub name: Option<String>, pub plugin: Option<String>, pub auto_update: bool, pub speculative_strategy: Option<String>, pub speculative_ngram_min: Option<u32>, pub speculative_ngram_max: Option<u32>, pub speculative_ngram_max_proposal_tokens: Option<u32>, pub speculative_ngram_proposer: Option<SpeculativeNgramProposerCli>, pub speculative_extension_max_tokens: Option<u32>, pub speculative_native_mtp_reject_cooldown_tokens: Option<u32>, pub speculative_native_mtp_suppress_cooldown_drafts: bool, pub speculative_native_mtp_allow_cooldown_drafts: bool, pub speculative_native_mtp_suppress_cooldown_draft_limit: Option<u32>, pub speculative_verify_window_min_tokens: Option<u32>, pub speculative_verify_window_max_tokens: Option<u32>, pub speculative_verify_window_pipeline_depth: Option<u32>, pub draft: Option<PathBuf>, pub draft_max: u16, pub no_draft: bool, pub split: bool, pub split_topology_lock: Option<PathBuf>, pub ctx_size: Option<u32>, pub max_vram: Option<f64>, pub no_enumerate_host: bool, pub bin_dir: Option<PathBuf>, pub llama_flavor: Option<BinaryFlavor>, pub device: Option<String>, pub tensor_split: Option<String>, pub relay: Vec<String>, pub relay_auth: Vec<(String, String)>, pub disable_iroh_relays: bool, pub bind_port: Option<u16>, pub bind_ip: Option<IpAddr>, pub listen_all: bool, pub max_clients: Option<usize>, pub nostr_relay: Vec<String>, pub no_console: bool, pub config: Option<PathBuf>, pub owner_key: Option<PathBuf>, pub control_bind: Option<SocketAddr>, pub control_advertise_addr: Option<SocketAddr>, pub owner_required: bool, pub node_label: Option<String>, pub trust_policy: Option<TrustPolicy>, pub trust_owner: Vec<String>, pub nostr_discovery: bool,
}

Fields§

§command: Option<Command>§log_format: LogFormat

Terminal output format for app-owned runtime events.

§debug: bool

Enable mesh runtime debug output; set MESH_LLM_DEBUG_NATIVE_VERBOSE=1 for verbose llama.cpp native logs.

§skippy_metrics_otlp_grpc: Option<String>

OTLP/gRPC endpoint for embedded Skippy debug telemetry, for example http://127.0.0.1:14317.

§mesh_guardrails: MeshGuardrailCliMode

Server-side mesh guardrail mode for hosted Skippy backends.

§help_advanced: bool

Show all options (including advanced/niche ones).

§join: Vec<String>

Join a mesh via invite token (can repeat).

§discover: Option<String>

Discover a mesh and join it.

§auto: bool

Auto-join the best mesh found via discovery.

§mesh_discovery_mode: MeshDiscoveryMode

Discovery provider for –auto, –discover, –publish, and the discover command.

§model: Vec<PathBuf>

Model to serve (path, remote catalog name, or Hugging Face ref).

§gguf: Vec<PathBuf>

Raw local GGUF file to serve directly (repeatable).

§mmproj: Option<PathBuf>

Explicit mmproj sidecar for the primary served model.

§port: u16

API port (default: 9337).

§local_model_only: bool

Serve one model directly through the local OpenAI API without starting a mesh node.

§native_serving_plugin: Option<PathBuf>

Load a native serving plugin into the dedicated local-model path.

§native_serving_plugin_config: Option<PathBuf>

Absolute path to the native serving plugin configuration.

§native_serving_plugin_state: Option<PathBuf>

Absolute path to the native serving plugin state directory.

§native_serving_plugin_deadline_ms: Option<u64>

Mesh-enforced hard proposal deadline in milliseconds.

§client: bool

Run as a client — no GPU, no model needed.

§console: u16

Web console port (default: 3131).

§headless: bool

Disable the embedded web UI but keep the management API on the –console port.

§swarm_capture: Option<PathBuf>

Write passive swarm debug capture JSONL to this local directory (opt-in, no telemetry egress).

§publish: bool

Publish this mesh for discovery by other nodes. Without this flag, your mesh is private and only joinable via invite token.

§mesh_name: Option<String>

Human-readable name for this mesh (shown in discovery when combined with –publish). Naming a mesh does NOT make it publicly discoverable — use –publish for that.

§region: Option<String>

Region tag, e.g. “US”, “EU”, “AU” (shown in discovery).

§min_node_version: Option<String>

Minimum mesh-llm node version required when creating a new mesh.

§max_node_version: Option<String>

Maximum mesh-llm node version allowed when creating a new mesh.

§min_protocol_version: Option<u32>

Minimum protocol generation required when creating a new mesh.

§max_protocol_version: Option<u32>

Maximum protocol generation allowed when creating a new mesh.

§require_release_attestation: bool

Require release attestation when creating a new mesh.

§release_signer_key: Vec<String>

Allowed release signer key for mesh creation-time attestation policy (repeatable).

§name: Option<String>

Display name for this node.

§plugin: Option<String>

Internal plugin service mode.

§auto_update: bool

Update mesh-llm before continuing for release-bundle installs if a newer bundled release is available.

§speculative_strategy: Option<String>

Override speculative decoding (mtp, ngram-cache, ngram-suffix, or a package strategy id).

§speculative_ngram_min: Option<u32>

Minimum matching N-gram length for the request-local MTP cache extension.

§speculative_ngram_max: Option<u32>

Maximum matching N-gram length for the request-local MTP cache extension.

§speculative_ngram_max_proposal_tokens: Option<u32>

Cap N-gram tokens proposed in one verify window.

§speculative_ngram_proposer: Option<SpeculativeNgramProposerCli>

Standalone N-gram proposer kind (cache or suffix).

§speculative_extension_max_tokens: Option<u32>

Maximum N-gram extension length for a composite MTP strategy.

§speculative_native_mtp_reject_cooldown_tokens: Option<u32>

Native MTP rejection cooldown in generated tokens.

§speculative_native_mtp_suppress_cooldown_drafts: bool

Suppress native MTP drafts while its rejection cooldown is active.

§speculative_native_mtp_allow_cooldown_drafts: bool

Keep native MTP drafts during its rejection cooldown.

§speculative_native_mtp_suppress_cooldown_draft_limit: Option<u32>

Maximum native MTP drafts suppressed by a cooldown.

§speculative_verify_window_min_tokens: Option<u32>

Minimum tokens to include in a pipelined verify window.

§speculative_verify_window_max_tokens: Option<u32>

Maximum tokens to include in a pipelined verify window.

§speculative_verify_window_pipeline_depth: Option<u32>

Number of in-flight pipelined verify windows.

§draft: Option<PathBuf>

Draft model for speculative decoding.

§draft_max: u16

Max draft tokens (default: 8).

§no_draft: bool

Disable automatic draft model detection.

§split: bool

Force tensor split even if the model fits on one node.

§split_topology_lock: Option<PathBuf>

Pin split-serving node order and layer ranges from a JSON topology lock.

§ctx_size: Option<u32>

Override context size (tokens). Default: auto-scaled to available VRAM.

§max_vram: Option<f64>

Cap VRAM used for planning, local-fit decisions, and mesh advertisement (GB).

§no_enumerate_host: bool

Disable broadcasting GPU name, hostname, VRAM, and reserved bytes to peers. By default all nodes announce this hardware info.

§bin_dir: Option<PathBuf>

Path to bundled mesh support binaries.

§llama_flavor: Option<BinaryFlavor>

Override which bundled llama.cpp flavor to use.

§device: Option<String>

Device override for local backend selection.

§tensor_split: Option<String>

Deprecated tensor split override retained for CLI compatibility.

§relay: Vec<String>

Override iroh relay URLs.

§relay_auth: Vec<(String, String)>

Per-relay bearer token for gated iroh relays, formatted as URL=TOKEN. Repeatable. The token is sent as Authorization: Bearer <TOKEN> on the WebSocket upgrade to the matching --relay URL. Relays not listed here register without authentication (the correct behavior for public relays).

Splits on the first = only, so tokens may contain = (base64 padding, JWTs, etc.).

§disable_iroh_relays: bool

Disable iroh relays even when public mesh discovery would normally use them.

§bind_port: Option<u16>

Bind QUIC to a fixed UDP port (for NAT port forwarding).

§bind_ip: Option<IpAddr>

Bind mesh QUIC to a specific local IP address.

§listen_all: bool

Bind to 0.0.0.0 (for containers/Fly.io).

§max_clients: Option<usize>

Stop advertising when N clients connected.

§nostr_relay: Vec<String>

Custom Nostr relay URLs.

§no_console: bool

Ignored (backward compat).

§config: Option<PathBuf>

Optional path to the mesh-llm config file.

§owner_key: Option<PathBuf>

Path to the owner keystore used to attest this node.

§control_bind: Option<SocketAddr>

Bind address for the owner-control listener. Defaults to 127.0.0.1:0 when owner identity is configured.

§control_advertise_addr: Option<SocketAddr>

Advertised owner-control address encoded into the local-only bootstrap token.

§owner_required: bool

Fail startup if owner attestation cannot be loaded or signed.

§node_label: Option<String>

Optional human label attached to this node certificate.

§trust_policy: Option<TrustPolicy>

Override peer ownership trust policy.

§trust_owner: Vec<String>

Add trusted owner IDs on top of the local trust store.

§nostr_discovery: bool

Internal: set when this node joined via Nostr discovery (not –join).

Trait Implementations§

Source§

impl Args for Cli

Source§

fn group_id() -> Option<Id>

Report the ArgGroup::id for this set of arguments
Source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

impl CommandFactory for Cli

Source§

fn command<'b>() -> Command

Build a Command that can instantiate Self. Read more
Source§

fn command_for_update<'b>() -> Command

Build a Command that can update self. Read more
Source§

impl Debug for Cli

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromArgMatches for Cli

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Parser for Cli

Source§

fn parse() -> Self

Parse from std::env::args_os(), exit on error.
Source§

fn try_parse() -> Result<Self, Error>

Parse from std::env::args_os(), return Err on error.
Source§

fn parse_from<I, T>(itr: I) -> Self
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Parse from iterator, exit on error.
Source§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Parse from iterator, return Err on error.
Source§

fn update_from<I, T>(&mut self, itr: I)
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Update from iterator, exit on error. Read more
Source§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Update from iterator, return Err on error.

Auto Trait Implementations§

§

impl Freeze for Cli

§

impl RefUnwindSafe for Cli

§

impl Send for Cli

§

impl Sync for Cli

§

impl Unpin for Cli

§

impl UnsafeUnpin for Cli

§

impl UnwindSafe for Cli

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.