Skip to main content

pie-client

pie-client is the command-line client for talking to a running Pie engine over WebSocket. Use it to submit inferlets, install local builds, attach to processes, and inspect what's running. It ships with the pie-client Python package.

pip install pie-client
pie-client --help

Configuration file

Most commands accept the same connection / auth options. To avoid repeating them, write them once into a config file at ~/.pie-client/config.toml:

host = "127.0.0.1"
port = 8080
username = "alice"
private_key_path = "~/.ssh/id_ed25519"
enable_auth = true

pie-client config init walks an interactive prompt to write this file. pie-client config show prints the current config. pie-client config update patches individual fields by passing the matching --host / --port / --username / --private-key-path / --enable-auth option.

Every command also accepts --host, --port, --username, --private-key-path, and --config <PATH> to override or supplement the file.

Commands

pie-client [COMMAND]
submit Submit an inferlet to a running engine
install Upload a local build to the engine
list List running inferlet instances
attach Attach to a running instance and stream output
abort Terminate a running instance
ping Check whether the engine is alive
config Manage the client config file

pie-client submit

Submit an inferlet to the engine, stream its events, and exit when it returns.

# By registry name
pie-client submit text-completion@0.1.0 -- --prompt "hello"

# By local build
pie-client submit --path ./my_inferlet.wasm --manifest ./Pie.toml -- --prompt "hello"
Argument / flagDescription
<inferlet> (positional)name@version from the registry. Mutually exclusive with --path.
--path / -p <FILE>Path to a local .wasm build. Requires --manifest.
--manifest / -m <FILE>Path to the Pie.toml manifest for the local build.
--no-output / -dDon't capture the inferlet's stdout/stderr.
--link / -l <FILE>Path to a .wasm library file to link. May be repeated.
<arguments...> (after --)Extra arguments forwarded to the inferlet's input dict.
--config <FILE>Override config file path.
--host, --portOverride engine host / port.
--username, --private-key-pathOverride auth credentials.

pie-client install

Upload a local .wasm and its manifest to the engine. The build stays loaded for the engine's lifetime; subsequent submit calls can reference it by name@version.

pie-client install --path ./my_inferlet.wasm --manifest ./Pie.toml
FlagDescription
--path / -p <FILE> (required)The .wasm file.
--manifest / -m <FILE> (required)The Pie.toml manifest.
--force / -fOverwrite an existing program with the same name@version.
--config, --host, --port, --username, --private-key-pathConnection / auth overrides.

pie-client list

List running inferlet instances on the engine.

pie-client list
pie-client list --long # show 8-character UUID prefixes
pie-client list --full # show full UUIDs
FlagDescription
--fullShow full UUIDs (otherwise the table abbreviates).
--longShow 8-character UUID prefixes.
--config, --host, --port, --username, --private-key-pathConnection / auth overrides.

pie-client attach

Attach to a running instance and stream its output until it returns. The instance keeps running across attach / detach cycles.

pie-client attach <instance-id-prefix>

The argument can be a UUID prefix (any unique substring works) or a full UUID.

FlagDescription
<instance-id-prefix> (required)Prefix or full UUID of the target instance.
--config, --host, --port, --username, --private-key-pathConnection / auth overrides.

pie-client abort

Request termination of a running instance.

pie-client abort <instance-id-prefix>
FlagDescription
<instance-id-prefix> (required)Prefix or full UUID of the target instance.
--config, --host, --port, --username, --private-key-pathConnection / auth overrides.

pie-client ping

Health check. Round-trips a ping through the engine and prints the result.

pie-client ping

pie-client config

Manage the per-user config file.

SubcommandDescription
pie-client config init [--no-enable-auth] [--path FILE]Writes ~/.pie-client/config.toml (or --path FILE). Picks up an existing ~/.ssh/id_ed25519 / id_rsa / id_ecdsa key if found; otherwise points at the default ~/.ssh/id_ed25519 path.
pie-client config show [--path FILE]Pretty-print the current config.
pie-client config update [--host HOST] [--port PORT] [--username NAME] [--private-key-path PATH] [--enable-auth BOOL] [--path FILE]Patch one or more fields. Pass any subset; only provided fields are updated.

Exit codes

CodeMeaning
0Command succeeded.
1Command failed; stderr contains the reason.
  • Python client SDK: the library pie-client is built on. Use this when you need programmatic access from your own Python application.
  • pie: the engine CLI. The client connects to a pie serve instance.
  • Inferlet manifest: the Pie.toml file --manifest points at.