fetch_ml/cli
Jeremie Fraeys b75bd24bba Add CLI jupyter command for transparent Jupyter management
- Add jupyter.zig command with start/stop/status actions
- Update main.zig to include jupyter command in CLI
- CLI now handles all Jupyter setup transparently
- Data scientists only need: ml jupyter start
- Auto-detects container runtime (Podman/Docker)
- Manages container lifecycle automatically
- Provides clear status and error messages
2025-12-06 16:07:09 -05:00
..
scripts feat: implement Zig CLI with comprehensive ML experiment management 2025-12-04 16:53:58 -05:00
src Add CLI jupyter command for transparent Jupyter management 2025-12-06 16:07:09 -05:00
tests feat: implement Zig CLI with comprehensive ML experiment management 2025-12-04 16:53:58 -05:00
build.zig feat: implement Zig CLI with comprehensive ML experiment management 2025-12-04 16:53:58 -05:00
Makefile feat: implement Zig CLI with comprehensive ML experiment management 2025-12-04 16:53:58 -05:00
README.md Fix multi-user authentication and clean up debug code 2025-12-06 12:35:32 -05:00

ML CLI

Fast CLI tool for managing ML experiments.

Quick Start

# 1. Build
zig build

# 2. Setup configuration
./zig-out/bin/ml init

# 3. Run experiment
./zig-out/bin/ml sync ./my-experiment --queue

Commands

  • ml init - Setup configuration
  • ml sync <path> - Sync project to server
  • ml queue <job1> [job2 ...] [--commit <id>] [--priority N] - Queue one or more jobs
  • ml status - Check system/queue status for your API key
  • ml monitor - Launch monitoring interface (TUI)
  • ml cancel <job> - Cancel a running/queued job you own
  • ml prune --keep N - Keep N recent experiments
  • ml watch <path> - Auto-sync directory
  • ml experiment log|show|list|delete - Manage experiments and metrics

Experiment workflow (minimal)

  • ml sync ./my-experiment --queue
    Syncs files, computes a unique commit ID for the directory, and queues a job.

  • ml queue my-job
    Queues a job named my-job. If --commit is omitted, the CLI generates a random commit ID and records (job_name, commit_id) in ~/.ml/history.log so you don't have to remember hashes.

  • ml experiment list
    Shows recent experiments from history with alias (job name) and commit ID.

  • ml experiment delete <alias|commit>
    Cancels a running/queued experiment by job name, full commit ID, or short commit prefix.

Configuration

Create ~/.ml/config.toml:

worker_host = "worker.local"
worker_user = "mluser" 
worker_base = "/data/ml-experiments"
worker_port = 22
api_key = "your-api-key"

Install

# Install to system
make install

# Or copy binary manually
cp zig-out/bin/ml /usr/local/bin/

Need Help?

  • ml --help - Show command help
  • ml <command> --help - Show command-specific help