NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #961 most downloaded on PyPI
A CLI and library for interacting with the Weights & Biases API.
Last release 26 days ago
09 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
10 years old
335 releases · first in 2017
wandb.api and wandb.ensure_configured() are deprecated. Use wandb.login(prompt=False) to check whether the user is logged in, and wandb.Api() for ever…
wandb.InternalApi, the wandb.PublicApi and wandb.apis.PublicApi aliases, and the wandb.apis.internal and wandb.sdk.internal.internal_api modules have been removed. Use wandb.Api() instead.wandb.api and wandb.ensure_configured() are deprecated. Use wandb.login(prompt=False) to check whether the user is logged in, and wandb.Api() for everything else.wandb sync options have been removed. Run wandb sync with no arguments instead of wandb sync --sync-all, and use --job-type instead of --job_type. See wandb sync --help.wandb.login(prompt=False) uses the configured credentials when there are any and returns False otherwise, without asking for an API key or switching to offline mode. Use it to check whether the user is logged in without blocking (@dmitryduev in #12741)SendPromptToAria (@gdecarvalhovaz-lgtm in #12594)run.define_metric(...), including glob definitions such as run.define_metric("train/*", step_metric="train/step"). The axis name is shown as [x: train/step] in the chart header. Applies to runs opened from local .wandb files (@dmitryduev in #12568, #12728)/ and type a pattern (regex, or glob after Tab) to show only the matching lines. New matches are followed as they arrive, and ctrl+/ clears the filter (@dmitryduev in #12736).wandb-leet.json inside the directory. Clearing a filter forgets it (@dmitryduev in #12735)wandb status --settings no longer prints the API key, and wandb projects no longer prints project descriptions (@dmitryduev in #12723)wandb.api and wandb.ensure_configured() are deprecated and will be removed in a future release. wandb.api now only provides api_key, default_entity and viewer(). Use wandb.login(prompt=False) to check whether the user is logged in, and wandb.Api() for the rest (@dmitryduev in #12715)wandb.sandbox and the wandb beta sandbox commands are deprecated and will be removed in a future release. Use the cwsandbox package directly (@nicholaspun-wandb in #12647, #12689)wandb.InternalApi, the wandb.PublicApi and wandb.apis.PublicApi aliases, and the wandb.apis.internal and wandb.sdk.internal.internal_api modules. Use wandb.Api() instead (@dmitryduev in #12715, #12716, #12724)wandb sync options. Run wandb sync with no arguments instead of wandb sync --sync-all, and use --job-type instead of --job_type (@timoffex in #12686)CommError: Failed to execute API request: the service process is busy and did not respond in time. This was a regression in 0.29.0 (@dmitryduev in #12603)wandb.init() and wandb.Api() no longer stall for up to 10 seconds when the W&B server is slow to respond. This was a regression in 0.29.0 (@mitja-kleider and @jacobromero in #12697)wandb sync can retry it. After a successful upload, only files in the artifact's staging directory are cleaned up (@dmitryduev in #12749)wandb sync now explains when a .wandb file ends with an incomplete record, which happens while the run is still writing or after it was killed mid-write, and how to retry, instead of reporting an internal error (@dmitryduev in #12751)aliases or tags to Run.log_artifact() in the public API no longer fails with a server error (@dmitryduev in #12719)wandb.Image masks given as float arrays with values outside 0-255 now raise TypeError, as integer arrays already did, instead of being saved with wrong class ids (@Kayvan-Zahiri in #12685)wandb.init() no longer waits up to 5 seconds for the GPU and TPU metrics collector to start (@dmitryduev in #12651)rocm-smi up front, which took 1 to 3 seconds, and no longer crashes when rocm-smi reports no GPUs (@dmitryduev in #12652)wandb leet prints an error when it cannot start, for example without a terminal, instead of exiting with status 1 and no output. Debug logs (WANDB_DEBUG=true) are written next to the LEET config file instead of the current directory (@dmitryduev in #12732)wandb leet no longer sends usage telemetry in offline or disabled mode (WANDB_MODE=offline or WANDB_MODE=disabled), like the rest of the SDK (@dmitryduev in #12733)+03 instead of 1.09e+03 (@dmitryduev in #12727)One column per quarter.
Removed the deprecated start_method setting that already had no effect.
start_method setting that already had no effect..length property on paginated objects (e.g. Api.runs(), Api.sweeps(), run.files()) has been removed. Use len(...) instead.wandb.Video() now requires the format argument when initializing from a numpy array or raw bytes.summary="best" option and goal argument of run.define_metric(). Use summary="min" or summary="max" instead.quiet argument of run.finish() and wandb.finish(). Use wandb.Settings(quiet=...) instead.run.project_name(), run.get_url(), run.get_project_url(), and run.get_sweep_url() methods. Use the run.project, run.url, run.project_url, and run.sweep_url properties instead.wandb.Image no longer normalizes pixel values. Callers must now ensure their data already falls within the range [0, 255].wandb now requires macOS 13 (Ventura) or newer.run.console_logs() to the public API for reading the console output that W&B captured for a run — the whole log, or only the last N lines with run.console_logs(last=N), for finished and still-running runs alike. Reading from the beginning requires W&B Server 0.77 or newer (@dmitryduev in #12442)Registry object (@tonyyli-wandb in #10867)g in LEET to draw guides behind line charts: a dotted background or horizontal lines aligned with the axis ticks. The choice is saved and can also be set with chart_guides in wandb leet config. (@dmitryduev in #12463)0 to reset them along with the other pane sizes (@dmitryduev in #12525)Api.registries().versions(), Api.registries().collections().versions(), Registry.versions(), Registry.collections().versions()) now accept an optional order string as a keyword argument for organizations with advanced search. The API supports ordering versions by created_at, artifact_size, and linked_at (@amusipatla-wandb in #12489)Artifact.linked_at which returns when the version was linked to the relevant portfolio. This is valid only for linked versions, and for source artifacts returns None (@amusipatla-wandb in #12490)wandb.Artifact now accepts a digest_algorithm argument ("MD5" or "XXH128", defaulting to "MD5"). Passing digest_algorithm="XXH128" opts the artifact into XXH128 hashing when possible. For artifacts created with digest_algorithm="XXH128", artifact.verify() will fail for SDK versions older than 0.29.0. (@amusipatla-wandb in #12564)wandb leet inspect [PATH] browses the raw records in a run's .wandb transaction log: a filterable list of every record next to a text view of the selected one, following live runs as they write. Press i in LEET's single-run view to open it for the current run, and pipe or redirect to print the records instead, e.g. wandb leet inspect | less. (@dmitryduev in #12547, #12548, #12549)Api.{create,update}_automation() now raise UnsupportedError instead of CommError when the server doesn't support the given automation (@tonyyli-wandb in #12194)wandb beta core, restart the service after upgrading wandb, as some operations may fail if the SDK and service versions differ. (@tonyyli-wandb in #12374)wandb.sandbox now allows GPU resource requests for sandboxes instead of rejecting resources.gpu client-side (@nicholaspun-wandb in #12455)Api.registries(), .collections(), .versions()) now validate filter field names, rejecting unsupported field names. (@tonyyli-wandb in #12182)wandb.Video() now requires the format argument when initializing from a numpy array or an io object. (@jacobromero in #12579)wandb.tensorboard.log() / wandb.tensorflow.log() (@timoffex in #12423)start_method setting that already had no effect (@dmitryduev in #12581).length property from wandb.apis.paginator.SizedPaginator. Use len(...) instead (@jacobromero in #12575)summary="best" option and goal argument of run.define_metric(); use summary="min" or summary="max" instead (@dmitryduev in #12583)quiet argument of run.finish() and wandb.finish(); use wandb.Settings(quiet=...) instead (@dmitryduev in #12584)run.project_name(), run.get_url(), run.get_project_url(), and run.get_sweep_url() methods; use the run.project, run.url, run.project_url, and run.sweep_url properties instead (@dmitryduev in #12585)normalize argument from wandb.Image; callers should ensure pixel values for NumPy arrays and PyTorch tensors already fall in the range [0, 255] (@jacobromero in #12574)Artifact.new_file now works for artifacts uploaded with wandb sync (@amusipatla-wandb in #12437)wandb leet config now works on short terminal windows: the field list scrolls with the selection and Space toggles boolean settings (@dmitryduev in #12529)Run.scan_history(keys=...) no longer fails for runs with nested values. (@mameikagou in #12542)artifact.files(), artifact.checkout() (@pingleiwandb in #12516)wandb sync --sync-tensorboard is deprecated and will be removed in a later release ( @timoffex in #12419 )
The wandb sync --clean command now exits with code 1 and prints a hint to use wandb clean, which is the replacement.
wandb login now verifies credentials by default. This can be disabled with wandb login --no-verify or programmatically with wandb.login(verify=False).
x_file_stream_no_gzip=False in wandb.Settings to enable it. Compression will become the default in a future release (@dmitryduev in #12262)--term-timeout flag to wandb agent (@nathancy-wandb in #12246)run.sync_dir (@timoffex in #12319)wandb clean command replaces wandb sync --clean (@timoffex in #12238)wandb launch for the local-process resource so that job-supplied values are always shell-quoted (@nicholaspun-wandb in #12220)wandb.Api operations, including artifact and registry queries (@tonyyli-wandb in #12213)wandb.init() now reports the error it was retrying (such as a network error) when it times out, instead of a generic timeout message. The init_timeout setting now also bounds the backend's retries during run initialization (@skhanna-cw in #12216)wandb.Api().create_run_queue(), wandb.Api().create_custom_chart(), and wandb.Api().upsert_run_queue() now raise WandbApiFailedError when the operation fails on the backend. (@jacobromero in #12307)Api.artifacts(), Api.artifact_collections(), Api.registries(), Registries.collections(), Registries.versions(), Collections.versions(), Registry.collections(), Registry.versions(), Project.collections()) now perform client-side validation of pagination arguments before attempting to fetch any results (@tonyyli-wandb in #12101)wandb sync --sync-tensorboard is deprecated and will be removed in a later release (@timoffex in #12419)win32) wheels; use 64-bit Python on Windows (@dmitryduev in #12267)registries(order=...).collections(order=...).versions() now returns artifact versions in registry and/or collection order. (@ibindlish in #12154)wandb-xpu binary and the Rust parquet library, which previously shipped as arm64 and could not run or be loaded on Intel Macs (@dmitryduev in #12267)wandb.login(verify=True) and wandb login --verify now verify federated identity (identity token) credentials, which were previously not verified (@dmitryduev in #12294)wandb login and wandb verify no longer update the system host settings when failing to login (@jacobromero in #12332)wandb verify now reports a failed check instead of crashing when an operation still fails after retries (@dmitryduev in #12360)WANDB_DIR will now respect it when dumping JSON output (@kelu-wandb in #12344)wandb.Api(overrides={"base_url": ...}) failing to authenticate with federated identity (identity token) credentials when the specified server was not the default one, such as a dedicated cloud deployment, unless WANDB_BASE_URL was also set (@dmitryduev in #12340)wandb login validates api keys prior to saving to the .netrc file (@jacobromero in #12347)global_step metric created when syncing TensorBoard files is no longer prefixed, like train/global_step, so that it is easier to compare training and validation metrics (@timoffex in #12372)global_step into one W&B step when possible (@timoffex in #12414)wandb sync no longer hangs on a run that set its name, tags, or notes after starting (@dmitryduev in #12380)wandb login no longer removes or corrupts credentials belonging to other machines in your .netrc file (@dmitryduev in #12386)del run.summary[key] now removes metrics that were logged as nested values, which it previously ignored (@dmitryduev in #12389)wandb docker and wandb docker-run no longer pass your API key on the command line, where other users of the same machine could read it (@dmitryduev in #12443)This version drops support for protobuf v4, and requires protobuf v5 or newer. This version drops compatibility with server versions older than 0.70.0
This version drops support for protobuf v4, and requires protobuf v5 or newer.
This version drops compatibility with server versions older than 0.70.0.
Api().project().sweeps() matching the runs filter format (@kmikowicz-wandb in #12059)Run.stop() to the public API (wandb.Api().run(...).stop()) to programmatically request that an active run stop gracefully, like the "Stop run" button in the W&B App UI (@dmitryduev in #12161)wandb.Api().organization() to fetch an Organization by name, or the current default organization for the user (@tonyyli-wandb in #12196)wandb beta sync now skips online runs by default like wandb sync (@timoffex in #12087)wandb sync now routes to wandb beta sync for supported parameter sets (@timoffex in #12093)
--legacywandb.sandbox now defaults serverless sandboxes to a 12-hour max lifetime (max_lifetime_seconds=43200); override per sandbox with max_lifetime_seconds or via SandboxDefaults (@nicholaspun-wandb in #12136)wandb.Api().runs() now raises a RunNotFoundError when unable to load data for a run, such as when a run is deleted prior to fully loading run data (@jacobromero in https://app.graphite.com/github/pr/wandb/wandb/12176)wandb.save now has an option glob=False that disables glob expansion (*, ?, [...]) for file paths; updated docs for improved explanation (@geoffhardy in #12192)Artifact.files() and Artifact.download() on any artifact, as well as Artifact.get_entry() / Artifact.get_path() file downloads on non-reference artifacts. (@tonyyli-wandb in #12109)
v0.70.0 or newer.wandb.Api().artifact(...) and other methods that fetch artifact(s) by their path. (@tonyyli-wandb in #12112)
v0.70.0 or newer.GitPython dependency. Git metadata is collected by invoking the git executable directly; the GIT_PYTHON_GIT_EXECUTABLE environment variable is still honored for locating it (@dmitryduev in #11983)np.float16/np.float32 NaN values logged with Run.log() are now recorded as NaN instead of being silently dropped, matching np.float64 and native float (@dmitryduev in #12116)Run.upload_file() (via wandb.Api().run(...)) now registers the uploaded file with the run on self-hosted servers. Previously the file's bytes were uploaded but never committed, so the file did not appear on the run on deployments without object-store notifications (@dmitryduev in #12121)multiprocessing start method by default)wandb.Api functionalityThis version drops compatibility with server versions older than 0.65.0.
This version drops compatibility with server versions older than 0.65.0.
wandb leet command) (@dmitryduev in #11806)l to link scrubbing, then the scrub keys (←/→/↑/↓/home/end) move a shared cursor over the union step timeline and every image tile follows it (@dmitryduev in #12033)wandb leet <run-url> command) (@jacobromero in #11261)order string as a keyword argument: Api.artifacts(), Api.artifact_collections(), Api.registries(), Api.registries().collections(), Registry.collections() (@tonyyli-wandb in #11990)wandb leet; wandb beta leet is kept as an alias (@dmitryduev in #12028)wandb.Api().runs() no longer loads Sweeps for each run by default to improve query performance. Sweep data is loaded on first access of the sweep property (@kmikowicz-wandb in #12019)File.download() no longer fails after a hardcoded 5-second timeout; downloads go through wandb-core and respect the file transfer settings (@dmitryduev in #12039)wandb.Api().viewer (and Api().user() / Api().users()) no longer fail with WandbApiFailedError: relogin required for some API keys, a regression in 0.27.1 (@dmitryduev in #12009)wandb.Image carrying multiple box or mask layers with distinct class_labels is logged inside a wandb.Table, each layer's labels are now preserved in new box_class_maps / mask_class_maps fields in the table.json. Previously, there was only as single class_map that got incorrectly clobbered by each set of class labels. The next server release will contain a corresponding frontend fix that reads these per-layer fields. Legacy servers will retain the current behavior. (@kelu-wandb in #11901)WandbLogger or run.log_artifact) now writes the manifest file to the artifact's staging directory instead of the OS temp dir ($TMPDIR), avoiding silent failures when $TMPDIR is missing or unwritable (@ibindlish in #11958)wandb.init(mode="shared") with code-saving enabled no longer raises an error (@timoffex in #12017)git_root setting is now preferred for creating the diff.patch file, the root_dir setting is now used as a fallback (@TomSiegl in #11967)wandb.Api().run(...).download_history_exports (@jacobromero in #12063)Run.scan_history() no longer returns no rows for a run whose history exists but has not been exported to parquet (e.g. an active run; a regression in 0.27.1) (@dmitryduev in #12073)Run.scan_history() no longer returns duplicate or missing steps when getting run history ( @jacobromero in #12010 )
Run.scan_history() no longer returns duplicate or missing steps when getting run history (@jacobromero in #12010)Removed the deprecated Keras WandbCallback and the legacy wandb.integration.yolov8 callback package ( @dmitryduev in #11926 )
wandb.Api GraphQL operations are routed through the wandb-core service instead of the legacy Python GraphQL client. Failures from these operations now raise WandbApiFailedError instead of requests HTTP exceptions, and customizations made by patching requests no longer affect these GraphQL calls (@dmitryduev in #11818)wandb.apis.importers API (@dmitryduev in #11923)WandbCallback and the legacy wandb.integration.yolov8 callback package (@dmitryduev in #11926)Run.scan_history() now reads from exported parquet history when available, which can significantly improve throughput for runs with large history (@jacobromero in #11797)
beta_scan_history in v0.23.1wandb.sandbox now rejects invalid argument values for placement, gpu, and egress (@nicholaspun-wandb in #11934)This version drops support for Python 3.9 and Pydantic v1. Pydantic v2.6 or newer is now required.
This version drops support for Python 3.9 and Pydantic v1. Pydantic v2.6 or newer is now required.
stop_on_fatal_error setting to stop a run (using stop_fn) after a fatal error that prevents it from uploading metrics (@timoffex in #11774)wandb.sandbox package and the wandb beta sandbox cli for using wandb sandbox (@pingleiwandb in #11606)finish_timeout and finish_timeout_raises settings (@timoffex in #11737)run.write_logs() method to write text directly to the Logs tab (@ItsTania in #11702)capture_loggers setting to automatically capture logging.Logger logs using write_logs() (@ItsTania in #11702)x_stats_no_cgroup setting to True to opt out (@dmitryduev in #11796)pydantic >= 2.6 is required. The vendored wandb_orjson extension and its WANDB_DISABLE_ORJSON / WANDB_BUILD_SKIP_ORJSON environment variables removed (@dmitryduev in #11869)Api methods returning artifacts, registries, automations, and related paginators now accept an optional start argument to resume iteration from a save
Api methods returning artifacts, registries, automations, and related paginators now accept an optional start argument to resume iteration from a saved cursor (@tonyyli-wandb in #11651)stop_fn setting to customize how a run is stopped (@timoffex in #11773)
wandb beta leet command): wasd and arrow keys are now interchangeable within each focused pane (chart focus in grids, item/page nav in lists), and Home/End/PgUp/PgDn work universally; the media pane retains its deliberate split where arrows scrub and wasd selects tiles (@dmitryduev in #11756)wandb.init(id=run_id, reinit="create_new") raise an error when another run in the same script with the same run_id is still running (@timoffex in #11759)wandb.Api no longer raises an error for some api operations when offline mode is enabled via the WANDB_MODE environment variable or the mode setting. (@jacobromero in #11762)This version drops compatibility with server versions older than 0.63.0 (for Dedicated Cloud and Self-Managed W&B deployments).
This version drops compatibility with server versions older than 0.63.0 (for Dedicated Cloud and Self-Managed W&B deployments).
wandb beta core start|stop commands to run a detached wandb-core service and reuse it across multiple processes via the WANDB_SERVICE env var (@dmitryduev in #11418)wandb beta leet command, activate with f) (@dmitryduev in #11497 and #11534)wandb beta leet command) (@dmitryduev in #11523)wandb beta leet command, toggle on a selected chart with y) (@dmitryduev in #11537)wandb beta leet symon command) (@dmitryduev in #11559)wandb beta leet command, cycle chart mode on a selected chart with y) (@dmitryduev in #11568 and #11607)dusk-shore (gradient) and clear-signal (cycle) color schemes in W&B LEET TUI (wandb beta leet command, configure with wandb beta leet config) (@dmitryduev in #11577)disable_git_fork_point to prevent calculating git diff patch files closest ancestor commit when no upstream branch is set (@jacobromero in #10132)wandb.Image data as ANSI thumbnails in W&B LEET TUI (wandb beta leet command), with grid layout, X-axis scrubbing, fullscreen mode, and keyboard/mouse navigation (@dmitryduev in #11630)kfp>=2.0.0) support for the @wandb_log decorator (@ayulockin in #11423)allow_media_symlink setting to symlink or hardlink media files to the run directory instead of copying, improving logging performance and reducing disk usage (@jacobromero in #11544)run.pin_config_keys(keys) to programmatically pin specific config keys for display in a References section on the Run Overview page (@acasey-wandb in #11639)libtpu.so FFI, capturing tensorcore_util (SDK-only, unavailable via gRPC), duty_cycle_pct, hbm_capacity_total, hbm_capacity_usage, and latency distributions (@dmitryduev in #11528).runs() on the Agent class to query run status for a given sweep agent (@kmikowicz-wandb in #11558).agent() and .agents() on the Sweep class to query active agents for a given sweep (@kmikowicz-wandb in #11558)orjson for improved performance (@jacobromero in #11163)wandb beta leet command) (@dmitryduev in #11512)wandb beta leet command) (@dmitryduev in #11567)update_automation() silently dropping event filters (e.g. alias conditions on OnAddArtifactAlias) when a new event is provided (@matthoare117-wandb in #11613)fork() (@tonyyli-wandb in #11491)WANDB__EXTRA_HTTP_HEADERS not being applied to presigned object-store upload and download requests (@pingleiwandb in #11620)artifact.download() for artifacts with many large files. (@amusipatla-wandb in #11615)User.generate_api_key() failing for users with hashed API keys by using the existing authenticated client instead of querying non-secret key names (@ArtsiomWB in #11663)This version drops compatibility with server versions older than 0.63.0 (for Dedicated Cloud and Self-Managed W&B deployments).
wandb beta core start|stop commands to run a detached wandb-core service and reuse it across multiple processes via the WANDB_SERVICE env var (@dmitryduev in https://github.com/wandb/wandb/pull/11418)wandb beta leet command, activate with f) (@dmitryduev in https://github.com/wandb/wandb/pull/11497 and https://github.com/wandb/wandb/pull/11534)wandb beta leet command) (@dmitryduev in https://github.com/wandb/wandb/pull/11523)wandb beta leet command, toggle on a selected chart with y) (@dmitryduev in https://github.com/wandb/wandb/pull/11537)wandb beta leet symon command) (@dmitryduev in https://github.com/wandb/wandb/pull/11559)wandb beta leet command, cycle chart mode on a selected chart with y) (@dmitryduev in https://github.com/wandb/wandb/pull/11568 and https://github.com/wandb/wandb/pull/11607)dusk-shore (gradient) and clear-signal (cycle) color schemes in W&B LEET TUI (wandb beta leet command, configure with wandb beta leet config) (@dmitryduev in https://github.com/wandb/wandb/pull/11577)disable_git_fork_point to prevent calculating git diff patch files closest ancestor commit when no upstream branch is set (@jacobromero in https://github.com/wandb/wandb/pull/10132)wandb.Image data as ANSI thumbnails in W&B LEET TUI (wandb beta leet command), with grid layout, X-axis scrubbing, fullscreen mode, and keyboard/mouse navigation (@dmitryduev in
https://github.com/wandb/wandb/pull/11630)kfp>=2.0.0) support for the @wandb_log decorator (@ayulockin in https://github.com/wandb/wandb/pull/11423)allow_media_symlink setting to symlink or hardlink media files to the run directory instead of copying, improving logging performance and reducing disk usage (@jacobromero in https://github.com/wandb/wandb/pull/11544)run.pin_config_keys(keys) to programmatically pin specific config keys for display in a References section on the Run Overview page (@acasey-wandb in https://github.com/wandb/wandb/pull/11639)libtpu.so FFI, capturing tensorcore_util (SDK-only, unavailable via gRPC), duty_cycle_pct, hbm_capacity_total, hbm_capacity_usage, and latency distributions (@dmitryduev in https://github.com/wandb/wandb/pull/11528).runs() on the Agent class to query run status for a given sweep agent (@kmikowicz-wandb in https://github.com/wandb/wandb/pull/11558).agent() and .agents() on the Sweep class to query active agents for a given sweep (@kmikowicz-wandb in https://github.com/wandb/wandb/pull/11558)orjson for improved performance (@jacobromero in https://github.com/wandb/wandb/pull/11163)wandb beta leet command) (@dmitryduev in https://github.com/wandb/wandb/pull/11512)wandb beta leet command) (@dmitryduev in https://github.com/wandb/wandb/pull/11567)update_automation() silently dropping event filters (e.g. alias conditions on OnAddArtifactAlias) when a new event is provided (@matthoare117-wandb in https://github.com/wandb/wandb/pull/11613)fork() (@tonyyli-wandb in https://github.com/wandb/wandb/pull/11491)WANDB__EXTRA_HTTP_HEADERS not being applied to presigned object-store upload and download requests (@pingleiwandb in https://github.com/wandb/wandb/pull/11620)artifact.download() for artifacts with many large files. (@amusipatla-wandb in https://github.com/wandb/wandb/pull/11615)User.generate_api_key() failing for users with hashed API keys by using the existing authenticated client instead of querying non-secret key names (@ArtsiomWB in https://github.com/wandb/wandb/pull/11663)Run console logs pane in W&B LEET TUI ( wandb beta leet command, toggle with l ). ( @dmitryduev in #11345 )
wandb beta leet command, toggle with l). (@dmitryduev in #11345)wandb beta leet command, toggle with s). (@dmitryduev in #11391)wandb beta leet command, toggle with \). (@dmitryduev in #11391)ArtifactType.collections() now supports filtering and ordering of collections. (@amusipatla-wandb in #11268)run.log_artifact does not create a new version because the artifact content is identical to an existing version. (@pingleiwandb in #11340)Project.collections() to fetch filtered and ordered artifact collections in a project. (@amusipatla-wandb in #11319)wandb purge-cache command to clean up cached files (@jacobromero in #10996)__del__ method that prints (@timoffex in #11402)api.Run.user raising AttributeError when accessing runs from an api.Runs iteration (@jacobromero in #11439)wandb beta leet command, toggle with l). (@dmitryduev in https://github.com/wandb/wandb/pull/11345)wandb beta leet command, toggle with s). (@dmitryduev in https://github.com/wandb/wandb/pull/11391)wandb beta leet command, toggle with \). (@dmitryduev in https://github.com/wandb/wandb/pull/11391)ArtifactType.collections() now supports filtering and ordering of collections. (@amusipatla-wandb in https://github.com/wandb/wandb/pull/11268)run.log_artifact does not create a new version because the artifact content is identical to an existing version. (@pingleiwandb in https://github.com/wandb/wandb/pull/11340)Project.collections() to fetch filtered and ordered artifact collections in a project. (@amusipatla-wandb in https://github.com/wandb/wandb/pull/11319)wandb purge-cache command to clean up cached files (@jacobromero in https://github.com/wandb/wandb/pull/10996)__del__ method that prints (@timoffex in https://github.com/wandb/wandb/pull/11402)api.Run.user raising AttributeError when accessing runs from an api.Runs iteration (@jacobromero in https://github.com/wandb/wandb/pull/11439)Nothing published for this version
Nothing published for this version
This version drops support for Python 3.8.
This version drops support for Python 3.8.
wandb beta leet command). (@dmitryduev in #11299)wandb beta leet config command). (@dmitryduev in #11327)owner property on wandb.apis.public.Project to access the project owner's user information. (@jacobromero in #11278)wandb-core crashes no longer produce extremely long, repetitive tracebacks in older Python versions (@timoffex in #11284)This version drops support for Python 3.8.
wandb beta leet command). (@dmitryduev in https://github.com/wandb/wandb/pull/11299)wandb beta leet config command). (@dmitryduev in https://github.com/wandb/wandb/pull/11327)owner property on wandb.apis.public.Project to access the project owner's user information. (@jacobromero in https://github.com/wandb/wandb/pull/11278)wandb-core crashes no longer produce extremely long, repetitive tracebacks in older Python versions (@timoffex in https://github.com/wandb/wandb/pull/11284)wandb.Api() now supports Federated Auth (JWT based authentication). (@ryanbuccellato in https://github.com/wandb/wandb/pull/11243)
Runs created with wandb==0.24.0 may fail to upload some data, which this release fixes. Missing data is stored in the run's .wandb file and can be reu
Runs created with wandb==0.24.0 may fail to upload some data, which this release fixes. Missing data is stored in the run's .wandb file and can be reuploaded with wandb sync.
download_history_exports in api.Run class to download exported run history in parquet file format (@jacobromero in https://github.com/wandb/wandb/pull/11094)./wandb/settings or ~/.config/wandb/settings) contains an invalid setting, all settings files are ignored and an error is printed (@timoffex in https://github.com/wandb/wandb/pull/11207)wandb login --host <invalid-url>, using wandb login --host <valid-url> works as usual (@timoffex in https://github.com/wandb/wandb/pull/11207)
wandb beta sync correctly loads credentials (@timoffex in https://github.com/wandb/wandb/pull/11231)
wandb beta sync to get stuck on Syncing....wandb file and can be reuploaded with wandb sync…functions. This is formally a breaking change.
⚠️ This release has been yanked from PyPI.
Do not use this version. Runs created with wandb==0.24.0 may in rare cases silently fail to upload data. Upgrade immediately to v0.24.1, which fixes this issue. If you've already used this version, missing data is stored in the run's .wandb file and can be recovered with wandb sync.
This version removes the legacy, deprecated wandb.beta.workflows module, including its log_model()/use_model()/link_model() functions. This is formally a breaking change.
wandb agent and wandb.agent() now accept a forward_signals flag (CLI: --forward-signals/-f) to relay SIGINT/SIGTERM and other catchable signals from the agent to its sweep child runs, enabling cleaner shutdowns when you interrupt an agent process (@kylegoyette, @domphan-wandb in https://github.com/wandb/wandb/pull/9651)wandb beta sync now supports a --live option for syncing a run while it's being logged (@timoffex in https://github.com/wandb/wandb/pull/11079)wandb.beta.workflows module, including its log_model(), use_model(), and link_model() functions, and whose modern successors are the Run.log_artifact, Run.use_artifact, and Run.link_artifact methods, respectively (@tonyyli-wandb in [TODO: PR link])Run.__exit__ type annotations to accept None values, which are passed when no exception is raised (@moldhouse in https://github.com/wandb/wandb/pull/11100)Invalid Client ID digest error when creating artifacts after calling random.seed(). Client IDs could collide when random state was seeded deterministically. (@pingleiwandb in https://github.com/wandb/wandb/pull/11039)api.run() on a Sweeps run (@willtryagain in https://github.com/wandb/wandb/pull/11088 and @kelu-wandb in https://github.com/wandb/wandb/pull/11097)…--anonymously and wandb.login(anonymous=...) is deprecated and will emit warnings (@timoffex in https://github.com/wandb/wandb/pull/10909)
beta_history_scan method to Run objects for faster history scanning performance with wandb.Api (@jacobromero in https://github.com/wandb/wandb/pull/10779)wandb.Api() now raises a UsageError if WANDB_IDENTITY_TOKEN_FILE is set and an explicit API key is not provided (@timoffex in https://github.com/wandb/wandb/pull/10970)
wandb.Api() has only ever worked using an API keyanonymous setting, the WANDB_ANONYMOUS environment variable, wandb.init(anonymous=...), wandb login --anonymously and wandb.login(anonymous=...) is deprecated and will emit warnings (@timoffex in https://github.com/wandb/wandb/pull/10909)wandb.Image() no longer prints a deprecation warning (@jacobromero in https://github.com/wandb/wandb/pull/10880)Registry.description and ArtifactCollection.description no longer reject empty strings (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10891)Artifact objects is now significantly faster (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10819)wandb.Run.save() now falls back to hardlinks and, if needed, copying (downgrading the 'live' file policy to 'now', if applicable) when symlinks are disabled or unavailable (e.g., cross‑volume or no Developer Mode on Windows) (@dmitryduev in https://github.com/wandb/wandb/pull/10894)ArtifactCollection.aliases instead of on instantiating ArtifactCollection, improving performance of Api.artifact_collections(), Api.registries().collections(), etc. (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10731)wandb.init(settings=wandb.Settings(api_key="...")) for login. Use the key from run when logging artifacts via run.log_artifact (@pingleiwandb in https://github.com/wandb/wandb/pull/10914)console_capture.py (@timoffex in https://github.com/wandb/wandb/pull/10955)WANDB_X_EXTRA_HTTP_HEADERS except for reference artifactsNothing published for this version
Experimental wandb beta leet command - Lightweight Experiment Exploration Tool - a terminal UI for viewing W&B runs locally with real-time metrics vis
wandb beta leet command - Lightweight Experiment Exploration Tool - a terminal UI for viewing W&B runs locally with real-time metrics visualization and system monitoring (@dmitryduev in https://github.com/wandb/wandb/pull/10764)Registry.id has been added as a (read-only) property of Registry objects (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10785).Artifact.files() now has a correct len() when filtering by the names parameter (@matthoare117-wandb in https://github.com/wandb/wandb/pull/10796)Artifact.link() now logs unsaved artifacts instead of raising an error, consistent with the behavior of Run.link_artifact() (@tonyyli-wandb in https://github.com/wandb/wandb/10822)Artifact.metadata now raises a ValueError early, instead of waiting on request retries to time out (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10845).Nothing published for this version
Settings console_chunk_max_seconds and console_chunk_max_bytes for size- and time-based multipart console logs file chunking (@dmitryduev in https://g
console_chunk_max_seconds and console_chunk_max_bytes for size- and time-based multipart console logs file chunking (@dmitryduev in https://github.com/wandb/wandb/pull/10162)Api.registries(), Registry.{collections,versions}(), Api.registries().{collections,versions}()) now accept a per_page keyword arg to override the default batch size for paginated results (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10713).run.config now properly returns a dict when calling artifact.logged_by() in v0.22.1 (@thanos-wandb in #10682)wandb.Api(api_key=...) now prioritizes the explicitly provided API key over thread-local cached credentials (@pingleiwandb in https://github.com/wandb/wandb/pull/10657)console_capture.py (@timoffex in https://github.com/wandb/wandb/pull/10683)
wandb-AsyncioManager-main thread stuck on a line in console_capture.py: this is now fixed.Artifact.manifest delays downloading and generating the download URL for the artifact manifest until it's first used. If the manifest has not been locally modified, Artifact.size and Artifact.digest can return without waiting to fetch the full manifest (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10680)artifact.add_reference (@amusipatla-wandb in https://github.com/wandb/wandb/pull/10679)Possibly fixed some cases where the output.log file was not being uploaded (@timoffex in https://github.com/wandb/wandb/pull/10620)
output.log file was not being uploaded (@timoffex in https://github.com/wandb/wandb/pull/10620)run.save() repeatedly on unchanged files (@dmitryduev in https://github.com/wandb/wandb/pull/10639)Optimize artifacts downloads re-verification with checksum caching (@thanos-wandb in https://github.com/wandb/wandb/pull/10157)
Api().runs() to improve performance when listing runs. The new lazy=True parameter (default) loads only essential metadata initially, with automatic on-demand loading of heavy fields like config and summary when accessed (@thanos-wandb in https://github.com/wandb/wandb/pull/10034)storage_region option when creating artifacts. Users can use CoreWeave AI Object Storage by specifying wandb.Artifact(storage_region="coreweave-us") when using wandb.ai for faster artifact upload/download on CoreWeave's infrastructure. (@pingleiwandb in https://github.com/wandb/wandb/pull/10533)Api.artifact_exists() and Api.artifact_collection_exists() now raise on encountering timeout errors, rather than (potentially erroneously) returning False. (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10591)This version removes support of MacOS 10.
This version removes support of MacOS 10.
run.finish() first, or call wandb.init() with the parameter reinit='create_new' (@jacobromero in https://github.com/wandb/wandb/pull/10468)Api().runs() for wandb server < 0.51.0 (when project.internalId was added to gql API) (@kelu-wandb in https://github.com/wandb/wandb/pull/10507)command run scripts that import readline whether directly or indirectly (e.g. import torch on Python 3.13) should no longer deadlock (@kelu-wandb in https://github.com/wandb/wandb/pull/10489)Add DSPy integration: track evaluation metrics over time, log predictions and program signature evolution to W&B Tables, and save DSPy programs as W&B
Updated click dependency constraint from >=7.1 to >=8.0.1 (@willtryagain in https://github.com/wandb/wandb/pull/10418)
click dependency constraint from >=7.1 to >=8.0.1 (@willtryagain in https://github.com/wandb/wandb/pull/10418)While this prevents undetected failures in those methods, it is also a breaking change.
This version raises errors that would previously have been suppressed during calls to Artifact.link() or Run.link_artifact(). While this prevents undetected failures in those methods, it is also a breaking change.
max_end_of_run_history_metrics and max_end_of_run_summary_metrics (@timoffex in https://github.com/wandb/wandb/pull/10351)wandb.integration.weave module for automatically initializing Weave when a W&B run is active and weave is imported (@andrewtruong in https://github.com/wandb/wandb/pull/10389)Artifact.link() and Run.link_artifact() no longer return None (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9968)config no long raise Object of type ... is not JSON serializable when containing real classes as fields to the dataclass (@jacobromero in https://github.com/wandb/wandb/pull/10371)Artifact.link() and Run.link_artifact() should be faster on server versions 0.74.0+, requiring 4-5 fewer unnecessary blocking GraphQL requests (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10393).The wandb.beta.workflows module and its contents (including log_model(), use_model(), and link_model()) are deprecated and will be removed in a future…
The default ordering for Api().runs(...) and Api().sweeps(...) is now ascending order based on the runs created_at time.
first summary option in define_metric (@kptkin in https://github.com/wandb/wandb/pull/10121)pattern parameter to Api().run().files to only get files matching a given pattern from the W&B backend (@jacobromero in https://github.com/wandb/wandb/pull/10163)format key to Launch input JSONSchema to specify a string with a secret format (@domphan-wandb in https://github.com/wandb/wandb/pull/10207)Sweep.name property will now return user-edited display name if available (falling back to original name from sweep config, then sweep ID as before) (@kelu-wandb in https://github.com/wandb/wandb/pull/10144)Api().runs(...) and Api().sweeps(...) now returns runs in ascending order according to the runs created_at time. (@jacobromero in https://github.com/wandb/wandb/pull/10130)__bool__ for the registry iterators to align with python lazy iterators. (@estellazx in https://github.com/wandb/wandb/pull/10259)wandb.beta.workflows module and its contents (including log_model(), use_model(), and link_model()) are deprecated and will be removed in a future release (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10205).InternalArtifact names have been shortened to 6 alphanumeric characters (@tonyyli-wandb in https://github.com/wandb/wandb/pull/10102)wandb.Video will not print a progress spinner while encoding video when WANDB_SILENT/WANDB_QUIET environment variables are set (@jacobromero in https://github.com/wandb/wandb/pull/10064)api.registries() from having an extra wandb-registry- prefix in the name and full_name fields (@estellazx in https://github.com/wandb/wandb/pull/10187)sync_tensorboard (@timoffex in https://github.com/wandb/wandb/pull/10199)Api().run(...).upload_file no longer throws an error when uploading a file in a different path relative to the provided root directory (@jacobromero in https://github.com/wandb/wandb/pull/10228)load() function on a public API run object no longer throws TypeError. (@jacobromero in https://github.com/wandb/wandb/pull/10050)wandb.agent() API throws an exception, it will now appear on the logs page for the run. (This previously only happened for runs called by the wandb agent CLI command.) (@kelu-wandb in https://github.com/wandb/wandb/pull/10244)This version removes the legacy implementation of the service process. This is a breaking change.
This version removes the legacy implementation of the service process. This is a breaking change.
x_stats_track_process_tree to track process-specific metrics such as the RSS, CPU%, and thread count in use for the entire process tree, starting from x_stats_pid. This can be expensive and is disabled by default (@dmitryduev in https://github.com/wandb/wandb/pull/10089)Artifact.link() no longer instantiates a throwaway placeholder run (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9828)wandb now attempts to use Unix sockets for IPC instead of listening on localhost, making it work in environments with more restrictive permissions (such as Databricks) (@timoffex in https://github.com/wandb/wandb/pull/9995)Api.artifact() will now display a warning while fetching artifacts from migrated model registry collections. (@ibindlish in https://github.com/wandb/wandb/pull/10047).length for objects queried from wandb.Api has been deprecated. Use len(...) instead (@jacobromero in https://github.com/wandb/wandb/pull/10091)Removed the legacy python implementation of the service process. The legacy-service option of wandb.require as well as the x_require_legacy_service and x_disable_setproctitle settings with the corresponding environment variables have been removed and will now raise an error if used (@dmitryduev in https://github.com/wandb/wandb/pull/9965)
Removed the private wandb.Run._metadata attribute. To override the auto-detected CPU and GPU counts as well as the GPU type, please use the new settings x_stats_{cpu_count,cpu_logical_count,gpu_count,gpu_type} (@dmitryduev in https://github.com/wandb/wandb/pull/9984)
silent, quiet, and show_warnings settings passed to a Run instance for warnings emitted by the service process (@kptkin in https://github.com/wandb/wandb/pull/10077)api.Runs no longer makes an API call for each run loaded from W&B. (@jacobromero in https://github.com/wandb/wandb/pull/10087)x_extra_http_headers setting from the env variable (@dmitryduev in https://github.com/wandb/wandb/pull/10103).length calls the W&B backend to load the length of objects when no data has been loaded rather than returning None (@jacobromero in https://github.com/wandb/wandb/pull/10091)Nothing published for this version
wandb.Image() was broken in 0.20.0 when given NumPy arrays with values in the range [0, 1], now fixed (@timoffex in https://github.com/wandb/wandb/pul
wandb.Image() was broken in 0.20.0 when given NumPy arrays with values in the range [0, 1], now fixed (@timoffex in https://github.com/wandb/wandb/pull/9982)Nothing published for this version
This version removes the ability to disable the service process. This is a breaking change.
log_mode, with options "IMMUTABLE" and "MUTABLE". IMMUTABLE log mode (default) is existing behavior that only allows a table to be logged once. MUTABLE log mode allows the table to be logged again if it has been mutated. (@domphan-wandb in https://github.com/wandb/wandb/pull/9758)log_mode, "INCREMENTAL", which logs newly added table data incrementally. (@domphan-wandb in https://github.com/wandb/wandb/pull/9810)This version removes the ability to disable the service process. This is a breaking change.
merge parameter to Artifact.add_dir to allow overwrite of previously-added artifact files (@pingleiwandb in https://github.com/wandb/wandb/pull/9907)masks and boxes parameters when creating a wandb.Image object. (@jacobromero in https://github.com/wandb/wandb/pull/9802)sync_tensorboard now supports syncing tfevents files stored in S3, GCS and Azure (@timoffex in https://github.com/wandb/wandb/pull/9849)
gs://bucket/path/to/log/dir and rely on application-default credentials, which can be configured using gcloud auth application-default logins3://bucket/path/to/log/dir and rely on the default credentials set through aws configureaz://account/container/path/to/log/dir and the az login credentials, but also require the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY environment variables to be set. Some other environment variables are supported as well, see here.pathlib.Path (@jacobromero in https://github.com/wandb/wandb/pull/9692)x_skip_transaction_log that allows to skip the transaction log. Note: Should be used with caution, as it removes the gurantees about recoverability. (@kptkin in https://github.com/wandb/wandb/pull/9064)normalize parameter to wandb.Image initialization to normalize pixel values for Images initialized with a numpy array or pytorch tensor. (@jacobromero in https://github.com/wandb/wandb/pull/9883)TypeError instead of ValueError or other generic errors when given an argument of the wrong type. (@timoffex in https://github.com/wandb/wandb/pull/9902)CommError instead of ValueError upon encountering server errors, so as to surface the server error message. (@ibindlish in https://github.com/wandb/wandb/pull/9933)wandb.sdk.wandb_run.Run::save method now requires the glob_str argument (@dmitryduev in https://github.com/wandb/wandb/pull/9962)service process. The x_disable_service/_disable_service setting and the WANDB_DISABLE_SERVICE/WANDB_X_DISABLE_SERVICE environment variable have been deprecated and will now raise an error if used (@kptkin in https://github.com/wandb/wandb/pull/9829)wandb.docker after only importing wandb (@timoffex in https://github.com/wandb/wandb/pull/9941)
wandb.docker is not part of wandb's public interface and is subject to breaking changes. Please do not use it.sync argument from wandb.Run::log function (@kptkin in https://github.com/wandb/wandb/pull/9940)wandb.sdk.wandb_run.Run.mode property (@dmitryduev in https://github.com/wandb/wandb/pull/9958)wandb.sdk.wandb_run.Run::join method (@dmitryduev in https://github.com/wandb/wandb/pull/9960)start_method setting is deprecated and has no effect; it is safely ignored (@kptkin in https://github.com/wandb/wandb/pull/9837)Artifact.use_as and parameter use_as for run.use_artifact() are deprecated since these have not been in use for W&B Launch (@ibindlish in https://github.com/wandb/wandb/pull/9760)wandb.teardown() in a child of a process that called wandb.setup() no longer raises WandbServiceNotOwnedError (@timoffex in https://github.com/wandb/wandb/pull/9875)
wandb.Image initialized with tensorflow data would be normalized differently than when initialized with a numpy array (@jacobromero in https://github.com/wandb/wandb/pull/9883)wandb login no longer prints a warning about wandb.require("legacy-service") (@timoffex in https://github.com/wandb/wandb/pull/9912)Table (or other objects that create internal artifacts) no longer raises ValueError when logged from a run whose ID contains special characters. (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9943)wandb.Api initialized with the base_url now respects the provided url, rather than the last login url (@jacobromero in https://github.com/wandb/wandb/pull/9942)Nothing published for this version
Added creation, deletion, and updating of registries in the SDK. (@estellazx in https://github.com/wandb/wandb/pull/9453)
artifact.is_link property to artifacts to determine if an artifact is a link artifact (such as in the Registry) or source artifact. (@estellazx in https://github.com/wandb/wandb/pull/9764)artifact.linked_artifacts to fetch all the linked artifacts to a source artifact and artifact.source_artifact to fetch the source artifact of a linked artifact. (@estellazx in https://github.com/wandb/wandb/pull/9789)run.link_artifact(), artifact.link(), and run.link_model() all return the linked artifact upon linking (@estellazx in https://github.com/wandb/wandb/pull/9763)artifact.download(multipart=True). (@pingleiwandb in https://github.com/wandb/wandb/pull/9738)Project.id property to get the project ID on a wandb.public.Project (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9194).wandb.automations.* to support programmatically managing W&B Automations.Api.integrations(), Api.slack_integrations(), Api.webhook_integrations() to fetch a team's existing Slack or webhook integrations.Api.create_automation(), Api.automation()/Api.automations(), Api.update_automation(), Api.delete_automation() to create, fetch, edit, and delete Automations.RUN_METRIC_CHANGE events, i.e. on changes in run metric values (absolute or relative deltas). (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9775)WANDB_ENABLE_DCGM_PROFILING environment variable to true. Requires the nvidia-dcgm service to be running on the machine. Enabling this feature can lead to increased resource usage. (@dmitryduev in https://github.com/wandb/wandb/pull/9780)run.log_code correctly sets the run configs code_path value. (@jacobromero in https://github.com/wandb/wandb/pull/9753)WANDB_CONFIG_DIR for determining system settings file path (@jacobromero in https://github.com/wandb/wandb/pull/9711)Artifact and ArtifactCollection names (which would make them unloggable), explicitly raising a ValueError when attempting to assign an invalid name. (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8773)ConfigError in Pydantic v1 environments from not calling .model_rebuild()/.update_forward_refs() on generated types with ForwardRef fields (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9795)wandb.init() no longer raises Permission denied error when the wandb directory is not writable or readable (@jacobromero in https://github.com/wandb/wandb/pull/9751)file.delete() on files queried via api.Runs(...) no longer raises CommError (@jacobromero in https://github.com/wandb/wandb/pull/9748)
The following wandb.Run methods are deprecated in favor of properties and will be removed in a future release (@kptkin in https://github.com/wandb/wan…
reinit="create_new" setting causes wandb.init() to create a new run even if other runs are active, without finishing the other runs (in contrast to reinit="finish_previous"). This will eventually become the default (@timoffex in https://github.com/wandb/wandb/pull/9562)Artifact.history_step to return the nearest run step at which history metrics were logged for the artifact's source run (@ibindlish in https://github.com/wandb/wandb/pull/9732)data_is_not_path flag to skip file checks when initializing wandb.Html with a sting that points to a file.Artifact.download() no longer raises an error when using WANDB_MODE=offline or when an offline run exists (@timoffex in https://github.com/wandb/wandb/pull/9695)-q / --quiet argument to the wandb magic in IPython / Jupyter; use the quiet run setting instead (@timoffex in https://github.com/wandb/wandb/pull/9705)wandb.Run methods are deprecated in favor of properties and will be removed in a future release (@kptkin in https://github.com/wandb/wandb/pull/8925):
run.project_name() is deprecated in favor of run.projectrun.get_url() method is deprecated in favor of run.urlrun.get_project_url() method is deprecated in favor of run.project_urlrun.get_sweep_url() method is deprecated in favor of run.sweep_urlwandb.Html() no longer raises IsADirectoryError with a value that matched a directory on the users system. (@jacobromero in https://github.com/wandb/wandb/pull/9728)Boolean values for the reinit setting are deprecated; use "return_previous" and "finish_previous" instead (@timoffex in https://github.com/wandb/wandb…
reinit setting can be set to "default" (@timoffex in https://github.com/wandb/wandb/pull/9569)reinit setting are deprecated; use "return_previous" and "finish_previous" instead (@timoffex in https://github.com/wandb/wandb/pull/9557)propagate=False at import time, whereas it previously happened when starting a run. This may change the messages observed by the root logger in some workflows (@timoffex in https://github.com/wandb/wandb/pull/9540)plum-dispatch package. (@jacobromero in https://github.com/wandb/wandb/pull/9599)pydantic version requirement to support both v1 and v2 (@dmitryduev in https://github.com/wandb/wandb/pull/9605)pydantic types have been adapted to be compatible with Pydantic v1 (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9623)wandb.init(dir=...) now creates any nonexistent directories in dir if it has a parent directory that is writeable (@ringohoffman in https://github.com/wandb/wandb/pull/9545)per_page argument now only accept int values. Default per_page values are set directly in method signatures, and explicitly passing None is no longer supported (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9201)wandb.init() in a notebook finishes previous runs as previously documented (@timoffex in https://github.com/wandb/wandb/pull/9569)
jpg/jpeg images containing transparency data (@jacobromero in https://github.com/wandb/wandb/pull/9527)wandb.init(resume_from=...) now works without explicitly specifying the run's id (@kptkin in https://github.com/wandb/wandb/pull/9572)Media file paths containing special characters (?, *, ], [ or \\) no longer cause file uploads to fail in wandb-core (@jacobromero in https://github.c
wandb-core (@jacobromero in https://github.com/wandb/wandb/pull/9475)Registry search api (@estellazx in https://github.com/wandb/wandb/pull/9472)
wandb.init() displays more detailed information, in particular when it is stuck retrying HTTP errors (@timoffex in https://github.com/wandb/wandb/pull/9431)x_show_operation_stats setting (@timoffex in https://github.com/wandb/wandb/pull/9427)wandb.setup() correctly starts up the internal service process; this semantic was unintentionally broken in 0.19.2 (@timoffex in https://github.com/wandb/wandb/pull/9436)TypeError: Object of type ... is not JSON serializable when using numpy number types as values. (@jacobromero in https://github.com/wandb/wandb/pull/9487)Prometheus API support for Nvidia DCGM GPU metrics collection (@dmitryduev in https://github.com/wandb/wandb/pull/9369)
wandb.Artifact, which in turn slowed down fetching artifacts in various API methods. (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9355)wandb.Api have better string representations (@timoffex in https://github.com/wandb/wandb/pull/9361)name to the path of the file references (@ssisk in https://github.com/wandb/wandb/pull/9378)Artifact.add_reference() with checksum=False to log new versions of local reference artifacts without changes to the reference URI. (@tonyyli-wandb in https://github.com/wandb/wandb/pull/9326)Nothing published for this version
Added wandb login --base-url {host_url} to login as an alias of wandb login --host {host_url}. (@jacobromero in https://github.com/wandb/wandb/pull/93
wandb login --base-url {host_url} to login as an alias of wandb login --host {host_url}. (@jacobromero in https://github.com/wandb/wandb/pull/9323)offline mode to make network requests when logging media artifacts. If you are using an older version of W&B Server that does not support offline artifact uploads, use the setting allow_offline_artifacts=False to revert to older compatible behavior. (@domphan-wandb in https://github.com/wandb/wandb/pull/9267)fork_from and resume_from. (@dmitryduev in https://github.com/wandb/wandb/pull/9331)Fix incorrectly reported device counts and duty cycle measurements for TPUs with single devices per chip / multiple devices on the host and make TPU m
Nothing published for this version
Fix wandb.Settings update regression in wandb.integration.metaflow (@kptkin in https://github.com/wandb/wandb/pull/9211)
wandb.Settings update regression in wandb.integration.metaflow (@kptkin in https://github.com/wandb/wandb/pull/9211)Support JWT authentication in wandb-core (@elainaRenee in https://github.com/wandb/wandb/pull/8431)
wandb.init(mode="disabled") no longer disables all later runs by default. Use wandb.setup(settings=wandb.Settings(mode="disabled")) for this instead, or set mode="disabled" explicitly in each call to wandb.init(). (@timoffex in https://github.com/wandb/wandb/pull/9172)wandb.Api().runs() (@tomtseng in https://github.com/wandb/wandb/pull/9101)wandb offline command no longer adds an unsupported setting to wandb.Settings, resolving ValidationError. (@kptkin in https://github.com/wandb/wandb/pull/9135)multiprocessing to update a single run from multiple processes (@timoffex in https://github.com/wandb/wandb/pull/9126)botocore < 1.5.76 (@amusipatla-wandb, @tonyyli-wandb in https://github.com/wandb/wandb/pull/9015)anonymous settings value. (@jacobromero in https://github.com/wandb/wandb/pull/9193)wandb.wandb_sdk.wandb_setup._setup() function's reset parameter has been removed. Note that this is a private function, even though there appear to be usages outside of the repo. Please wandb.teardown() instead of _setup(reset=True). (@timoffex in https://github.com/wandb/wandb/pull/9165)wandb.wandb_sdk.wandb_setup module, the logger and _set_logger symbols have been removed (@timoffex in https://github.com/wandb/wandb/pull/9195)wandb.init(mode="disabled") no longer disables all later runs by default. Use wandb.setup(settings=wandb.Settings(mode="disabled")) for this instead, or set mode="disabled" explicitly in each call to wandb.init(). (@timoffex in https://github.com/wandb/wandb/pull/9172)wandb.Api().runs() (@tomtseng in https://github.com/wandb/wandb/pull/9101)wandb offline command no longer adds an unsupported setting to wandb.Settings, resolving ValidationError. (@kptkin in https://github.com/wandb/wandb/pull/9135)multiprocessing to update a single run from multiple processes (@timoffex in https://github.com/wandb/wandb/pull/9126)botocore < 1.5.76 (@amusipatla-wandb, @tonyyli-wandb in https://github.com/wandb/wandb/pull/9015)anonymous settings value. (@jacobromero in https://github.com/wandb/wandb/pull/9193)wandb.wandb_sdk.wandb_setup._setup() function's reset parameter has been removed. Note that this is a private function, even though there appear to be usages outside of the repo. Please wandb.teardown() instead of _setup(reset=True). (@timoffex in https://github.com/wandb/wandb/pull/9165)wandb.wandb_sdk.wandb_setup module, the logger and _set_logger symbols have been removed (@timoffex in https://github.com/wandb/wandb/pull/9195)github.com/go-git/go-git version to 5.13.0 to address CVE-2025-21613. (@kptkin in https://github.com/wandb/wandb/pull/9192)golang.org/x/net version to 0.33.0 to address CVE-2024-45338. (@kptkin in https://github.com/wandb/wandb/pull/9115)Fixed bug where setting WANDB__SERVICE_WAIT led to an exception during wandb.init (@TimSchneider42 in https://github.com/wandb/wandb/pull/9050)
run.finish() displays more detailed information in the terminal and in Jupyter notebooks (by @timoffex, enabled in https://github.com/wandb/wandb/pull/9070)run.finish() displays more detailed information in the terminal and in Jupyter notebooks (by @timoffex, enabled in https://github.com/wandb/wandb/pull/9070)golang.org/x/crypto version to 0.31.0 to address CVE-2024-45337. (@kptkin in https://github.com/wandb/wandb/pull/9069)Nothing published for this version
Set default behavior to not create a W&B Job (@KyleGoyette in https://github.com/wandb/wandb/pull/8907)
wandb.Run.plot_table method. The functionality is still available and should be accessed using wandb.plot_table, which is now the recommended way to use this feature. (@kptkin in https://github.com/wandb/wandb/pull/8686)ultralytics reporting if there are no positive examples in a validation batch. (@Jamil in https://github.com/wandb/wandb/pull/8870)log_params argument when calling lightgbm's wandb_callback function. (@i-aki-y https://github.com/wandb/wandb/pull/8943)This version drops Python 3.7 and removes the wandb.Run.plot_table method.
This version adds pydantic>=2.6,<3 as a dependency.
wandb.Run.plot_table method. The functionality is still available and should be accessed using wandb.plot_table, which is now the recommended way to use this feature. (@kptkin in https://github.com/wandb/wandb/pull/8686)ultralytics reporting if there are no positive examples in a validation batch. (@Jamil in https://github.com/wandb/wandb/pull/8870)log_params argument when calling lightgbm's wandb_callback function. (@i-aki-y https://github.com/wandb/wandb/pull/8943)Nothing published for this version
The quiet argument to wandb.run.finish() is deprecated, use wandb.Settings(quiet=...) to set this instead. (@kptkin in https://github.com/wandb/wandb/…
create_and_run_agent to __all__ in wandb/sdk/launch/__init__.py to expose it as a public API (@marijncv in https://github.com/wandb/wandb/pull/8621)allow_offline_artifacts = False. (@domphan-wandb in https://github.com/wandb/wandb/pull/8792)quiet argument to wandb.run.finish() is deprecated, use wandb.Settings(quiet=...) to set this instead. (@kptkin in https://github.com/wandb/wandb/pull/8794)api.artifact() to correctly pass the enable_tracking argument to the Artifact._from_name() method (@ibindlish in https://github.com/wandb/wandb/pull/8803)Add a boolean overwrite param to Artifact.add()/Artifact.add_file() to allow overwrite of previously-added artifact files (@tonyyli-wandb in https://g
overwrite param to Artifact.add()/Artifact.add_file() to allow overwrite of previously-added artifact files (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8553)wandb.plot module in the package stub (@kptkin in https://github.com/wandb/wandb/pull/8667)max_objects (@amusipatla-wandb in https://github.com/wandb/wandb/pull/8703)skip_cache=True (@amusipatla-wandb in https://github.com/wandb/wandb/pull/8706)mode='x'/mode='w' in Artifact.new_file() to conform to Python's built-in file modes (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8553)distribution when configuring sweep parameters from SDK. (@temporaer in https://github.com/wandb/wandb/pull/8737)mode in Artifact.new_file() from 'w' to 'x' to accurately reflect existing default behavior (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8553)Import Literal from typing_extensions in Python 3.7; broken in 0.18.4 (@timoffex in https://github.com/wandb/wandb/pull/8656)
Literal from typing_extensions in Python 3.7; broken in 0.18.4 (@timoffex in https://github.com/wandb/wandb/pull/8656)Updated minimum version of sentry-sdk to 2.0.0 to address deprecation warnings. (@jacobromero in https://github.com/wandb/wandb/compare/WB-20890)
fps argument will be ignored when creating a wandb.Video object from a file path string or a bytes object. (@jacobromero in https://github.com/wandb/wandb/pull/8585)logged_artifacts and used_artifacts methods in Run class (@trane293 in https://github.com/wandb/wandb/pull/8624)_show_operation_stats setting enables a preview of a better run.finish() UX (@timoffex in https://github.com/wandb/wandb/pull/8644)wandb.Api (@bdvllrs in https://github.com/wandb/wandb/pull/8548)sentry-sdk to 2.0.0 to address deprecation warnings. (@jacobromero in https://github.com/wandb/wandb/compare/WB-20890)Add the ability to monitor the utilization metrics of Google's Cloud TPU devices (@dmitryduev in https://github.com/wandb/wandb/pull/8504)
run.log_artifact() no longer blocks other data uploads until the artifact upload finishes (@timoffex in https://github.com/wandb/wandb/pull/8466)rdkit-pypi to rdkit (@jacobromero in https://github.com/wandb/wandb/compare/WB-20894)artifact = run.log_artifact(), you must use artifact.wait() before operations that rely on the artifact having been uploaded. Previously, this wasn't necessary in some cases because run.log_artifact() blocked other operations on the run (@timoffex in https://github.com/wandb/wandb/pull/8466)Add upsert_run_queue method to wandb.Api. (@bcsherma in https://github.com/wandb/wandb/pull/8348)
upsert_run_queue method to wandb.Api. (@bcsherma in https://github.com/wandb/wandb/pull/8348)tags parameter to wandb.Api.artifacts() to filter artifacts by tag. (@moredatarequired in https://github.com/wandb/wandb/pull/8441)wandb.api.public.runs.Run.log_artifact() to support artifact tags like Run instances returned by wandb.init(). (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8414)wandb.watch to support auto-complete (@kptkin in https://github.com/wandb/wandb/pull/8425)/ (@KyleGoyette in https://github.com/wandb/wandb/pull/8434)a\.b syntax in run.define_metric to refer to a dotted metric name (@jacobromero in https://github.com/wandb/wandb/pull/8445)OSError from calling Artifact.add_file with file paths on mounted filesystems (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8473)Allow all users to read cache files when core is enabled (@moredatarequired in https://github.com/wandb/wandb/pull/8362)
WANDB_ERROR_REPORTING=false. This fixes a regression introduced in 0.18.0 (@kptkin in https://github.com/wandb/wandb/pull/8379)WANDB_ERROR_REPORTING=false. This fixes a regression introduced in 0.18.0 (@kptkin in https://github.com/wandb/wandb/pull/8379)Add support for artifact tags, via Artifact.tags and Run.log_artifact() (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8085)
Artifact.tags and Run.log_artifact() (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8085)wandb.require("legacy-service") at the beginning of your script. Note: In the upcoming minor release, the option
to disable this new behavior will be removed (@kptkin in https://github.com/wandb/wandb/pull/7777)This version switches wandb to a new backend by enabling wandb.require("core") by default. This should not be a breaking change, but the new backend may have unexpected differences in behavior for legacy functionality and rare edge cases.
Artifact.tags and Run.log_artifact() (@tonyyli-wandb in https://github.com/wandb/wandb/pull/8085)wandb.require("legacy-service") at the beginning of your script. Note: In a future minor release, the option to disable this new behavior will be removed (@kptkin in https://github.com/wandb/wandb/pull/7777)Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →