synps command line

synps is the project, dependency, build, and packaging command line for PLeX. Commands act on the nearest synps.toml unless --project selects another manifest.

synps <command> [arguments] [options]

Global option

Option Meaning
--project <file> Use another synps.toml for this command.

The parser also accepts a single leading dash, but documentation and examples use the conventional --long-option spelling.

Commands

Command Purpose
synps new <name> Create a project directory, source/include/assets directories, and a starter manifest.
synps init Create synps.toml in the current directory.
synps add <pkg> Add a dependency.
synps remove <pkg> Remove a dependency.
synps install Resolve dependencies and write synps.lock.
synps update Re-resolve dependencies and write synps.lock.
synps graph Print the resolved dependency/capability graph.
synps inspect Print the resolved compiler plan.
synps build Build and package build/<package-name>.mln.
synps clean Remove the project build/ directory.
synps help [command] Show command usage.

Create a project

synps new vision-app
cd vision-app

Use synps init when the directory already exists.

Manage dependencies

Local dependency for development:

synps add quantizations --path ../Quantizations

Git dependency:

synps add f16 --git https://github.com/useplx/Quantizations.git

add requires at least one of --path or --git. Add version = "v1.0.0" or rev = "<commit>" to the generated Git dependency before publishing a reproducible project. For a package inside a monorepo, also add subdir = "F16". remove uses the dependency alias as it appears under [dependencies].

Resolve

synps install
synps graph

install resolves the manifest and writes a lockfile snapshot. In the current implementation, normal resolution does not read that lockfile back to pin a later build; use immutable Git rev values when source reproducibility matters. update currently follows the same resolution/write path as install.

Inspect

synps inspect

Use this before a long compile. It resolves dependencies, package configuration, exports, policies, formats, hooks, and entrypoints into the plan presented to the compiler.

Build

synps build
synps build --release
synps build --jobs 8
synps build --jobs 8 --weight-memory-mib 2048

--release asks source-language toolchains for optimized output without debug symbols. --jobs N bounds independent build-DAG actions and accepts values from 1 through 8; the default is the host hardware concurrency capped at 8. Dependencies and order-only dependencies are always completed before a consumer starts. This is build parallelism and is independent from the IREE Stream scheduling policy. The same bound reaches the weight-conversion plan. Independent weight roots are converted concurrently in declaration order while --weight-memory-mib limits their estimated temporary decoded buffers; its default is 2048 MiB. The final artifact is written under:

build/<root-package-name>.mln

Intermediate outputs and cache entries remain under build/.

Devices are selected per graph path by [policies."path".backend]. Native and Orchestration toolchains are selected independently by [build.native] and [build.orchestration]; there is no global target override.

Clean

synps clean

Removes the complete project build/ directory.

Help and failures

synps help
synps help build

Unknown commands, malformed arguments, configuration errors, resolution errors, and build failures are reported with a diagnostic code. See Diagnostics.