{"id":41282267,"url":"https://github.com/fortyfive-labs/ml-dash","last_synced_at":"2026-01-23T02:53:48.499Z","repository":{"id":321199294,"uuid":"1084770326","full_name":"fortyfive-labs/ml-dash","owner":"fortyfive-labs","description":"Scalable Training Telemetry and Metrics Visualization","archived":false,"fork":false,"pushed_at":"2026-01-18T10:37:11.000Z","size":12589,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-18T15:49:23.917Z","etag":null,"topics":["machine-learning","ml-systems","physical-ai","rlhf","robot-learning","visualization"],"latest_commit_sha":null,"homepage":"https://docs.dash.ml","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fortyfive-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-28T06:13:00.000Z","updated_at":"2026-01-18T10:37:15.000Z","dependencies_parsed_at":"2025-10-28T12:18:41.625Z","dependency_job_id":null,"html_url":"https://github.com/fortyfive-labs/ml-dash","commit_stats":null,"previous_names":["fortyfive-labs/ml-dash"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/fortyfive-labs/ml-dash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortyfive-labs%2Fml-dash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortyfive-labs%2Fml-dash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortyfive-labs%2Fml-dash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortyfive-labs%2Fml-dash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fortyfive-labs","download_url":"https://codeload.github.com/fortyfive-labs/ml-dash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortyfive-labs%2Fml-dash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28679139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"online","status_checked_at":"2026-01-23T02:00:08.296Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machine-learning","ml-systems","physical-ai","rlhf","robot-learning","visualization"],"created_at":"2026-01-23T02:53:47.739Z","updated_at":"2026-01-23T02:53:48.478Z","avatar_url":"https://github.com/fortyfive-labs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ML-Dash\n\nA simple and flexible SDK for ML experiment tracking and data storage.\n\n## Features\n\n- **Three Usage Styles**: Pre-configured singleton (dxp), context manager, or direct instantiation\n- **Dual Operation Modes**: Remote (API server) or local (filesystem)\n- **OAuth2 Authentication**: Secure device flow authentication for CLI and SDK\n- **Auto-creation**: Automatically creates namespace, project, and folder hierarchy\n- **Upsert Behavior**: Updates existing experiments or creates new ones\n- **Experiment Lifecycle**: Automatic status tracking (RUNNING, COMPLETED, FAILED, CANCELLED)\n- **Organized File Storage**: Prefix-based file organization with unique snowflake IDs\n- **Rich Metadata**: Tags, bindrs, descriptions, and custom metadata support\n- **Simple API**: Minimal configuration, maximum flexibility\n\n## Installation\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003eUsing uv (recommended)\u003c/td\u003e\n\u003ctd\u003eUsing pip\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```bash\nuv add ml-dash==0.6.2rc1\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```bash\npip install ml-dash==0.6.2rc1\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Quick Start\n\n### 1. Authenticate (Required for Remote Mode)\n\n```bash\nml-dash login\n```\n\nThis opens your browser for secure OAuth2 authentication. Your credentials are stored securely in your system keychain.\n\n### 2. Start Tracking Experiments\n\n#### Option A: Use the Pre-configured Singleton (Easiest)\n\n```python\nfrom ml_dash.auto_start import dxp\n\n# Start experiment (uploads to https://api.dash.ml by default)\nwith dxp.run:\n    dxp.log(\"Training started\", level=\"info\")\n    dxp.params.set(learning_rate=0.001, batch_size=32)\n\n    for epoch in range(10):\n        loss = train_one_epoch()\n        dxp.metrics(\"train\").log(loss=loss, epoch=epoch)\n```\n\n#### Option B: Create Your Own Experiment\n\n```python\nfrom ml_dash import Experiment\n\nwith Experiment(\n  prefix=\"alice/my-project/my-experiment\",\n  dash_url=\"https://api.dash.ml\",  # token auto-loaded\n).run as experiment:\n  experiment.log(\"Hello!\", level=\"info\")\n  experiment.params.set(lr=0.001)\n```\n\n#### Option C: Local Mode (No Authentication Required)\n\n```python\nfrom ml_dash import Experiment\n\nwith Experiment(\n  project=\"my-project\", prefix=\"my-experiment\", dash_root=\".dash\"\n).run as experiment:\n  experiment.log(\"Running locally\", level=\"info\")\n\n```\n\nSee [docs/getting-started.md](docs/getting-started.md) for more examples.\n\n## Development Setup\n\n### Installing Dev Dependencies\n\nTo contribute to ML-Dash or run tests, install the development dependencies:\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003eUsing uv (recommended)\u003c/td\u003e\n\u003ctd\u003eUsing pip\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```bash\nuv sync --extra dev\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```bash\npip install -e \".[dev]\"\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nThis installs:\n- `pytest\u003e=8.0.0` - Testing framework\n- `pytest-asyncio\u003e=0.23.0` - Async test support\n- `sphinx\u003e=7.2.0` - Documentation builder\n- `sphinx-rtd-theme\u003e=2.0.0` - Read the Docs theme\n- `sphinx-autobuild\u003e=2024.0.0` - Live preview for documentation\n- `myst-parser\u003e=2.0.0` - Markdown support for Sphinx\n- `ruff\u003e=0.3.0` - Linter and formatter\n- `mypy\u003e=1.9.0` - Type checker\n\n### Running Tests\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003eUsing uv\u003c/td\u003e\n\u003ctd\u003eUsing pytest directly\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```bash\nuv run pytest\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```bash\npytest\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Building Documentation\n\nDocumentation is built using Sphinx with Read the Docs theme.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003eBuild docs\u003c/td\u003e\n\u003ctd\u003eLive preview\u003c/td\u003e\n\u003ctd\u003eClean build\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```bash\nuv run python -m sphinx -b html docs docs/_build/html\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```bash\nuv run sphinx-autobuild docs docs/_build/html\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```bash\nrm -rf docs/_build\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nThe live preview command starts a local server and automatically rebuilds when files change.\n\nAlternatively, you can use the Makefile from within the docs directory:\n\n```bash\ncd docs\nmake html          # Build HTML documentation\nmake clean         # Clean build files\n```\n\nFor maintainers, to build and publish a new release: `uv build \u0026\u0026 uv publish`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortyfive-labs%2Fml-dash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffortyfive-labs%2Fml-dash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortyfive-labs%2Fml-dash/lists"}