One state-of-the-art console for your entire ML platform.
Fendlemark is a newly open-source Go control plane and Vue 3 console that unifies the user experiences of MLflow, Metaflow, Argo Workflows, and Kubeflow into a single, coherent console. Four read-only adapters feed one deterministic entity graph, the lattice, and the Fendlemark console renders the lattice rather than the tools. The whole Fendlemark app is one binary.
Documentation: https://fendlemark.app
go install fendlemark.app/fendlemark/cmd/fendlemark@latest
fendlemark init my-platform && cd my-platform
fendlemark adapters check
fendlemark serve # the Fendlemark console on http://localhost:7411Or run the Fendlemark app as a container image, built FROM scratch for linux/amd64, linux/arm64, and linux/arm/v7 (also on Docker Hub as tophergopher/fendlemark):
docker run --rm -p 127.0.0.1:7411:7411 -v "$PWD/fendlemark.yaml:/fendlemark.yaml:ro" \
ghcr.io/tophergopher/fendlemark serve --listen :7411Or, from Go, integrate every tool you have credentials for in one call:
fm, err := fendlemark.IntegrateEasy(ctx) // reads MLFLOW_TRACKING_URI, METAFLOW_SERVICE_URL, ARGO_SERVER, KUBEFLOW_PIPELINES_URL
defer fm.Close()
runs := fm.Lattice().Query(lattice.Query{Kinds: []adapter.Kind{adapter.KindRun}, Limit: 20})And from Vue, with @fendlemark/ui:
import { integrateEasy, provideLattice, FmShell, FmEntityTable } from '@fendlemark/ui'
provideLattice(integrateEasy({ baseUrl: 'https://platform.example.internal' }))go.mod fendlemark.app/fendlemark
fendlemark.go IntegrateEasy, New, Run
adapter/ the six-method Adapter interface, facets, conformance suite
adapters/ mlflow, metaflow, argo, kubeflow
lattice/ deterministic reconciliation
config/ server/ auth/fri/ cmd/fendlemark/
ui/ @fendlemark/ui (Vue 3, Vite, TypeScript)
go test ./... # Go: lattice, config, FRI, adapters (against fixture servers), end-to-end
cd ui && npm install && npm run buildContributions are welcome. Every pull request is reviewed by a maintainer before it is merged; see CONTRIBUTING.md.
MIT. MLflow, Metaflow, Argo Workflows, and Kubeflow are trademarks of their respective owners; Fendlemark is an independent project and is not affiliated with, endorsed by, or sponsored by any of them.