Skip to main content

ML/DS demo document CLI tool with metrics, gate decisions, and artifact emission

Project description

mlscribe

A CLI tool for creating and managing ML/DS demo documents, with metrics tracking, gate decisions, and JSON artifact emission compatible with the agentic-ml-plugin schema.

Installation

You can run it without installing it first using uvx:

uvx mlscribe --help

Or install it like this, then run mlscribe --help:

uv tool install mlscribe
# or
uv pip install mlscribe

You can also install the Go binary directly:

go install github.com/lawwu/mlscribe@latest

Or run it without installation like this:

go run github.com/lawwu/mlscribe@latest --help

Usage

mlscribe <command> [options]

Core Commands

Command Description
init <file> <title> Create a new document
note <file> [text] Append commentary (reads from stdin if no text arg)
exec <file> <lang> [code] Run code, capture output, append both to document
image <file> <image-path> Copy image into doc dir and embed a reference
pop <file> Remove the last block
verify <file> Re-run all code blocks and compare output (exits 1 on mismatch)
extract <file> Emit CLI commands to recreate the document

ML/DS Commands

Command Description
metrics <file> --json '{...}' Append a metrics table block
gate <file> <name> <PASS|FAIL|SKIPPED> Append a gate decision block
artifact <file> --skill <name> --out-dir <dir> Write a JSON artifact file

Examples

# Create a new document
mlscribe init experiment.md "Model Training Experiment"

# Add a note
mlscribe note experiment.md "Training ResNet-50 on CIFAR-10"

# Run code and capture output
mlscribe exec experiment.md python "print('hello world')"

# Record metrics
mlscribe metrics experiment.md --json '{"accuracy": 0.94, "loss": 0.12}'

# Record metrics with baseline delta
mlscribe metrics experiment.md --json '{"accuracy": 0.94}' --baseline baseline.json

# Record a gate decision
mlscribe gate experiment.md data-quality PASS --decision GO --confidence high

# Emit a JSON artifact compatible with agentic-ml-plugin
mlscribe artifact experiment.md --skill eda --out-dir ./artifacts \
  --run-id run-001 --json '{"decision": "GO", "summary": "Data quality good"}'

# Verify all code blocks still produce the same output
mlscribe verify experiment.md

# Extract CLI commands to recreate the document
mlscribe extract experiment.md

Options

exec options:

  • --workdir <dir> — Working directory for code execution

metrics options:

  • --json <json> — Metrics as JSON object (or pipe via stdin)
  • --baseline <file> — Baseline metrics file for delta computation

gate options:

  • --decision GO|NO-GO|CONDITIONAL — Gate decision
  • --confidence high|medium|low — Confidence level
  • --findings <text> — Findings text or JSON

artifact options:

  • --skill <name> — Skill name (required)
  • --out-dir <dir> — Output directory (required)
  • --run-id <id> — Run ID for artifact correlation
  • --json <json> — Artifact payload JSON (or pipe via stdin)

Supported Languages (exec)

python, python3, bash, sh, zsh, ruby, node, javascript, js, r

Artifact Schema

JSON artifacts match the agentic-ml-plugin base schema (schema_version: "1.0"):

{
  "schema_version": "1.0",
  "skill_name": "...",
  "run_id": "...",
  "timestamp": "...",
  "decision": "...",
  "confidence": "...",
  "summary": "...",
  "findings": "...",
  "next_commands": []
}

Environment

Variable Description
MLSCRIBE_REMOTE_URL If set, POST the document to this URL after each write

Acknowledgements

Inspired by simonw/showboat by Simon Willison.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mlscribe-0.1.0-py3-none-win_arm64.whl (3.4 MB view details)

Uploaded Python 3Windows ARM64

mlscribe-0.1.0-py3-none-win_amd64.whl (3.6 MB view details)

Uploaded Python 3Windows x86-64

mlscribe-0.1.0-py3-none-musllinux_1_2_x86_64.whl (3.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

mlscribe-0.1.0-py3-none-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

mlscribe-0.1.0-py3-none-manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

mlscribe-0.1.0-py3-none-manylinux_2_17_aarch64.whl (3.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

mlscribe-0.1.0-py3-none-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

mlscribe-0.1.0-py3-none-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file mlscribe-0.1.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: mlscribe-0.1.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mlscribe-0.1.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 18c3cb26b82f382f4e4ed5eea253c140302c874ffabbadee3312f9034f09fcdd
MD5 2bcde1a97e719ccb49ab8234ceb65eb8
BLAKE2b-256 da1ee37cf13a93c05f9f1149ac030248c5ad1b2a74a7d78fcb4662a0eb2eb2fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-win_arm64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlscribe-0.1.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: mlscribe-0.1.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mlscribe-0.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7972d90d9e44ce359d05d1262bca2f0239c36699f4006cf68564c8b1bfcf15c7
MD5 6fa44e3989ff2bdf3d2cf9ce1c952fb3
BLAKE2b-256 f56da04dce451dad8e308089d9ff642404c9b15def28eac47055994285949370

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-win_amd64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlscribe-0.1.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mlscribe-0.1.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95d4916318ca0a0d983dae3422fe1ad38dd0d44860e6a616a03193aa745439bb
MD5 3324e1bf51f106b71ff2233056921655
BLAKE2b-256 105390528a00239283b081c0ba401751c5e6065413ecf1a2162401ad9d368b3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlscribe-0.1.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for mlscribe-0.1.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 448d99b58ef59bd51929a472aa4b58598c4c758ffdd6b1c1f976bba05caed7e9
MD5 3f639bff71fd1fc096b34479fb9338e9
BLAKE2b-256 6a689f9567b85443546c633dc15e3a06c4e51ca63c42bd9a41099731f0b5a499

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlscribe-0.1.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for mlscribe-0.1.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3a03c37e4e1c91246285eddd4cb6c5168aca6208893832fc01647e0d30e7f39f
MD5 8349b3a5a5573b667034b51d8b977973
BLAKE2b-256 16a00e3d58d66dd0eb6b828413223fdf24b90f5fa0a4d7c87bb1e0f26a9e66fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-manylinux_2_17_x86_64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlscribe-0.1.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for mlscribe-0.1.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ad3455569383c8359b8922a42f9f3209c3dc76c8375711a16f347f657a1d4028
MD5 d6dab81320c9a8ab1f0e96109b21256e
BLAKE2b-256 7aa62132adfe1db963eb6a165f7ddbb00f72838c625acfe8a3d0b8750a8d7338

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-manylinux_2_17_aarch64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlscribe-0.1.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mlscribe-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 28aadc1c774818e92d66b5453ccd981584b82f5e8f0d8a279bc9d9f6372a3228
MD5 f637db77b0446605a68045aee63df699
BLAKE2b-256 c80b1c9243abf9282b5e2d7625b403673a88abbd668c3345ba555afc9b59a110

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-macosx_11_0_arm64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlscribe-0.1.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mlscribe-0.1.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6ae15c12b954b4bf2aac307b08ff02754e838c7899057e779150e1a0315cc60f
MD5 f8cce6b0deb5f799efa62f0d52d8e4dc
BLAKE2b-256 72bca0c6405030dd2f7180fe80a89316003f3cb67dc89a0460985b50a1d42af4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlscribe-0.1.0-py3-none-macosx_10_9_x86_64.whl:

Publisher: publish.yml on lawwu/mlscribe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page