pub enum SessionCommand {
New {
name: Option<String>,
relay: String,
with_local: bool,
local_relay: String,
no_daemon: bool,
json: bool,
},
List {
json: bool,
},
ListLocal {
json: bool,
},
PairAllLocal {
settle_secs: u64,
federation_relay: String,
json: bool,
},
Env {
name: Option<String>,
json: bool,
},
Current {
json: bool,
},
Destroy {
name: String,
force: bool,
json: bool,
},
}Variants§
New
Bootstrap a new isolated session in this machine’s sessions root.
With no name, derives one from basename(cwd) and caches it in
the registry so re-running from the same project reuses it.
Runs init + claim + spawns a session-local daemon, all inside
the new session’s WIRE_HOME. Output includes the export WIRE_HOME=... line operators paste into their shell to activate
it.
Fields
with_local: boolv0.5.17: also allocate a second slot on a same-machine local
relay (defaults to http://127.0.0.1:8771). Within-machine
sister-session traffic prefers this path: zero round-trip
latency, zero metadata exposure to the public relay. Probes
<local-relay>/healthz first; silently skips if the local
relay isn’t running.
local_relay: Stringv0.5.17: override the local relay URL probed by --with-local.
Default is http://127.0.0.1:8771 to match
wire relay-server --bind 127.0.0.1:8771 --local-only.
List
List all sessions on this machine with their handle, DID, daemon liveness, and the cwd they’re associated with.
ListLocal
List sister sessions reachable via a same-machine local relay (v0.5.17 dual-slot). Groups sessions by the local-relay URL they share. Sessions without a Local-scope endpoint are listed separately so the operator can tell which are federation-only. Read-only — does not probe any relay or touch daemons.
PairAllLocal
v0.6.0 (issue #12): mesh-pair every sister session against every
other in O(N²) handshakes. For each unordered pair (A, B) that
is not already paired, drives the bilateral flow end-to-end:
wire add from A → B (queued + pushed), wire pair-accept on
B’s side, then a final pull on A so the ack lands. Idempotent —
re-running skips pairs already in state.peers.
Trust anchor: the operator running this command owns every
session listed in wire session list-local (they all live under
the same $WIRE_HOME/sessions/ directory the operator chose).
That filesystem-permission boundary IS the consent for both
sides — the bilateral SAS / network-level handshake assumes
strangers; same-uid sister sessions are by definition not
strangers. Cross-uid sister sessions are out of scope; today
wire session list-local only enumerates this user’s sessions.
Fields
settle_secs: u64Seconds to wait between handshake stages for pair_drop / pair_drop_ack to propagate over the relay. Default 1s (local-relay is typically <100ms RTT). Bump if you see “pending-inbound never arrived” errors on a slow relay.
Env
Print the export WIRE_HOME=... line for a session, so a shell
can eval $(wire session env <name>) to activate it. With no
name, resolves the cwd through the registry.
Current
Identify which session the current cwd maps to in the registry.
Prints (none) if cwd isn’t registered — wire session new
would create one.
Destroy
Tear down a session: kills its daemon (if running), deletes its
state directory, and removes it from the registry. Requires
--force because state loss is unrecoverable (keypair gone).
Trait Implementations§
Source§impl Debug for SessionCommand
impl Debug for SessionCommand
Source§impl FromArgMatches for SessionCommand
impl FromArgMatches for SessionCommand
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<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Subcommand for SessionCommand
impl Subcommand for SessionCommand
Source§fn augment_subcommands<'b>(__clap_app: Command) -> Command
fn augment_subcommands<'b>(__clap_app: Command) -> Command
Source§fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommand