mx
A Swiss army knife for Claude Code and multi-agent toolkits.
A Rust CLI providing encoded git operations, a SurrealDB-backed knowledge graph, session archival, GitHub sync, and emotional state tensors. Designed for use with Claude Code, but works with any multi-agent workflow that needs persistent memory, encoded commits, or session management.
Installation
Or from source:
Requires Rust 2024 edition. The binary is named mx.
Quick Start
Encoded Git Commits
mx commit wraps git commit but encodes the message using base-d. The commit title is hashed and the body is compressed, each encoded through a randomly selected dictionary. The result looks like hieroglyphs in git log but decodes cleanly with mx log.
# Stage all and commit with an encoded message
# Stage all, commit, and push
# See what the encoding produces without committing
Decoded Git Log
# Last 10 commits, decoded
# Last 20 commits with full details
Decoded Git Show
mx show is a drop-in replacement for git show that transparently decodes encoded commit messages. All git show flags work as expected.
# Show the latest commit, decoded
# Show a specific commit with diffstat
# Show just the commit message, no diff
# View a file at a specific revision (passes through to git show)
Knowledge / Memory
The memory system is a knowledge graph backed by SurrealDB (or embedded SurrealKV). Entries have categories, tags, resonance levels, embeddings, and relationships.
# Search knowledge entries
# Semantic (vector) search
# Add a knowledge entry
# Show a specific entry
# List entries filtered by category
# Statistics
Default categories: pattern, technique, insight, gotcha, reference, decision, bloom, session. Categories are customizable per-deployment -- run mx memory categories list to see available categories.
PR Merge
# Squash merge (default) with encoded commit message
# Rebase merge
# Standard merge commit
Session Archival (Codex)
Archives Claude session JSONL files to permanent storage with transcripts, extracted images, and manifests.
# Archive the current session
# Archive with clean markdown transcript only (no raw JSONL)
# Archive all unarchived sessions
# List archived sessions
# Read an archived session
# Search across all archives
GitHub Sync
Pull and push issues/discussions as local YAML files.
Configuration
Everything mx writes lives under a single base directory: $MX_HOME, default
~/.mx/. Each subsystem owns a subdirectory (kv/, state/, memory/,
codex/, ...). Move the whole tree by setting MX_HOME, or override one
subsystem at a time with vars like MX_SURREAL_ROOT, MX_CODEX_PATH,
MX_KV_SCHEMA, MX_KV_DATA, MX_ISOLATE_FASTEMBED.
Two env vars were removed in the path-alignment refactor (#259):
MX_MEMORY_PATH-- useMX_SURREAL_ROOTinstead. Setting the old name now emits a one-line stderr note and is otherwise ignored.MX_STATE_SCHEMA-- replaced by themx state ... --schema {id|path}CLI flag. The default schema ID is nowtensor(wascrewu).
For the full layout, the complete env-var reference (including SurrealDB connection vars, GitHub App auth, and tuning), legacy-fallback behavior, and worked examples, see the filesystem layout.
Documentation
For the complete command reference, configuration guide, and architecture docs, see the full documentation.
Status
Published on crates.io. The API surface is evolving.
Licensed under Apache 2.0.