harness-cli

May 12, 2026 ยท View on GitHub

harness-cli initializes a repository from the Harness project templates.

Install it from npm:

npm install -g @ifuryst/harness-cli

Run it in a new or existing repository:

harness-cli

The root command runs the same flow as:

harness-cli init

By default the CLI asks for a template language:

  • en: harness-template
  • zh: harness-template-cn

Useful non-interactive examples:

harness-cli ./my-project --language zh
harness-cli init --language en
harness-cli init --language zh --target ./my-project
harness-cli init ./my-project --language zh
harness-cli init --language zh --force
harness-cli init --language en --dry-run

By default the CLI clones the selected template from GitHub. For local template development, point it at a local checkout explicitly:

harness-cli init --language zh --template-root ..
harness-cli init --language zh --source ../harness-template-cn

Existing files are left untouched unless their content is identical. Conflicting files stop the run; pass --force to overwrite them.

When the copied template includes scripts/init-project.sh, the CLI runs it with the target directory name. By default it also initializes the target directory as its own git repository and creates the first Init Commit with a reference back to https://github.com/iFurySt/harness-cli. Pass --git=false to skip git initialization and the initial commit.

Development

go test ./...
go run . --language en --dry-run
npm pack --dry-run