Skip to content

v0.1.5

Choose a tag to compare

@ruslanmv ruslanmv released this 04 Sep 20:57
· 18 commits to master since this release

Matrix CLI v0.1.5 — Release Notes

Highlights

  • Zero-JSON one-shot: matrix do <alias> "Your text" — runs the default tool using schema-aware mapping.
  • Schema-aware help: matrix help <alias> [--tool NAME] — human-readable usage with a copy-paste “Try:” line.
  • Smarter mcp call: new --wizard, --text, --kv key=val + enhanced --args (files, stdin, optional YAML).
  • Instant quickstart: matrix run prints a small, heuristic banner tailored to the server (no network I/O).
  • (Beta) REPL: matrix chat <alias> keeps one MCP session open for low-latency loops (optional).

New Commands

  • matrix do — One-shot, zero-JSON call

    • Maps a plain string to the tool’s primary input (e.g., query/prompt/text).
    • Falls back to wizard guidance for complex tools.
  • matrix help — Usage from JSON Schema

    • Lists tools + 1-line descriptions, or detailed args for a single tool.
    • Prints one “Try:” command (either matrix do … or matrix mcp call … --wizard).
  • matrix chat (beta, optional) — Tiny, persistent REPL

    • Keeps a single SSE session open for minimal latency.
    • Built to be backend-agnostic (future hooks for Ollama, OpenAI, watsonx.ai, Gemini).

Enhancements to Existing Commands

matrix mcp call

  • New flags (backward-compatible):

    • --wizard | -w — prompt for string/number/integer/boolean/enum (arrays/objects via pasted JSON).
    • --text "…" — maps text to the default input key (schema-aware).
    • --kv key=val (repeatable) — light coercion for bool/int/float.
  • Enhanced --args:

    • @file.json (existing), @- (stdin), @file.yaml|.yml (if PyYAML installed).
    • Conservative lenient JSON only if strict parsing fails (e.g., single→double quotes).
  • Performance: still one connect + one call; no extra round-trips or retries added.

matrix run

  • Keeps the original “Next steps (MCP)” unchanged.

  • Adds a zero-latency Quickstart banner (≤3 bullets) inferred from local runner.json:

    • No-input: matrix do <alias>
    • Single-string: matrix do <alias> "Example input"
    • Complex: matrix mcp call <tool> --alias <alias> --wizard

CLI Startup

  • Lazy registration for do, help, and optional chat to keep cold starts fast.

Matrix SDK Installer Updates (bundled via dependency bump)

This release includes the updated matrix-sdk installer with numerous reliability and cross-platform fixes that improve first-run success and speed.

Notable Improvements

  • Stricter runner validation: runner.json for python/node now requires entry; prevents broken installs early.

  • Smarter runner discovery:

    • Embedded runner_b64 / runner_url handling.
    • Shallow BFS search for runner.json (depth configurable).
    • Synthesis from embedded manifests (v2 direct runner, v1 connector from server URL).
    • Optional connector synthesis with normalized /sse endpoints.
  • Robust environment prep:

    • Fresh isolated venv creation; automatic fallback if symlinks fail (Windows-friendly).
    • python_builder support when available; falls back to requirements.txt / pyproject.toml / setup.py.
    • Poetry non-package mode handling; editable installs with safe fallback to non-editable.
    • Custom pip indexes via env: MATRIX_SDK_PIP_INDEX_URL, MATRIX_SDK_PIP_EXTRA_INDEX_URL.
  • Artifact fetch resilience:

    • Git/http fetchers with clear logging; legacy git clone command shim supported.
    • Relative URLs resolved against provenance; optional domain allow-list.
  • Safer planning & paths:

    • Server-safe target labels by default (no absolute path leakage).
    • Early, explicit writable-target check with clear error messages.
  • Cleaner subprocess logging: Captures stdout/stderr for diagnostics without noisy normal output.

New/Notable Environment Variables

  • MATRIX_SDK_HTTP_TIMEOUT (default 15)
  • MATRIX_SDK_RUNNER_SEARCH_DEPTH (default 2)
  • MATRIX_SDK_ENABLE_CONNECTOR (default on)
  • MATRIX_SDK_PIP_INDEX_URL, MATRIX_SDK_PIP_EXTRA_INDEX_URL
  • MATRIX_INSTALL_SEND_ABS_TARGET (off by default; controls absolute target disclosure)
  • MATRIX_SDK_ALLOW_MANIFEST_FETCH (on by default)
  • MATRIX_SDK_MANIFEST_DOMAINS (comma-separated allow-list)
  • MATRIX_SDK_PIP_EDITABLE (default on)
  • MATRIX_SDK_DEBUG (enables detailed installer logs)

Compatibility

  • No breaking changes to existing CLI behavior.
  • YAML parsing in mcp call is enabled only when PyYAML is installed (optional extra).

Examples

# One-shot, no JSON
matrix do watsonx-chat "Tell me about Genova"

# Discover arguments
matrix help image-suite
matrix help image-suite --tool resize

# Guided call for complex tools
matrix mcp call resize --alias image-suite --wizard

# Flexible args
echo '{"query":"Hello"}' | matrix mcp call chat --alias watsonx-chat --args @-
matrix mcp call search --alias suite --kv q=linux --kv top_k=5

Upgrade

pip install -U matrix-cli
# optional YAML support
pip install "matrix-cli[yaml]"

Thanks

Huge thanks to everyone reporting first-run issues and testing at scale. The installer and UX should feel faster and more reliable across Windows, macOS, and Linux. Keep the feedback coming!