-
v3.4.5
StableAll checks were successfulpublished / release-tag (push) Successful in 3spublished / runner-is-ready (push) Successful in 8spublished / projectfile-is-valid (push) Successful in 6spublished / schema-fetched (push) Successful in 4spublished / source-is-compliant (push) Successful in 11spublished / source-is-secure (push) Successful in 23spublished / gpg-is-ready (push) Successful in 4spublished / signing-is-ready (push) Successful in 7spublished / projectfile-is-ok (push) Successful in 9spublished / documentation-passes-lint (push) Successful in 1m8spublished / source-is-tested (push) Successful in 14spublished / source-passes-lint (push) Successful in 1m17spublished / binaries-are-built (amd64, darwin) (push) Successful in 20spublished / binaries-are-built (amd64, linux) (push) Successful in 14spublished / binaries-are-built (arm64, darwin) (push) Successful in 11spublished / binaries-are-built (arm64, linux) (push) Successful in 13spublished / binaries-are-built (riscv64, linux) (push) Successful in 14spublished / gsa (amd64, darwin) (push) Successful in 15spublished / gsa (arm64, darwin) (push) Successful in 11spublished / gsa (amd64, linux) (push) Successful in 11spublished / gsa (arm64, linux) (push) Successful in 12spublished / gsa (riscv64, linux) (push) Successful in 19spublished / image-is-built (amd64) (push) Successful in 1m29spublished / binaries-are-signed (push) Successful in 14spublished / image-has-sbom (amd64) (push) Successful in 14spublished / image-is-secure (amd64) (push) Successful in 17spublished / binaries-are-torrented (push) Successful in 20spublished / binaries-torrent-is-verified (push) Successful in 9spublished / container-is-verified (amd64) (push) Successful in 3m25spublished / image-is-published (kiota) (push) Successful in 31spublished / image-is-published (dockerhub) (push) Successful in 1m8spublished / release-is-published (push) Successful in 19spublished / release-notes-are-published (push) Successful in 7spublished / go-install-is-ok (push) Successful in 49spublished / published (push) Successful in 0sreleased this
2026-10-25 01:05:33 +00:00 | 0 commits to main since this release5 commits, 1 contributor, 1 day since v3.4.4.
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.4.5 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.4.5 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.4.5 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.4.5 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpGo toolchain
Install with the Go toolchain:
go install projectfile.org/projectfile/cli/v3/cmd/pf-cli@v3.4.5Then run
pf-cli --help.Prebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.4.5/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64To uninstall, delete that one file:
rm ~/.local/bin/pf-cli.Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.4.5 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.4.5 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.4.5 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.4.5Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.4.5/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc ~/.local/bin/pf-cli # every downloaded asset at once gpg --verify pf-cli-SHA256SUMS.asc pf-cli-SHA256SUMS sha256sum --check --ignore-missing pf-cli-SHA256SUMSDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.4.5
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v3.4.4
StableAll checks were successfulpublished / release-tag (push) Successful in 2spublished / schema-fetched (push) Successful in 2spublished / projectfile-is-valid (push) Successful in 5spublished / runner-is-ready (push) Successful in 5spublished / source-is-compliant (push) Successful in 7spublished / gpg-is-ready (push) Successful in 5spublished / signing-is-ready (push) Successful in 5spublished / projectfile-is-ok (push) Successful in 5spublished / source-is-secure (push) Successful in 14spublished / source-is-tested (push) Successful in 14spublished / documentation-passes-lint (push) Successful in 55spublished / source-passes-lint (push) Successful in 49spublished / binaries-are-built (amd64, linux) (push) Successful in 5spublished / binaries-are-built (arm64, darwin) (push) Successful in 6spublished / binaries-are-built (arm64, linux) (push) Successful in 6spublished / binaries-are-built (riscv64, linux) (push) Successful in 6spublished / binaries-are-built (amd64, darwin) (push) Successful in 7spublished / gsa (amd64, darwin) (push) Successful in 10spublished / gsa (arm64, linux) (push) Successful in 9spublished / gsa (amd64, linux) (push) Successful in 9spublished / gsa (arm64, darwin) (push) Successful in 9spublished / gsa (riscv64, linux) (push) Successful in 8spublished / binaries-are-signed (push) Successful in 11spublished / binaries-are-torrented (push) Successful in 15spublished / binaries-torrent-is-verified (push) Successful in 6spublished / image-is-built (amd64) (push) Successful in 59spublished / image-has-sbom (amd64) (push) Successful in 11spublished / image-is-secure (amd64) (push) Successful in 12spublished / container-is-verified (amd64) (push) Successful in 1m46spublished / image-is-published (kiota) (push) Successful in 10spublished / image-is-published (dockerhub) (push) Successful in 41spublished / release-is-published (push) Successful in 7spublished / release-notes-are-published (push) Successful in 4spublished / go-install-is-ok (push) Successful in 20spublished / published (push) Successful in 0sreleased this
2026-10-21 17:56:39 +00:00 | 6 commits to main since this release4 commits, 1 contributor, 2 days since v3.4.3.
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.4.4 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.4.4 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.4.4 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.4.4 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpGo toolchain
Install with the Go toolchain:
go install projectfile.org/projectfile/cli/v3/cmd/pf-cli@v3.4.4Then run
pf-cli --help.Prebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.4.4/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64To uninstall, delete that one file:
rm ~/.local/bin/pf-cli.Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.4.4 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.4.4 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.4.4 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.4.4Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.4.4/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc ~/.local/bin/pf-cli # every downloaded asset at once gpg --verify pf-cli-SHA256SUMS.asc pf-cli-SHA256SUMS sha256sum --check --ignore-missing pf-cli-SHA256SUMSDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.4.4
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v3.4.3
StableAll checks were successfulpublished / release-tag (push) Successful in 3spublished / projectfile-is-valid (push) Successful in 5spublished / schema-fetched (push) Successful in 3spublished / runner-is-ready (push) Successful in 8spublished / source-is-compliant (push) Successful in 8spublished / gpg-is-ready (push) Successful in 4spublished / source-is-secure (push) Successful in 18spublished / projectfile-is-ok (push) Successful in 5spublished / signing-is-ready (push) Successful in 5spublished / source-is-tested (push) Successful in 12spublished / documentation-passes-lint (push) Successful in 59spublished / source-passes-lint (push) Successful in 1m1spublished / binaries-are-built (amd64, darwin) (push) Successful in 4spublished / binaries-are-built (amd64, linux) (push) Successful in 6spublished / binaries-are-built (arm64, darwin) (push) Successful in 4spublished / binaries-are-built (riscv64, linux) (push) Successful in 5spublished / binaries-are-built (arm64, linux) (push) Successful in 5spublished / gsa (arm64, darwin) (push) Successful in 5spublished / gsa (amd64, darwin) (push) Successful in 11spublished / gsa (amd64, linux) (push) Successful in 8spublished / gsa (arm64, linux) (push) Successful in 7spublished / gsa (riscv64, linux) (push) Successful in 8spublished / binaries-are-signed (push) Successful in 14spublished / image-is-built (amd64) (push) Successful in 1m41spublished / binaries-are-torrented (push) Successful in 14spublished / image-has-sbom (amd64) (push) Successful in 13spublished / image-is-secure (amd64) (push) Successful in 16spublished / binaries-torrent-is-verified (push) Successful in 6spublished / container-is-verified (amd64) (push) Successful in 3m5spublished / image-is-published (kiota) (push) Successful in 26spublished / image-is-published (dockerhub) (push) Successful in 58spublished / release-is-published (push) Successful in 16spublished / release-notes-are-published (push) Successful in 8spublished / go-install-is-ok (push) Successful in 1m2spublished / published (push) Successful in 0sreleased this
2026-10-19 08:53:51 +00:00 | 11 commits to main since this release3 commits, 1 contributor, 7 hours since v3.4.2.
Bug fixes
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.4.3 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.4.3 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.4.3 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.4.3 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpGo toolchain
Install with the Go toolchain:
go install projectfile.org/projectfile/cli/v3/cmd/pf-cli@v3.4.3Then run
pf-cli --help.Prebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.4.3/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64To uninstall, delete that one file:
rm ~/.local/bin/pf-cli.Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.4.3 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.4.3 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.4.3 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.4.3Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.4.3/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc ~/.local/bin/pf-cli # every downloaded asset at once gpg --verify pf-cli-SHA256SUMS.asc pf-cli-SHA256SUMS sha256sum --check --ignore-missing pf-cli-SHA256SUMSDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.4.3
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v3.4.2
StableAll checks were successfulpublished / release-tag (push) Successful in 1spublished / projectfile-is-valid (push) Successful in 2spublished / schema-fetched (push) Successful in 1spublished / runner-is-ready (push) Successful in 6spublished / source-is-compliant (push) Successful in 4spublished / source-is-secure (push) Successful in 10spublished / gpg-is-ready (push) Successful in 4spublished / signing-is-ready (push) Successful in 6spublished / projectfile-is-ok (push) Successful in 8spublished / source-is-tested (push) Successful in 13spublished / documentation-passes-lint (push) Successful in 54spublished / source-passes-lint (push) Successful in 1m15spublished / binaries-are-built (amd64, darwin) (push) Successful in 7spublished / binaries-are-built (amd64, linux) (push) Successful in 7spublished / binaries-are-built (arm64, darwin) (push) Successful in 8spublished / binaries-are-built (arm64, linux) (push) Successful in 8spublished / binaries-are-built (riscv64, linux) (push) Successful in 6spublished / gsa (amd64, darwin) (push) Successful in 7spublished / gsa (amd64, linux) (push) Successful in 4spublished / gsa (arm64, darwin) (push) Successful in 5spublished / gsa (arm64, linux) (push) Successful in 5spublished / gsa (riscv64, linux) (push) Successful in 4spublished / image-is-built (amd64) (push) Successful in 1m12spublished / binaries-are-signed (push) Successful in 12spublished / image-has-sbom (amd64) (push) Successful in 14spublished / image-is-secure (amd64) (push) Successful in 18spublished / binaries-are-torrented (push) Successful in 14spublished / binaries-torrent-is-verified (push) Successful in 9spublished / container-is-verified (amd64) (push) Successful in 2m13spublished / image-is-published (kiota) (push) Successful in 13spublished / image-is-published (dockerhub) (push) Successful in 45spublished / release-is-published (push) Successful in 8spublished / release-notes-are-published (push) Successful in 4spublished / go-install-is-ok (push) Successful in 47spublished / published (push) Successful in 0sreleased this
2026-10-18 23:56:34 +00:00 | 15 commits to main since this release24 commits, 1 contributor, 22 hours since v3.4.1.
Bug fixes
- get: keep the env-expansion cursor moving on every input (
cdbd4d7) - refactor CI workflows (new goals + preflight checks) (
099413d) - workflows: move pins (
071582f,bba2b96) - workflows: enable checks (
09bfbf9)
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.4.2 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.4.2 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.4.2 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.4.2 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpGo toolchain
Install with the Go toolchain:
go install projectfile.org/projectfile/cli/v3/cmd/pf-cli@v3.4.2Then run
pf-cli --help.Prebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.4.2/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64To uninstall, delete that one file:
rm ~/.local/bin/pf-cli.Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.4.2 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.4.2 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.4.2 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.4.2Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.4.2/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc ~/.local/bin/pf-cli # every downloaded asset at once gpg --verify pf-cli-SHA256SUMS.asc pf-cli-SHA256SUMS sha256sum --check --ignore-missing pf-cli-SHA256SUMSDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.4.2
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- get: keep the env-expansion cursor moving on every input (
-
v3.4.1
StableAll checks were successfulpublished / fetched (push) Successful in 0spublished / release-tag (push) Successful in 2spublished / schema-fetched (push) Successful in 2spublished / projectfile-is-valid (push) Successful in 12spublished / source-is-compliant (push) Successful in 13spublished / source-is-secure (push) Successful in 17spublished / gpg-is-ready (push) Successful in 5spublished / signing-is-ready (push) Successful in 6spublished / source-is-tested (push) Successful in 5spublished / projectfile-is-ok (push) Successful in 8spublished / documentation-passes-lint (push) Successful in 1m10spublished / documentation-is-ok (push) Successful in 0spublished / source-passes-lint (push) Successful in 1m1spublished / source-is-ok (push) Successful in 0spublished / inputs-are-ok (push) Successful in 0spublished / binaries-are-built (amd64, linux) (push) Successful in 8spublished / binaries-are-built (amd64, darwin) (push) Successful in 8spublished / binaries-are-built (arm64, linux) (push) Successful in 7spublished / binaries-are-built (arm64, darwin) (push) Successful in 8spublished / binaries-are-built (riscv64, linux) (push) Successful in 7spublished / gsa (amd64, darwin) (push) Successful in 6spublished / gsa (arm64, darwin) (push) Successful in 6spublished / gsa (arm64, linux) (push) Successful in 4spublished / gsa (amd64, linux) (push) Successful in 7spublished / gsa (riscv64, linux) (push) Successful in 6spublished / binaries-are-ok (push) Successful in 0spublished / binaries-are-signed (push) Successful in 10spublished / binaries-are-ready (push) Successful in 0spublished / binaries-are-torrented (push) Successful in 16spublished / image-is-built (amd64) (push) Successful in 59spublished / secrets-ready (push) Successful in 0spublished / binaries-torrent-is-verified (push) Successful in 4spublished / images-are-ok (push) Successful in 0spublished / container-is-ok (push) Successful in 0spublished / container-ready-to-test (push) Successful in 0spublished / image-has-sbom (amd64) (push) Successful in 7spublished / container-is-diagnosed (push) Successful in 0spublished / image-is-secure (amd64) (push) Successful in 10spublished / container-is-verified (amd64) (push) Successful in 1m36spublished / image-is-ready (push) Successful in 0spublished / artifacts-are-ok (push) Successful in 0spublished / ready-to-publish (push) Successful in 0spublished / publish-image (kiota) (push) Successful in 10spublished / publish-image (dockerhub) (push) Successful in 37spublished / image-is-signed (push) Successful in 0spublished / release-is-published (push) Successful in 6spublished / release-notes-are-published (push) Successful in 3spublished / go-install-is-ok (push) Successful in 35spublished / published (push) Successful in 0sreleased this
2026-10-18 00:00:04 +00:00 | 41 commits to main since this release1 commit, 1 contributor, 1 hour since v3.4.0.
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.4.1 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.4.1 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.4.1 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.4.1 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpGo toolchain
Install with the Go toolchain:
go install projectfile.org/projectfile/cli/v3/cmd/pf-cli@v3.4.1Then run
pf-cli --help.Prebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.4.1/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64To uninstall, delete that one file:
rm ~/.local/bin/pf-cli.Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.4.1 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.4.1 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.4.1 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.4.1Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.4.1/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc ~/.local/bin/pf-cli # every downloaded asset at once gpg --verify pf-cli-SHA256SUMS.asc pf-cli-SHA256SUMS sha256sum --check --ignore-missing pf-cli-SHA256SUMSDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.4.1
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v3.3.0
StableAll checks were successfulpublished / tag-is-on-stable (push) Has been skippedpublished / fetched (push) Successful in 0spublished / schema-fetched (push) Successful in 3spublished / projectfile-is-valid (push) Successful in 4spublished / gpg-is-ready (push) Successful in 5spublished / signing-is-ready (push) Successful in 6spublished / source-is-compliant (push) Successful in 8spublished / source-is-tested (push) Successful in 5spublished / projectfile-is-ok (push) Successful in 4spublished / source-is-secure (push) Successful in 12spublished / source-passes-lint (push) Successful in 40spublished / source-is-ok (push) Successful in 0spublished / documentation-passes-lint (push) Successful in 50spublished / documentation-is-ok (push) Successful in 0spublished / inputs-are-ok (push) Successful in 0spublished / binaries-are-built (arm64, linux) (push) Successful in 5spublished / binaries-are-built (amd64, linux) (push) Successful in 5spublished / binaries-are-built (riscv64, linux) (push) Successful in 5spublished / binaries-are-built (arm64, darwin) (push) Successful in 5spublished / binaries-are-built (amd64, darwin) (push) Successful in 5spublished / gsa (arm64, linux) (push) Successful in 5spublished / gsa (amd64, darwin) (push) Successful in 5spublished / gsa (amd64, linux) (push) Successful in 5spublished / gsa (arm64, darwin) (push) Successful in 5spublished / gsa (riscv64, linux) (push) Successful in 5spublished / binaries-are-ok (push) Successful in 0spublished / binaries-are-signed (push) Has been skippedpublished / binaries-are-torrented (push) Has been skippedpublished / binaries-torrent-is-verified (push) Has been skippedpublished / image-is-built (amd64) (push) Successful in 33spublished / image-has-sbom (amd64) (push) Has been skippedpublished / secrets-ready (push) Successful in 0spublished / images-are-ok (push) Successful in 0spublished / container-is-ok (push) Successful in 0spublished / container-ready-to-test (push) Successful in 0spublished / image-is-secure (amd64) (push) Successful in 7spublished / container-is-diagnosed (push) Successful in 0spublished / container-is-verified (amd64) (push) Successful in 1m4spublished / image-is-ready (push) Successful in 0spublished / artifacts-are-ok (push) Successful in 0spublished / ready-to-publish (push) Successful in 0spublished / release-is-dispatched (push) Successful in 3spublished / publish-image (dockerhub) (push) Successful in 4spublished / publish-image (kiota) (push) Successful in 5spublished / image-is-signed (push) Has been skippedpublished / release-is-published (push) Has been skippedpublished / go-install-is-ok (push) Has been skippedpublished / release-notes-are-published (push) Has been skippedpublished / published (push) Successful in 0sreleased this
2026-10-16 19:27:25 +00:00 | 72 commits to dev since this release11 commits, 1 contributor, 19 hours since v3.2.1.
Features
- validate: reject an artifact exclude cell outside the declared platforms (
51d7887)
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.3.0 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.3.0 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.3.0 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.3.0 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpPrebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.3.0/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64To uninstall, delete that one file:
rm ~/.local/bin/pf-cli.Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.3.0 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.3.0 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.3.0 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.3.0Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.3.0/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc pf-cli # every downloaded asset at once gpg --verify pf-cli-SHA256SUMS.asc pf-cli-SHA256SUMS sha256sum --check --ignore-missing pf-cli-SHA256SUMSDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.3.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- validate: reject an artifact exclude cell outside the declared platforms (
-
v3.2.1
StableAll checks were successfulpublished / fetched (push) Successful in 0spublished / schema-fetched (push) Successful in 2spublished / gpg-is-ready (push) Successful in 7spublished / projectfile-is-valid (push) Successful in 7spublished / source-is-tested (push) Successful in 4spublished / signing-is-ready (push) Successful in 8spublished / source-is-compliant (push) Successful in 10spublished / projectfile-is-ok (push) Successful in 7spublished / source-is-secure (push) Successful in 14spublished / source-passes-lint (push) Successful in 45spublished / documentation-passes-lint (push) Successful in 53spublished / documentation-is-ok (push) Successful in 0spublished / source-is-ok (push) Successful in 0spublished / inputs-are-ok (push) Successful in 0spublished / binaries-are-built (amd64, darwin) (push) Successful in 6spublished / binaries-are-built (arm64, linux) (push) Successful in 7spublished / binaries-are-built (riscv64, linux) (push) Successful in 7spublished / binaries-are-built (arm64, darwin) (push) Successful in 7spublished / binaries-are-built (amd64, linux) (push) Successful in 7spublished / gsa (riscv64, linux) (push) Successful in 7spublished / gsa (amd64, darwin) (push) Successful in 9spublished / gsa (arm64, darwin) (push) Successful in 9spublished / gsa (arm64, linux) (push) Successful in 9spublished / gsa (amd64, linux) (push) Successful in 9spublished / binaries-are-ok (push) Successful in 0spublished / binaries-are-signed (push) Successful in 5spublished / binaries-are-torrented (push) Successful in 9spublished / image-is-built (amd64) (push) Successful in 43spublished / secrets-ready (push) Successful in 0spublished / images-are-ok (push) Successful in 0spublished / container-is-ok (push) Successful in 0spublished / container-ready-to-test (push) Successful in 0spublished / image-has-sbom (amd64) (push) Successful in 6spublished / container-is-diagnosed (push) Successful in 0spublished / image-is-secure (amd64) (push) Successful in 8spublished / container-is-verified (amd64) (push) Successful in 1m16spublished / image-is-ready (push) Successful in 0spublished / artifacts-are-ok (push) Successful in 0spublished / ready-to-publish (push) Successful in 0spublished / publish-image (push) Successful in 0spublished / image-is-signed (push) Successful in 0spublished / image-is-attested (kiota) (push) Successful in 12spublished / image-is-attested (dockerhub) (push) Successful in 44spublished / release-is-published (push) Successful in 4spublished / release-notes-are-published (push) Successful in 3spublished / published (push) Successful in 1sreleased this
2026-10-15 23:26:33 +00:00 | 84 commits to dev since this release3 commits, 1 contributor, 4 hours since v3.2.0.
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.2.1 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.2.1 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.2.1 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.2.1 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpPrebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.2.1/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.2.1 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.2.1 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.2.1 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.2.1Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.2.1/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc pf-cliDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.2.1
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v3.2.0
StableAll checks were successfulpublished / fetched (push) Successful in 0spublished / schema-fetched (push) Successful in 2spublished / gpg-is-ready (push) Successful in 4spublished / projectfile-is-valid (push) Successful in 5spublished / signing-is-ready (push) Successful in 5spublished / source-is-compliant (push) Successful in 7spublished / source-is-tested (push) Successful in 5spublished / projectfile-is-ok (push) Successful in 4spublished / source-is-secure (push) Successful in 11spublished / source-passes-lint (push) Successful in 40spublished / source-is-ok (push) Successful in 0spublished / documentation-passes-lint (push) Successful in 49spublished / documentation-is-ok (push) Successful in 0spublished / inputs-are-ok (push) Successful in 0spublished / binaries-are-built (riscv64, linux) (push) Successful in 5spublished / binaries-are-built (amd64, darwin) (push) Successful in 6spublished / binaries-are-built (amd64, linux) (push) Successful in 6spublished / binaries-are-built (arm64, linux) (push) Successful in 6spublished / binaries-are-built (arm64, darwin) (push) Successful in 6spublished / gsa (riscv64, linux) (push) Successful in 4spublished / gsa (arm64, linux) (push) Successful in 4spublished / gsa (arm64, darwin) (push) Successful in 4spublished / gsa (amd64, linux) (push) Successful in 4spublished / gsa (amd64, darwin) (push) Successful in 4spublished / binaries-are-ok (push) Successful in 0spublished / binaries-are-signed (push) Successful in 6spublished / binaries-are-torrented (push) Successful in 9spublished / image-is-built (amd64) (push) Successful in 38spublished / secrets-ready (push) Successful in 0spublished / images-are-ok (push) Successful in 0spublished / container-is-ok (push) Successful in 0spublished / image-has-sbom (amd64) (push) Successful in 6spublished / container-ready-to-test (push) Successful in 0spublished / container-is-diagnosed (push) Successful in 0spublished / image-is-secure (amd64) (push) Successful in 8spublished / container-is-verified (amd64) (push) Successful in 1m2spublished / image-is-ready (push) Successful in 0spublished / artifacts-are-ok (push) Successful in 0spublished / ready-to-publish (push) Successful in 0spublished / publish-image (push) Successful in 0spublished / image-is-signed (push) Successful in 0spublished / image-is-attested (kiota) (push) Successful in 16spublished / image-is-attested (dockerhub) (push) Successful in 37spublished / release-is-published (push) Successful in 4spublished / release-notes-are-published (push) Successful in 3spublished / published (push) Successful in 0sreleased this
2026-10-15 19:13:27 +00:00 | 88 commits to dev since this release410 commits, 1 contributor.
Upgrade notes
-
get: read composed values with --scope, drop the sink subcommand (
1e826ec)removes
pf-cli sinkand the image.{basename,namespace,name}
derived get addresses. -
cli: drop the rm and v aliases (
0e6f048)pf-cli rmandpf-cli vare unknown commands; usedel/deleteandvalidate/lint. -
cli: results on stdout, one colour decision and a network timeout (
43b16f1)result lines move from stderr to stdout.
-
cli: rename --path-file to --file (
fd19833)
Features
- sink: add
pf-cli sink refandpf-cli sink list(9b6f060) - sink: compose many references in one call with
sink refs(7f0315b) - get: bind a scope to one --path entry so a batch reads many subjects (
47847eb) - i18n: translate feature fragments to Spanish and Ukrainian (
24be133) - i18n: localize identity summary and description (
ae663cf) - ci: seed released binaries to BitTorrent (
a5607da) - ci: sign released binaries and published images (
b0e5a88) - ci: publish one torrent for the whole release (
5dfac29) - cache: expose cache status, warm --force, purge [url], refresh (
06c359d) - cli: support yaml and toml output in get command (
72e21ae) - forge: declare Codeberg and GitHub mirrors and enable GitHub CI (
03801ea) - ci: build linux/amd64, arm64 and riscv64 images (
6cd41ed) - publish: push to Docker Hub (
f2dc54a) - cli: colorize help headers and command names (
d761b7e) - cli: add pf-cli init with bridge delegation and basic fallback (
776dbaf) - get: add --expand to fill document references in place (
8f1c86f) - cli: add -V and derive a version for unstamped builds (
8ba0478) - pf-cli optimize prunes redundant includes (
b388da1) - cli: pin includes to their sha256 (
043d80b) - get: suggest the nearest sibling on a missing field (
3429384) - cli: document and enforce a distinct exit code per failure class (
fd8b852) - help: lead with examples, group commands and link the docs (
1d28fc3) - get: propose the intended address with --suggest (
d5ab94d) - validate: embed the fragment schema and check an included file with --fragment (
b7ae0cd) - module: move the module to projectfile.org/projectfile/cli/v3 (
3ca652e) - release: tag releases with a v prefix (
49b6732)
Bug fixes
- fetch-schema: clear the inherited Git environment before touching the clone (
1dcffb6) - dockerfile: key apt cache mounts by arch, not just series (
5932f39) - go: bump toolchain directive to 1.26.6 (
c5b8a75) - deps: bump projectfile/core to v2.9.4 (
4733607) - container: declare the full b19 build-arg surface (
cdc86b3) - ci: add gsa node to enforce build-binaries before auto-gsa (
5ba498d) - update .makefile/library submodule (disable check-outdated-go memoisation) (
eb0d330) - ci: opt into the binary release pipeline explicitly (
416f831) - deps: bump kiota.ch/projectfile/core/v2 to v2.9.7 (
c514443) - build-binaries: stop writing a duplicate unsuffixed dist/pf-cli (
3ab3fcd) - ci: gate the cosign steps on the publish cell (
a19c44c) - bump core to 2.10.3 (
a12e09e) - forge: declare only existing forges (
69c5082) - deps: bump projectfile/core to v2.11.1 (
ed98dbe) - deps: bump projectfile/core to v2.11.2 (
5d7e4a7) - deps: bump projectfile/core to v2.12.0 (
7bb5998) - deps: bump projectfile/core to v2.12.3 (
feac89a) - cli: drop non-existent sink ref from help (
d2185ed) - deps: bump projectfile/core to v2.13.0 (
4c40546) - cli: reject an empty --fail-on value (
620b3a0) - get: name a missing field and the command to inspect it (
4d7f36a) - set: refuse a value the field cannot hold instead of deleting it (
4e8fd2d) - validate: name a duplicate include as listed twice (
ce4affe) - deps: update projectfile core to v2.15.0 (
f623b33) - goconst (
80f3790) - deps: bump charm.land/bubbletea/v2 to v2.1.0 (
9a890c3) - container: restore M6E_VERSION in final image (
f31cedb) - deps: bump projectfile/core to v2.16.0 (
e263b7d) - validate: reject TOML documents missing spec_version (
d9962b7) - validate: name the repositories origin rule in failures (
bc2c343) - cli: rewrite argument and flag errors in the tool’s voice (
41f8755) - cli: reserve -f for --force and drop it from --path-file and --format (
b7efc12) - cli: keep a bare set value as the text the user typed (
7cc954a) - cli: keep a folded block scalar folded across a write (
5bf8f2b) - deps: bump core to 2.17.0 (
ec46d2b) - deps: bump core to 2.18.0 (
e4c4d15) - deps: bump projectfile/core to v2.18.1 for retried network fetches (
f0a78e0) - security: suppress CVE-2026-92392 in the Ubuntu cURL (
2c38874) - security: generate the scanner ignore files from the projectfile (
375d124) - ci: sign every binary cell in one job (
2e16bcf) - build: fetch public Go modules through proxy.golang.org (
72c1ce7)
Performance
- container: declare M6E_VERSION next to the user stage (
c0de4fe)
Reverts
- undo local submodule edit (fix belongs in m6e/library) (
b8448fb)
Dependencies
- 9 dependency updates
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:v3.2.0 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:v3.2.0 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:v3.2.0 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:v3.2.0 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpPrebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/v3.2.0/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli:v3.2.0 cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli:v3.2.0 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli:v3.2.0 cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli:v3.2.0Prebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/v3.2.0/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc pf-cliDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.1...v3.2.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
-
3.1.1
StableAll checks were successfulpublished / fetched (push) Successful in 0spublished / schema-fetched (push) Successful in 2spublished / gpg-is-ready (push) Successful in 4spublished / projectfile-is-valid (push) Successful in 5spublished / signing-is-ready (push) Successful in 5spublished / source-is-compliant (push) Successful in 7spublished / source-is-tested (push) Successful in 4spublished / projectfile-is-ok (push) Successful in 5spublished / source-is-secure (push) Successful in 11spublished / source-passes-lint (push) Successful in 45spublished / source-is-ok (push) Successful in 0spublished / documentation-passes-lint (push) Successful in 53spublished / documentation-is-ok (push) Successful in 0spublished / inputs-are-ok (push) Successful in 0spublished / binaries-are-built (arm64, darwin) (push) Successful in 6spublished / binaries-are-built (arm64, linux) (push) Successful in 6spublished / binaries-are-built (amd64, darwin) (push) Successful in 6spublished / binaries-are-built (amd64, linux) (push) Successful in 6spublished / binaries-are-built (riscv64, linux) (push) Successful in 6spublished / gsa (amd64, darwin) (push) Successful in 4spublished / gsa (arm64, linux) (push) Successful in 4spublished / gsa (amd64, linux) (push) Successful in 4spublished / gsa (arm64, darwin) (push) Successful in 4spublished / gsa (riscv64, linux) (push) Successful in 7spublished / binaries-are-ok (push) Successful in 0spublished / binaries-are-signed (push) Successful in 5spublished / binaries-are-torrented (push) Successful in 9spublished / image-is-built (amd64) (push) Successful in 40spublished / secrets-ready (push) Successful in 0spublished / images-are-ok (push) Successful in 0spublished / container-is-ok (push) Successful in 0spublished / container-ready-to-test (push) Successful in 0spublished / image-has-sbom (amd64) (push) Successful in 6spublished / container-is-diagnosed (push) Successful in 0spublished / image-is-secure (amd64) (push) Successful in 8spublished / container-is-verified (amd64) (push) Successful in 1m1spublished / image-is-ready (push) Successful in 0spublished / artifacts-are-ok (push) Successful in 0spublished / ready-to-publish (push) Successful in 0spublished / publish-image (push) Successful in 0spublished / image-is-signed (push) Successful in 0spublished / image-is-attested (kiota) (push) Successful in 17spublished / image-is-attested (dockerhub) (push) Successful in 35spublished / release-is-published (push) Successful in 4spublished / release-notes-are-published (push) Successful in 4spublished / published (push) Successful in 0sreleased this
2026-10-15 03:05:06 +00:00 | 91 commits to dev since this release2 commits, 1 contributor, 1 hour since 3.1.0.
Bug fixes
- ci: sign every binary cell in one job (
2e16bcf) - build: fetch public Go modules through proxy.golang.org (
72c1ce7)
Installation
Container image
Pull the published container image:
Pull from DockerHub — linux/amd64
docker pull damianbuho/projectfile-cli:3.1.1 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:3.1.1 pf-cli'This release also publishes the
3.1and3tags — pull the precision you want to pin.If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:3.1.1 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:3.1.1 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpPrebuilt binary
Download the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/3.1.1/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Image digests
A tag can move; a digest cannot. Pull this exact build:
docker pull docker.io/damianbuho/projectfile-cli@sha256:3b77c923ce35ec8cc5604c918b32353af39c3c361d7e4b61615c711dd072245b docker pull kiota.ch/projectfile/cli@sha256:3b77c923ce35ec8cc5604c918b32353af39c3c361d7e4b61615c711dd072245bPlatform Digest Size linux/amd64 sha256:80428787d96022d513e2a473821a2a37e7b94cae801a20a13bf4f7d7706610bd95.2 MB Sizes are compressed layer bytes as stored in the registry.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli@sha256:3b77c923ce35ec8cc5604c918b32353af39c3c361d7e4b61615c711dd072245b cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli@sha256:3b77c923ce35ec8cc5604c918b32353af39c3c361d7e4b61615c711dd072245b cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli@sha256:3b77c923ce35ec8cc5604c918b32353af39c3c361d7e4b61615c711dd072245b cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli@sha256:3b77c923ce35ec8cc5604c918b32353af39c3c361d7e4b61615c711dd072245bPrebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/3.1.1/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc pf-cliDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.1.0...3.1.1
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- ci: sign every binary cell in one job (
-
3.1.0
StableAll checks were successfulpublished / fetched (push) Successful in 0spublished / schema-fetched (push) Successful in 2spublished / gpg-is-ready (push) Successful in 3spublished / projectfile-is-valid (push) Successful in 3spublished / signing-is-ready (push) Successful in 4spublished / source-is-compliant (push) Successful in 8spublished / source-is-tested (push) Successful in 6spublished / projectfile-is-ok (push) Successful in 6spublished / source-is-secure (push) Successful in 13spublished / documentation-passes-lint (push) Successful in 55spublished / documentation-is-ok (push) Successful in 0spublished / source-passes-lint (push) Successful in 58spublished / source-is-ok (push) Successful in 0spublished / inputs-are-ok (push) Successful in 0spublished / binaries-are-built (arm64, darwin) (push) Successful in 5spublished / binaries-are-built (arm64, linux) (push) Successful in 5spublished / binaries-are-built (riscv64, linux) (push) Successful in 5spublished / binaries-are-built (amd64, linux) (push) Successful in 5spublished / binaries-are-built (amd64, darwin) (push) Successful in 6spublished / gsa (arm64, linux) (push) Successful in 6spublished / gsa (arm64, darwin) (push) Successful in 6spublished / gsa (amd64, linux) (push) Successful in 7spublished / gsa (amd64, darwin) (push) Successful in 7spublished / gsa (riscv64, linux) (push) Successful in 3spublished / binaries-are-ok (push) Successful in 0spublished / binaries-are-signed (arm64, linux) (push) Successful in 5spublished / binaries-are-signed (arm64, darwin) (push) Successful in 5spublished / binaries-are-signed (amd64, linux) (push) Successful in 5spublished / binaries-are-signed (amd64, darwin) (push) Successful in 5spublished / binaries-are-signed (riscv64, linux) (push) Successful in 5spublished / binaries-are-torrented (push) Successful in 16spublished / image-is-built (amd64) (push) Successful in 54spublished / secrets-ready (push) Successful in 0spublished / images-are-ok (push) Successful in 0spublished / container-is-ok (push) Successful in 0spublished / container-ready-to-test (push) Successful in 0spublished / image-has-sbom (amd64) (push) Successful in 9spublished / container-is-diagnosed (push) Successful in 0spublished / image-is-secure (amd64) (push) Successful in 11spublished / container-is-verified (amd64) (push) Successful in 1m50spublished / image-is-ready (push) Successful in 0spublished / artifacts-are-ok (push) Successful in 0spublished / ready-to-publish (push) Successful in 0spublished / publish-image (push) Successful in 0spublished / image-is-signed (push) Successful in 1spublished / image-is-attested (kiota) (push) Successful in 28spublished / image-is-attested (dockerhub) (push) Successful in 42spublished / release-is-published (push) Successful in 4spublished / release-notes-are-published (push) Successful in 4spublished / published (push) Successful in 1sreleased this
2026-10-15 01:21:33 +00:00 | 94 commits to dev since this release9 commits, 1 contributor, 21 hours since 3.0.1.
Features
- validate: embed the fragment schema and check an included file with --fragment (
b7ae0cd)
Bug fixes
- deps: bump projectfile/core to v2.18.1 for retried network fetches (
f0a78e0) - security: suppress CVE-2026-92392 in the Ubuntu cURL (
2c38874) - security: generate the scanner ignore files from the projectfile (
375d124)
Installation
Pull from DockerHub — linux/amd64
alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/projectfile-cli:3.1.0 pf-cli'If the registries above are unreachable, pull from the origin instead:
Pull from Kiota — linux/amd64
docker pull kiota.ch/projectfile/cli:3.1.0 alias pf-cli='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/projectfile/cli:3.1.0 pf-cli'Then run it as if it were installed — the alias runs every example as written against the current directory:
pf-cli --helpDownload the prebuilt binary for your platform from this release:
mkdir -p ~/.local/bin curl --fail --location --output ~/.local/bin/pf-cli https://kiota.ch/projectfile/cli/releases/download/3.1.0/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m) chmod +x ~/.local/bin/pf-cli ~/.local/bin/pf-cli --helpPublished for:
linux/amd64,linux/arm64,linux/riscv64,darwin/amd64,darwin/arm64Usage
pf-cli
$ pf-cli --help pf-cli is the command-line frontend for the projectfile: it reads, writes and validates fields, resolves remote includes, and generates derived artifacts. It embeds the v1 JSON Schema for offline validation and is the canonical tool for editing projectfiles locally and in CI. File and forge sync (bridge, forge, scan): use pf-bridge. Usage: pf-cli [command] Examples: pf-cli init --namespace org.example --name demo pf-cli get identity.name pf-cli set license.spdx MIT pf-cli add keywords rust wasm pf-cli del keywords[0] pf-cli validate pf-cli convert yaml toml pf-cli optimize pf-cli cache status Read: get Read one or more projectfile fields Write: add Append items to a projectfile list del Remove a field, list item, or map entry from projectfile set Write a value into a projectfile field Validate: validate Validate a projectfile against the v1 JSON Schema Maintain: cache Manage pf-cli’s local cache for offline use convert Convert a projectfile between encodings (toml/yaml/json) includes Manage the includes list init Scaffold a new projectfile document optimize Remove local fields that duplicate include values setup Edit your per-user configuration interactively Other: completion Generate the autocompletion script for the specified shell help Help about any command Common flags: -q, --quiet mute info; warnings and errors still print -v, --verbose show each step; also PF_CLI_VERBOSE=1 --offline refuse network; use cache and embedded data Flags: --colors string colour output: auto|always|never; also PF_CLI_NO_COLOR=1 (default "auto") --fail-on string abort includes at error|warning (default "error") -h, --help help for pf-cli --ignore-user-config skip $XDG_CONFIG_HOME/projectfile/cli.* loading --offline refuse network; use cache and embedded data -q, --quiet mute info; warnings and errors still print --sorted write YAML keys in sorted order --timeout duration per-attempt network timeout (default 10s) -v, --verbose show each step; also PF_CLI_VERBOSE=1 -V, --version print the version Documentation: https://github.com/projectfile-org/cli/tree/main/docs Report a bug: https://github.com/projectfile-org/cli/issues Use "pf-cli [command] --help" for more information about a command.Examples and every command’s help are in Usage.
Image digests
A tag can move; a digest cannot. Pull this exact build:
docker pull docker.io/damianbuho/projectfile-cli@sha256:173bce24d3d1807cbc58c505432368d96ec0fa70fddb9753f618f4c454816bcf docker pull kiota.ch/projectfile/cli@sha256:173bce24d3d1807cbc58c505432368d96ec0fa70fddb9753f618f4c454816bcfPlatform Digest Size linux/amd64 sha256:5ab3d86e8981708e19c6094cbd7cbc98287b7a4c3191bef502d831d191ff2dba95.2 MB Sizes are compressed layer bytes as stored in the registry.
Verify
Check that what you downloaded is what this project published.
Container image
The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.
COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/projectfile-cli@sha256:173bce24d3d1807cbc58c505432368d96ec0fa70fddb9753f618f4c454816bcf cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/projectfile/cli@sha256:173bce24d3d1807cbc58c505432368d96ec0fa70fddb9753f618f4c454816bcf cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/projectfile-cli@sha256:173bce24d3d1807cbc58c505432368d96ec0fa70fddb9753f618f4c454816bcf cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/projectfile/cli@sha256:173bce24d3d1807cbc58c505432368d96ec0fa70fddb9753f618f4c454816bcfPrebuilt binary
The signature proves the binary is the one the maintainer’s release key signed.
gpg --keyserver hkps://keys.openpgp.org --recv-keys 8F89CBF7C8D51F8BEC7533C00925F8F79EBD3257 curl --fail --location --output pf-cli.asc https://kiota.ch/projectfile/cli/releases/download/3.1.0/pf-cli-$(uname -s | tr A-Z a-z)-$(uname -m).asc gpg --verify pf-cli.asc pf-cliDownload via BitTorrent
Fetch this release over BitTorrent with a magnet link, or with the attached
.torrentfile:Full changes: https://kiota.ch/projectfile/cli/compare/3.0.1...3.1.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- validate: embed the fragment schema and check an included file with --fragment (