jkunz c38e94bcf3
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
v2.18.1
2026-05-10 14:41:49 +00:00
2024-06-21 19:48:43 +02:00
2026-05-10 14:41:49 +00:00
2026-05-10 14:41:49 +00:00
2024-06-21 19:48:43 +02:00
2024-06-21 19:48:43 +02:00
2024-06-21 19:48:43 +02:00
2026-05-10 14:41:49 +00:00

@git.zone/cli 🚀

@git.zone/cli is the development workflow CLI behind the gitzone and gzone commands. It helps TypeScript-heavy teams keep projects tidy, create semantic source commits, manage local Docker-backed services, scaffold new modules, and release software through explicit, target-based release configuration.

It is opinionated where that saves time: source commits and releases are separate, changelog entries flow through a standard Pending section, project config lives in .smartconfig.json, and release targets make side effects visible before they happen.

Issue Reporting and Security

For reporting bugs, issues, or security vulnerabilities, please visit community.foss.global/. This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a code.foss.global/ account to submit Pull Requests directly.

Install

pnpm add -g @git.zone/cli

After installation, both binaries point to the same CLI:

gitzone --help
gzone --help

The Big Idea

gitzone commit handles source history.

gitzone release handles release transactions.

That split is intentional. A commit should not unexpectedly publish npm packages, push Docker images, or trigger remote release pipelines. A release should clearly show which targets it will publish to.

Quick Start

# Preview project standardization work
gitzone format

# Apply formatting changes
gitzone format --write

# Create a semantic source commit
gitzone commit

# Preview the configured release transaction
gitzone release --plan

# Release pending changelog entries to configured targets
gitzone release

Commands

Command Purpose
commit Analyze changes and create one semantic source commit
release Turn pending changelog entries into a versioned release and publish targets
format Plan or apply project formatting and standardization
config Inspect, update, and migrate .smartconfig.json
services Manage local MongoDB, MinIO, and Elasticsearch containers
tools Manage the global @git.zone toolchain
template Scaffold projects from built-in templates
meta Manage multi-repository workspaces
open Open repository assets like CI pages
docker Run Docker maintenance tasks
deprecate Deprecate npm packages across registries
start Prepare an existing project for local work
helpers Run small helper utilities

Global flags include --help, --json, --plain, --agent, --no-interactive, and --no-check-updates.

Toolchain Management

gitzone tools replaces the former gtools command from @git.zone/tools. It manages globally installed @git.zone development tools through pnpm.

# Check installed @git.zone tools and update outdated packages
gitzone tools update

# Update without prompts
gitzone tools update -y

# Install missing managed @git.zone tools
gitzone tools install

gitzone tools update checks @git.zone/cli first. If the CLI itself needs an update, it updates @git.zone/cli and asks you to rerun the command before updating the rest of the toolchain.

Commit Workflow

gitzone commit creates one semantic source commit. It does not bump versions, create tags, publish packages, or push Docker images.

# Interactive semantic commit
gitzone commit

# Read-only AI recommendation
gitzone commit recommend --json

# Auto-accept safe recommendations
gitzone commit -y

# Auto-accept, test, build, and push
gitzone commit -ytbp

# Show the resolved workflow without mutating anything
gitzone commit --plan

The commit flow:

  1. Analyze the working tree.
  2. Suggest commit type, scope, and message.
  3. Write a human-readable entry into changelog.md under ## Pending.
  4. Stage and create one semantic source commit.
  5. Optionally run formatting, tests, build, and push based on flags or config.

Commit flags:

Flag Meaning
-y, --yes Auto-accept safe recommendations
-t, --test Add test step
-b, --build Add build step
-p, --push Push after the source commit
-f, --format Run gitzone format --write before commit
--plan Show resolved workflow only

-r is intentionally not part of commit anymore. Use gitzone release.

Release Workflow

gitzone release performs the release core once, then publishes to configured targets.

The release core is not configurable plumbing. It always follows the same professional release transaction:

  1. Run configured preflight checks.
  2. Read changelog.md ## Pending entries.
  3. Infer or accept a semver bump.
  4. Update version files and baked commit info.
  5. Move pending changelog entries into the new version section.
  6. Create the local release commit.
  7. Create the local release tag.

Targets decide what happens after that:

Target What it does
git Pushes the release commit and tags, often triggering remote CI release builds
npm Publishes the package to configured npm registries
docker Builds and pushes configured Docker images
# Preview the resolved release plan
gitzone release --plan

# Release to configured targets
gitzone release

# Release only to npm
gitzone release --target npm

# Release only to git and Docker
gitzone release --target git,docker

# Skip package/container publishing and keep only git target
gitzone release --no-publish

# Override inferred semver level
gitzone release --minor

Release flags:

