Thanks to visit codestin.com
Credit goes to lib.rs

13 releases (8 stable)

2.4.1 Dec 22, 2025
2.4.0 Sep 30, 2025
1.0.1 Sep 27, 2025
0.1.0-alpha.5 Sep 10, 2025
0.1.0-alpha.3 Aug 7, 2025

#1976 in Command line utilities

MIT/Apache

105KB
2K SLoC

create-zk-app (cza)

Crates.io Version NPM Version
GitHub Workflow main Coverage Status

A CLI tool for scaffolding zero-knowledge application projects with modern development tooling and best practices built-in.

What is cza?

cza (create-zk-app) is like create-react-app but for zero-knowledge applications. It provides curated, opinionated project templates that combine ZK frameworks with modern frontend stacks, complete with development tooling and CI/CD setup.

Features

  • 🚀 Quick Project Setup - Generate complete ZK projects in seconds
  • 🎯 Opinionated Templates - Pre-configured with best practices and modern tooling
  • 🔧 Development Ready - Includes mise, git hooks, formatting, linting, and CI/CD
  • 🌐 Full Stack - ZK circuits + modern frontend (Vite + TanStack)
  • 🛠️ Smart Setup - Automatic dependency installation and project initialization

Quick Start

Installation

From Cargo

cargo install cza

From npm/yarn/pnpm/bun

npx create-zk-app
npm install -g create-zk-app
yarn global add create-zk-app
pnpm add -g create-zk-app
bun add -g create-zk-app

Pre-built Binaries

Download pre-built binaries for your platform from the latest release.

Create Your First ZK Project

# List available templates
cza list

# List templates as JSON (for scripting)
cza list --json

# Preview a template structure (dry-run)
cza new noir-vite my-zk-app --dry-run

# Create a new Noir + Vite project
cza new noir-vite my-zk-app

# Pin template to specific git revision (commit SHA, tag, or branch)
cza new noir-vite my-zk-app --revision abc123def

# Navigate and start developing
cd my-zk-app
mise run dev

Available Templates

Templates are hosted at cza-templates.

Template Description ZK Framework Frontend
cairo-vite Cairo Program running in the browser (wasm web worker) with modern frontend stack Cairo Vite + React + TanStack
noir-vite Noir Program running in the browser (wasm web worker) with modern frontend stack Noir Vite + React + TanStack

More templates coming soon: Cairo, Risc0, o1js, and more!

How It Works

cza is built in Rust and uses:

  • cargo-generate for template processing
  • Template repositories hosted on GitHub with Handlebars variable substitution
  • Automatic setup via post-generation scripts that install tools and configure the environment
  • Embedded registry for fast template discovery and listing

Each template is a complete, working project that includes:

  • ZK framework setup (Noir, Cairo, etc.)
  • Modern frontend stack (Vite + TanStack Router/Query/Form)
  • Development tooling (mise, dprint, biome, convco)
  • Git hooks and CI/CD workflows
  • Ready-to-use examples and documentation

Development Stack

Templates come pre-configured with:

Feature Tool Purpose
Build vite Fast frontend build tool
CSS tailwind Utility-first CSS framework
Continuous Integration GitHub Actions Automated testing, formatting, and releases
Conventional Commits convco Semantic versioning and changelog generation
Conventional PR Titles amannn/action-semantic-pull-request Enforce semantic PR titles for squash merges
Deployment GitHub Pages Static site hosting and deployment
Environment, Runtime & Task Management mise Tool and language version management
Formatting dprint Consistent code formatting across languages
Git Hooks hk Automated code quality checks
Import Aliases typescript paths Clean import paths with @ prefixes
Linting biome Fast linting and formatting for JS/TS
Routing @tanstack/react-router Type-safe React routing
Runtime bun Fast JavaScript runtime and package manager
State jotai Atomic state management for React
Typings typescript Static type checking for JavaScript

Configuration

Contributing

Dependencies

~43–68MB
~1M SLoC