pub enum Command {
Show 27 variants
RetiredHook {
sub: &'static str,
},
Serve {
db_dir: PathBuf,
addr: SocketAddr,
ui: ServeUi,
demo_if_empty: bool,
token: Option<String>,
role_tokens: Vec<(String, String)>,
snapshot_every: Option<Duration>,
restore_from: Option<PathBuf>,
tls_cert: Option<PathBuf>,
tls_key: Option<PathBuf>,
},
Mcp {
db_dir: Option<PathBuf>,
auto: bool,
all_tools: bool,
},
Stats {
db_dir: PathBuf,
},
Demo {
db_dir: PathBuf,
},
AsOf {
db_dir: PathBuf,
commit: Option<u64>,
at: Option<String>,
query: Option<String>,
namespace: Option<String>,
},
Suggest {
db_dir: PathBuf,
},
Algo {
db_dir: PathBuf,
subcmd: AlgoSubcmd,
top: usize,
dir: AlgoDir,
edge_types: Vec<String>,
weight_prop: Option<String>,
min_weight: Option<f64>,
},
Query {
db_dir: PathBuf,
cypher: String,
role: Option<String>,
namespace: Option<String>,
},
Snapshot {
db_dir: PathBuf,
wal: WalDisposition,
retention: Option<u32>,
},
BuildIndex {
db_dir: PathBuf,
rule: Option<String>,
},
SchemaApply {
db_dir: PathBuf,
schema_file: Option<PathBuf>,
memory_defaults: bool,
memory_identity: bool,
},
Migrate {
db_dir: PathBuf,
},
Verify {
db_dir: PathBuf,
},
Backup {
db_dir: PathBuf,
dest: PathBuf,
},
Export {
db_dir: PathBuf,
dest: PathBuf,
format: ExportFormat,
},
IngestGit {
db_dir: PathBuf,
opts: IngestGitOpts,
},
Install(InstallOpts),
Uninstall(InstallOpts),
Disable(ToggleOpts),
Enable(ToggleOpts),
Doctor(DoctorOpts),
Recall {
db_dir: Option<PathBuf>,
auto: bool,
},
Brief {
db_dir: Option<PathBuf>,
auto: bool,
},
Why {
db_dir: PathBuf,
a: String,
b: String,
},
Version,
Help,
}Expand description
Parsed mushroomdb invocation.
No Eq derive: Algo { min_weight: Option<f64>, .. } carries a float.
Variants§
RetiredHook
A hook body 0.6 installed and 0.7 retired: touch, intercept,
impact-hook and enrich in the assistant’s settings, sync in the
git hooks. A machine that upgraded without re-running install still
calls them, so each is accepted with any arguments, opens nothing, and
prints one stderr line saying how to remove it. Never in usage.
Serve
Fields
addr: SocketAddrdemo_if_empty: boolIf the db dir is missing or empty, run run_demo before serving.
Docker’s default CMD uses this so a fresh volume is ready on first boot.
role_tokens: Vec<(String, String)>Role-bound tokens from --role-token TOKEN:ROLE flags.
Merged with MUSHROOMDB_ROLE_TOKENS env var in main before serving.
restore_from: Option<PathBuf>Seed an empty db_dir from the newest backup under this directory
before opening it. See restore_if_empty. None = off (default).
Mcp
Fields
db_dir: Option<PathBuf>None with auto set: resolved by resolve_auto_db at run time.
Stats
Demo
AsOf
Read-only view of the database at a past commit.
Fields
commit: Option<u64>0-based WAL commit index to replay up to (inclusive).
Exactly one of commit and at is set — the parser refuses both and
refuses neither, because a precedence rule between them is how a
caller ends up believing it asked for a date while the engine
answered a commit.
Suggest
Profile the database and suggest linking rules with estimated edge counts.
Algo
Run a graph algorithm (pagerank / wcc / degree / communities).
Fields
subcmd: AlgoSubcmddir: AlgoDirEdge direction for degree/pagerank (out / in / both).
Ignored by wcc and communities, which are always undirected.
Query
Run a Cypher query (read or write).
Fields
Snapshot
Write snapshot.bin. The WAL is archived unless told otherwise.
Fields
wal: WalDispositionBuildIndex
Drive any outstanding vector-index build to completion.
SchemaApply
Apply a JSON schema file idempotently (schema apply <db-dir> <schema.json>),
the built-in memory schema (schema apply <db-dir> --memory-defaults), or
the identity preset (schema apply <db-dir> --memory-identity).
Fields
Migrate
Migrate an old-format snapshot to the current version and keep .bak.
Verify
Validate CRC32 integrity of every section in the V8 snapshot.
Backup
Create a consistent, verified copy of the database directory.
Export
Export all nodes, edges, and rules to a destination directory.
IngestGit
Build (or incrementally sync) a graph of a git repository.
Install(InstallOpts)
Wire the /mushroom skill and MCP server into Claude Code / Cursor.
Uninstall(InstallOpts)
Undo what install wrote (manifest-driven).
Disable(ToggleOpts)
Turn an install off without removing it: strips the hooks, the MCP
entry and the git hook blocks; the skill, the store and the
.gitignore line stay.
Enable(ToggleOpts)
Turn a disabled install back on, re-deriving the dynamic parts (the resolved command, the hooks) rather than replaying stale ones.
Doctor(DoctorOpts)
Verify an install end to end: config, store, hooks, and a real MCP handshake.
Recall
Body of the Claude Code UserPromptSubmit hook: reads a prompt payload on stdin, prints related graph facts on stdout.
Brief
Body of the Claude Code SessionStart hook: prints the repository in one byte-stable block, which the host caches for the whole session.
Why
What links two nodes, with the evidence behind each link.
Version
Help
Trait Implementations§
impl StructuralPartialEq for Command
Auto Trait Implementations§
impl Freeze for Command
impl RefUnwindSafe for Command
impl Send for Command
impl Sync for Command
impl Unpin for Command
impl UnsafeUnpin for Command
impl UnwindSafe for Command
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.