ossplate 0.4.2

Scaffold and maintain one Rust-core CLI that ships cleanly through Cargo, npm, and PyPI.
ossplate-0.4.2 is not a library.

Ossplate

Scaffold and maintain one Rust-core CLI that ships cleanly through Cargo, npm, and PyPI.

ossplate helps maintainers and agents start and keep a single CLI aligned across Rust, npm, and PyPI.

It gives you a working baseline with:

  • one real core CLI
  • thin JavaScript and Python wrappers
  • release-ready workflows for Cargo, npm, and PyPI
  • a scaffold you can create, adopt, and keep in sync
  • machine-checkable validation, planning, repair, inspection, and verification commands for agent loops

What It Does

Use ossplate when you want a single command-line tool to exist cleanly in multiple ecosystems without maintaining three separate implementations.

It can:

  • create a new scaffolded project
  • initialize an existing directory with the expected structure
  • validate project identity and metadata
  • synchronize the files it owns
  • inspect effective repo contracts
  • plan publish behavior and local preflight state without mutation
  • run the full repo gate as a structured JSON contract

Best Fit

ossplate is optimized for projects with this structure:

  • one Rust-core CLI
  • thin JavaScript and Python wrappers
  • multi-registry distribution through Cargo, npm, and PyPI
  • deterministic ownership, validation, and sync contracts

Installed Usage

If ossplate is already installed, lead with the CLI directly:

ossplate version
ossplate create ../my-new-project \
  --name "My Project" \
  --repository "https://github.com/acme/my-project" \
  --author-name "Acme" \
  --author-email "oss@acme.dev" \
  --rust-crate "my-project" \
  --npm-package "@acme/my-project" \
  --python-package "my-project-py" \
  --command "my-project"

Then check that everything is aligned:

ossplate validate --path ../my-new-project --json
ossplate sync --path ../my-new-project --check --json

Source Checkout Usage

If you are working from a source checkout instead of an installed binary, the equivalent commands are:

  • cargo run --manifest-path core-rs/Cargo.toml -- create <target> to produce a coherent Rust-core baseline
  • cargo run --manifest-path core-rs/Cargo.toml -- validate --json to inspect repo health in machine-readable form
  • cargo run --manifest-path core-rs/Cargo.toml -- inspect --json to read the effective config, owned files, and derived runtime contract
  • cargo run --manifest-path core-rs/Cargo.toml -- sync --check --json or -- sync --plan --json to inspect bounded drift
  • cargo run --manifest-path core-rs/Cargo.toml -- sync --json to apply bounded repairs with a structured result
  • cargo run --manifest-path core-rs/Cargo.toml -- publish --plan --json to inspect local publish preflight without side effects
  • cargo run --manifest-path core-rs/Cargo.toml -- verify --json to run the full repo gate with per-step structured results

When an AI agent is driving repo setup or maintenance from source, that cargo run --manifest-path core-rs/Cargo.toml -- ... form is the direct way to invoke the same CLI surface without installing first.

Quick Start

ossplate create ../my-new-project \
  --name "My Project" \
  --repository "https://github.com/acme/my-project" \
  --author-name "Acme" \
  --author-email "oss@acme.dev" \
  --rust-crate "my-project" \
  --npm-package "@acme/my-project" \
  --python-package "my-project-py" \
  --command "my-project"

Then check that everything is aligned:

ossplate validate --path ../my-new-project --json
ossplate sync --path ../my-new-project --check --json

For a generated-repo-safe operations guide, see docs/agent-operations.md.

Core Commands

ossplate version
ossplate create <target>
ossplate init --path <dir>
ossplate validate --json
ossplate inspect --json
ossplate sync --plan --json
ossplate sync --json
ossplate publish --plan --json
ossplate verify --json

The same command surface is available through the Rust binary and the packaged JS/Python wrappers. From a source checkout, prefix the same subcommands with cargo run --manifest-path core-rs/Cargo.toml --.

Why It’s Useful

  • You keep one source of truth for CLI behavior.
  • You avoid drift between Rust, npm, and PyPI releases.
  • You get a real scaffold instead of a fake demo project.
  • You can publish with modern registry workflows instead of assembling release plumbing from scratch.
  • You give AI agents a deterministic contract for bootstrap, validation, and repair.

Learn More

License

Licensed under the Unlicense.