Skip to main content

A CLI that does the work

straymark is a single Rust binary with eleven subcommands that operate on your repo: scaffolding, validating, auditing, analyzing complexity, generating compliance reports. Deterministic outputs you can pipe to grep, jq, or CI.

Why this matters

  • One install path, one upgrade path. No language-runtime hunt, no Docker layer, no orchestration. curl -fsSL .../install.sh | sh puts it on $PATH. straymark update-cli keeps it current.
  • No hidden side effects. straymark validate reads files; straymark audit produces a markdown report. None of the subcommands call out to APIs or modify your git state without you asking. Safe to wire into pre-commit and CI.
  • The CLI is the contract. The same straymark validate runs locally, in pre-commit, and in pipelines. There isn't a "CI mode" with different rules.

The eleven commands

CommandWhat it does
straymark init [path]Initialize StrayMark in a project
straymark updateUpdate both framework and CLI
straymark status [path]Show installation health and doc stats
straymark repair [path]Restore missing directories and framework files
straymark validate [path] [--staged]Validate documents for compliance and correctness
straymark new [-t type] [--title]Create a new document from a template
straymark compliance [path]Check regulatory compliance (EU AI Act, ISO 42001, NIST, ...)
straymark metrics [path]Show governance metrics and documentation statistics
straymark analyze [path]Analyze code complexity (cognitive + cyclomatic)
straymark audit [path]Generate audit trail reports with timeline and traceability
straymark explore [path]Interactive TUI documentation browser

All commands respect --json where it makes sense, so output is machine-readable.

Powered by arborist-metrics: straymark analyze computes cognitive and cyclomatic complexity via arborist-metrics — our open-source Rust library for multi-language code metrics, also developed by StrangeDaysTech S.A.S. de C.V.

Browse the docs with straymark explore

straymark explore opens an interactive terminal UI over .straymark/: a three-pane TUI with the documentation tree, per-document metadata, and the rendered markdown — keyboard-driven, no daemon, no extra dependency. Screenshots below are from Sentinel, the project that empirically validates the framework, with 131 indexed documents.

Built for piping

# Find every open TDE sorted by impact:
straymark metrics --json | jq '.tde[] | select(.status=="identified") | .id'

# Fail CI when any high-risk Charter lacks an AILOG:
straymark validate --staged || exit 1

# Diff complexity between two commits:
straymark analyze --since HEAD~10

Learn more