panproto-cli
The schema command-line tool for schematic version control.
What it does
schema is a git-style CLI for managing schemas and their migrations. You initialize a repository, add and commit schema changes, branch and merge schema histories, and diff any two points in time to see what changed and whether the change breaks existing clients.
Beyond version control, schema includes tools for the full schema lifecycle: validate a schema file against a protocol, check whether a migration preserves all required structure, scaffold minimal test data from a protocol definition, and generate or verify lens specifications. Data operations let you convert records between formats and migrate instances forward or backward through schema history. The parse subcommands expose full-AST parsing of source files (248 languages) or entire project directories into panproto schemas. The git bridge imports an existing git repository's history into panproto and can export back. An expression REPL lets you interactively evaluate panproto expressions against live data.
Quick example
# Initialize a schema repository.
# Parse a TypeScript project into a panproto schema and commit it.
# After changing the project, diff what changed.
# Check if the change breaks any existing clients.
# Generate a lens between two schema versions.
# Import a git repo's full history into panproto.
Command groups
| Command | What it does |
|---|---|
schema init |
Initialize a panproto repository |
schema add |
Stage a schema for the next commit |
schema commit |
Create a commit from staged changes |
schema status |
Show staged changes and branch state |
schema log |
Walk commit history |
schema diff |
Diff two schemas or two commits |
schema branch |
Create, list, or delete branches |
schema merge |
Merge two branches |
schema checkout |
Switch branches or restore a past schema |
schema validate |
Validate a schema against a protocol |
schema check |
Check existence conditions for a migration |
schema scaffold |
Generate minimal test instances from a protocol |
schema normalize |
Simplify a schema by merging equivalent elements |
schema lens generate |
Auto-generate a protolens between two schemas |
schema lens apply |
Apply a lens to an instance |
schema lens verify |
Check get-put and put-get lens laws |
schema lens compose |
Compose two lens files |
schema data convert |
Convert an instance between formats |
schema data migrate |
Migrate an instance forward or backward |
schema parse file |
Parse a single source file to a schema |
schema parse project |
Parse a directory tree to a unified schema |
schema git import |
Import a git repository into panproto-vcs |
schema git export |
Export panproto-vcs commits back to git |
schema expr eval |
Evaluate a panproto expression |
schema expr repl |
Start an interactive expression REPL |
schema theory |
Compile and check GAT theory definitions |
Installation
# Homebrew
# Shell installer
|
# Cargo