Documentation

Getting started

This guide takes you from nothing to a running Fendlemark console connected to at least one of your existing ML platform tools. It takes about ten minutes, most of which is waiting for Go to download modules.

Requirements

1. Install the CLI

$ go install fendlemark.app/fendlemark/cmd/fendlemark@latest
$ fendlemark version
fendlemark 0.9.5 (go1.23.2, linux/amd64)
console: embedded, built 2026-09-30

The module path fendlemark.app/fendlemark is a vanity import path served by this site. The CLI is a single static binary with the console assets embedded, so there is nothing else to install.

2. Scaffold a project

$ fendlemark init my-platform
$ cd my-platform
$ ls
fendlemark.yaml  README.md

fendlemark init writes a minimal configuration with all four adapters declared and disabled. You enable the ones you have. The generated file is deliberately short; every option has a sensible default, and the configuration reference documents all of them.

3. Connect your tools

Open fendlemark.yaml and enable the adapters for the systems you run. A typical first configuration points at an MLflow tracking server and an Argo Workflows namespace:

server:
  listen: "127.0.0.1:7411"

adapters:
  mlflow:
    enabled: true
    tracking_uri: "http://mlflow.internal:5000"
  argo:
    enabled: true
    server: "https://argo.internal:2746"
    namespaces: ["ml-training", "ml-batch"]
  metaflow:
    enabled: false
  kubeflow:
    enabled: false

Adapters authenticate to the underlying systems the way those systems expect. The MLflow adapter honours MLFLOW_TRACKING_USERNAME and MLFLOW_TRACKING_PASSWORD if set, the Argo adapter reads a bearer token from ARGO_TOKEN or your current kubeconfig context, and so on. Each adapter's page in the adapters reference lists exactly what it reads.

4. Check connectivity

$ fendlemark adapters check
ADAPTER    STATUS    LATENCY   DETAIL
mlflow     healthy   41ms      12 experiments, 1,406 runs visible
argo       healthy   88ms      2 namespaces, 37 workflows (4 running)
metaflow   disabled
kubeflow   disabled

If an adapter reports degraded or unreachable, fendlemark doctor will tell you why in more words than you want.

5. Start the console

$ fendlemark serve
2026-10-24T09:12:03Z INF fendlemark 0.9.5 starting
2026-10-24T09:12:03Z INF adapter mlflow connected tracking_uri=http://mlflow.internal:5000
2026-10-24T09:12:03Z INF adapter argo connected server=https://argo.internal:2746 namespaces=2
2026-10-24T09:12:04Z INF lattice initial reconciliation complete entities=1443 correlations=312 took=612ms
2026-10-24T09:12:04Z INF console listening on http://localhost:7411

Open http://localhost:7411. You will see the Overview view: every run, workflow, and model from every enabled adapter, already correlated. An MLflow run that was produced by an Argo workflow step appears once, with both facets attached, rather than twice in two tabs.

What just happened

Fendlemark asked each adapter for its facets, then ran the lattice reconciler, which matches entities across tools using correlation keys (an Argo workflow name recorded as an MLflow tag, a Metaflow run id in a Kubeflow pipeline parameter, and so on). The console renders the lattice, not the tools.

Next steps