Starting and connecting¶
How the console fits¶
Transport: local TCP, plain-text commands, JSON responses.
Intended scope: development / debugging, not a production control plane.
Security model: binds to localhost by default; plain-text protocol (keep the port private, localhost or a private subnet only).
Independent of the UI: the console talks to the backend over its own TCP socket, not gRPC/gRPC-Web, you can run it with or without Weights Studio UI open, and both can be attached at once.
Start the server¶
From your training script (recommended), starts the server; a client REPL window opens automatically:
import weightslab as wl
wl.serve(serving_grpc=True, serving_cli=True) # serving_cli defaults to True
wl.keep_serving()
To start the server headless (no REPL window pops up; attach later on
demand), pass spawn_cli_client=False, see the serve entry in
User Functions Reference:
wl.serve(serving_cli=True, spawn_cli_client=False)
Low-level equivalents (rarely needed directly, wl.serve/weightslab
cli cover the normal workflow):
python -m weightslab.backend.cli serve --host localhost --port 60000
python -m weightslab.backend.cli client --host localhost --port 60000
If no port is given (or port is 0), the server picks a free port and
advertises it for auto-discovery.
Attach a client¶
From any other terminal:
weightslab cli # auto-discover the port
weightslab cli --port 60000 # or specify one
weightslab cli --host HOST --port PORT
Auto-discovery reads whatever port the server advertised on startup, so a
bare weightslab cli is normally all you need on the same machine. Pass
--host/--port explicitly when the backend is on another machine (see
Ports and remote access for bridging a remote experiment) or
when several experiments are running locally at once and auto-discovery would
be ambiguous.
Once attached, type help (or h / ?) inside the console at any
time, it prints the same reference as Console commands, with extra
examples pulled from the running experiment’s own registrations.
Ending a session¶
exit/quit, close the client connection (handled server-side; the server replies, then closes the socket).clear/cls, clear the local terminal screen. Handled entirely by the client, not sent to the server.Ctrl+Cin the server’s own terminal stops training and every servicewl.serve()started, including the CLI server, the console can’t be attached to after that.
Developer notes¶
Prefer the console for quick diagnosis and manual interventions; use Weights Studio for richer visual workflows.
Keep the CLI port private (localhost, or a private subnet at most), the protocol is plain text with no authentication.
Editing hyperparameters is the only supported mutation path for architecture-level state; there is currently no console command to freeze/unfreeze layers or resize a model (that lives in the Experiment Agent Assistant and Weights Studio surfaces, and in the Python API).