Flag Meaning
-y, --yes Run without interactive confirmation
-t, --test Enable preflight tests
-b, --build Enable preflight build
-p, --push Enable the git target
--target <csv> Use only selected targets, e.g. git,npm
--npm Enable the npm target
--docker Enable the docker target
--no-publish Keep release core and git target only
--no-build Disable preflight build for this run
--major, --minor, --patch Override inferred semver level
--plan Show resolved workflow only

Standard Changelog

The changelog is convention-based and intentionally not configured.

gitzone commit appends entries to:

## Pending

gitzone release moves those pending entries into a dated version section:

## 2026-05-10 - 2.15.0

The standard buckets are Breaking Changes, Features, Fixes, Documentation, and Maintenance.

Configuration

All CLI config lives under @git.zone/cli in .smartconfig.json.

{
  "@git.zone/cli": {
    "schemaVersion": 2,
    "projectType": "npm",
    "commit": {
      "confirmation": "prompt",
      "steps": ["analyze", "test", "build", "changelog", "commit", "push"]
    },
    "release": {
      "confirmation": "prompt",
      "preflight": {
        "requireCleanTree": true,
        "test": false,
        "build": true
      },
      "targets": {
        "git": {
          "enabled": true,
          "remote": "origin",
          "pushBranch": true,
          "pushTags": true
        },
        "npm": {
          "enabled": true,
          "registries": ["https://registry.npmjs.org"],
          "accessLevel": "public",
          "alreadyPublished": "success"
        },
        "docker": {
          "enabled": false,
          "images": []
        }
      }
    }
  }
}

NPM registries belong only here:

@git.zone/cli.release.targets.npm.registries

Useful config commands:

# Show current @git.zone/cli config
gitzone config show --json

# Configure project basics, CLI behavior, and release targets interactively
gitzone config project
gitzone config cli
gitzone config release

# Validate schema, legacy keys, release targets, registries, and npm auth
gitzone config doctor

# Use opencode to repair configuration issues found by doctor
gitzone config fix

# Read the npm release target registries
gitzone config get release.targets.npm.registries

# Add an npm release target registry
gitzone config add https://registry.npmjs.org

# Set npm target access level
gitzone config access public

# Run schema migration to v2
gitzone config migrate 2

Formatting

gitzone format is dry-run by default. That makes it safe to run in any repo.

# Preview changes
gitzone format

# Emit a machine-readable plan
gitzone format plan --json

# Apply changes
gitzone format --write

# Apply without prompt
gitzone format --write --yes

Formatters include cleanup, smartconfig normalization, dependency license checks, package metadata normalization, template updates, .gitignore, TypeScript config, Prettier, README existence checks, and configured copy operations.

Development Services

gitzone services manages local Docker-backed services for development projects.

Supported services:

Service Aliases
MongoDB mongo, mongodb
MinIO minio, s3
Elasticsearch elasticsearch, es
# Start configured services
gitzone services start

# Enable specific services non-interactively
gitzone services set mongodb,minio

# Check status
gitzone services status

# Print MongoDB Compass connection string
gitzone services compass

# Show logs
gitzone services logs mongo 50

# Stop containers but keep data
gitzone services stop

# Remove containers and data
gitzone services clean

Service config is stored in .nogit/env.json. Data is stored below .nogit/, so it stays out of Git.

Templates

Start new projects with built-in scaffolds:

gitzone template npm
gitzone template service
gitzone template website
gitzone template wcc

Templates are rendered through SmartScaf and then can be normalized with gitzone format.

Meta Repositories

Use gitzone meta when one workspace coordinates multiple repositories.

gitzone meta init
gitzone meta add frontend https://example.com/org/frontend.git
gitzone meta update
gitzone meta remove frontend

Other Utilities

# Docker cleanup
gitzone docker prune

# Open GitLab CI settings or pipelines for the current repo
gitzone open ci
gitzone open pipelines

# Deprecate an old npm package interactively
gitzone deprecate

# Prepare a project for local work
gitzone start

# Generate a short unique ID
gitzone helpers shortid

Troubleshooting

Format only previews changes:

gitzone format --write

Release says there is nothing to release:

# Make sure commits have populated the Pending changelog section
gitzone commit

Docker services fail to start:

docker info
gitzone services status
gitzone services reconfigure

Config looks outdated:

gitzone config migrate 2
gitzone config show --json

This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the license file.

Please note: The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.

Trademarks

This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.

Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.

Company Information

Task Venture Capital GmbH Registered at District Court Bremen HRB 35230 HB, Germany

For any legal inquiries or further information, please contact us via email at hello@task.vc.

By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.

S
Description
the main git.zone cli
Readme 2.2 MiB
Languages
TypeScript 98.4%
HTML 1%
Dockerfile 0.4%
JavaScript 0.2%