Skip to main content
New to pcl? Start with the Quickstart Tutorial to learn the workflow.

Global Options

Options:
  -j, --json      Output in JSON format
  -h, --help      Print help
  -V, --version   Print version

Commands

Commands are listed in the order they are usually used in the assertion development workflow.

auth

Manage authentication with your Phylax platform account.
Authenticate `pcl` with your Phylax platform account

Usage: pcl auth [OPTIONS] <COMMAND>

Commands:
  login   Login to `pcl` using your wallet
  logout  Logout from `pcl`
  status  Check current authentication status
  help    Print this message or the help of the given subcommand(s)

Options:
  -u, --auth-url <AUTH_URL>  Base URL for authentication service [env: PCL_AUTH_URL=] [default: https://app.phylax.systems]
  -h, --help                 Print help

auth login

Login to pcl. Opens a browser window where you can authenticate via wallet, email, Google, or GitHub.

auth logout

Logout from pcl and clear local authentication token.

auth status

Check current authentication status.

test

Run tests for your assertions.
Run tests

Usage: pcl test [OPTIONS] [PATH]

Options:
  -h, --help  Print help (see more with '--help')

Common options:
  -v, --verbosity...            Verbosity level of the log messages. Pass multiple times to increase verbosity (e.g. -v, -vv, -vvv)
  -q, --quiet                   Do not print log messages
      --match-path <GLOB>       Only run tests in source files matching the specified glob pattern
      --match-test <REGEX>      Only run test functions matching the specified regex pattern
      --match-contract <REGEX>  Only run tests in contracts matching the specified regex pattern
pcl test uses Forge underneath for test execution. Note that pcl uses an older version of Forge, so newer Forge features may not be available. The Forge version is periodically updated to include new features. See the Forge test documentation for all available options.

build

Build contracts using phorge.
Build contracts using `phorge`

Usage: pcl build [OPTIONS]

Options:
      --root <ROOT>  Root directory of the project
  -h, --help         Print help

apply

Preview and apply declarative deployment changes from credible.toml. This is the primary command for deploying assertions to the platform. pcl apply reads your credible.toml configuration, builds and compiles the referenced assertion contracts, and creates a release on the platform.
Preview and apply declarative deployment changes from credible.toml

Usage: pcl apply [OPTIONS]

Options:
      --root <ROOT>      Project root directory [default: .]
  -c, --config <CONFIG>  Path to credible.toml, relative to root or absolute [default: assertions/credible.toml]
      --json             Emit machine-readable output
      --yes              Apply without interactive confirmation
  -u, --api-url <URL>    Base URL for the platform API [env: PCL_API_URL=] [default: https://app.phylax.systems]
  -h, --help             Print help
Examples:
# Apply using default config location (assertions/credible.toml)
pcl apply

# Specify a project root directory
pcl apply --root ./my-project

# Use a custom config path
pcl apply --root ./my-project -c path/to/credible.toml

# Auto-approve without interactive confirmation
pcl apply --yes

# Output in JSON format for CI/CD
pcl apply --json --yes
By default, pcl apply looks for credible.toml at assertions/credible.toml relative to the project root. Use -c to override this path.
If project_id is not set in your credible.toml, pcl apply will prompt you to select a project interactively. Set it in the config to skip this prompt, especially useful in CI/CD.

config

Manage your pcl configuration including authentication tokens and settings.
Manage configuration

Usage: pcl config <COMMAND>

Commands:
  show    Display the current configuration
  delete  Delete the current configuration
  help    Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

config show

Display the current configuration stored in ~/.config/pcl/config.toml.

config delete

Delete the current configuration file.

credible.toml Configuration

The credible.toml file defines your project’s assertion deployment configuration. It maps contracts to their assertions in a declarative format. Default location: assertions/credible.toml (relative to your project root)

Format

environment = "production"
project_id = "550e8400-e29b-41d4-a716-446655440000" # optional

[contracts.my_contract]
address = "0x1234567890abcdef1234567890abcdef12345678"
name = "MyContract"

[[contracts.my_contract.assertions]]
file = "assertions/src/MyAssertion.a.sol"

Fields

FieldTypeRequiredDescription
environmentstringYesDeployment environment name (e.g., "production")
project_idUUIDNoPlatform project ID. If omitted, you are prompted to select one interactively
contractsmapYesNamed contract definitions (see below)
Contract fields:
FieldTypeRequiredDescription
addressstringYesContract address on-chain
namestringYesHuman-readable contract name
assertionsarrayYesList of assertions to apply to this contract
Assertion fields:
FieldTypeRequiredDescription
filestringYesPath to assertion contract file (relative to project root)
argsarrayNoConstructor arguments for the assertion

Example

environment = "production"

[contracts.ownable]
address = "0x75634113D6A2fbfF5e65151ce1572195bE1d001A"
name = "Ownable"

[[contracts.ownable.assertions]]
file = "assertions/src/OwnableAssertion.a.sol"

[contracts.phylock]
address = "0xD452d2C8602322a46DFf0936fD6426BDC08358bf"
name = "PhyLock"

[[contracts.phylock.assertions]]
file = "assertions/src/PhyLockAssertion.a.sol"
Each contract address must be unique within the configuration. pcl apply validates this and returns an error if duplicates are found.

Environment Variables

PCL_AUTH_URL

Base URL for authentication service. Default: https://app.phylax.systems
export PCL_AUTH_URL=https://custom-auth-url.com
pcl auth login

PCL_API_URL

Base URL for the Phylax platform API. Default: https://app.phylax.systems
export PCL_API_URL=https://custom-api-url.com
pcl apply

Configuration File

Configuration is stored in ~/.config/pcl/config.toml and includes:
  • Authentication tokens and identity
You can view the configuration with pcl config show or delete it with pcl config delete.

Next Steps

Apply Assertions

Learn how to deploy assertions with pcl apply

Quick Start Guide

Step-by-step tutorial for your first assertion

Installation

Install pcl

Deploy with the Platform

Deploy assertions to protect your contracts