Terox is a small, cross-platform CLI for scaffolding new projects from templates. Point it at a GitHub repository or a local directory, answer a few prompts, and Terox renders a ready-to-edit project into the output folder of your choice.
It ships as a single Go binary, so there is no language runtime to install on the target machine.
Install Terox using whichever method matches your platform.
macOS / Linux (Homebrew):
brew install weburz/tap/teroxWindows (Scoop):
scoop bucket add weburz https://github.com/weburz/scoop-bucket
scoop install weburz/teroxDirect binary download:
Grab the archive for your platform from the
latest release,
extract it, and move the terox binary somewhere on your PATH.
From source (Go 1.23+):
go install github.com/weburz/terox@latestHeads up: with
go install, make sure$(go env GOPATH)/bin(usually~/go/bin) is on yourPATHor theteroxcommand will not be found. See the installation docs for the full setup.
Create a starter template to play with:
terox create demo --path ./templatesScaffold from it:
terox scaffold ./templates/demo --output ./my-projectTerox will prompt you for the variables declared in the template's
terox.json, render filenames and file contents, and write the result into
./my-project.
You can also scaffold straight from a public GitHub repository:
terox scaffold weburz/simple-website-template --output ./my-siteFor CI or scripted use, skip the prompts:
terox scaffold ./templates/demo \
--output ./my-project \
--set project_name=portfolio \
--set author="Sagar Kapoor" \
--set license=MIT \
--non-interactiveA Terox template is just a directory (or a GitHub repository) containing an
optional terox.json manifest and any files you want to ship.
my-template/
├── terox.json
└── {{.project_name}}/
├── README.md
└── .gitignore
terox.json declares the variables Terox will prompt for:
{
"name": "Example Template",
"description": "A starter template generated by terox create",
"variables": [
{ "name": "project_name", "prompt": "Project name", "default": "my-project" },
{ "name": "author", "prompt": "Author", "default": "" },
{ "name": "license", "prompt": "License", "default": "MIT",
"choices": ["MIT", "Apache-2.0", "GPL-3.0", "None"] }
]
}Inside template files, reference variables with Go text/template syntax:
# {{.project_name}}
By {{.author}}
Licensed under {{.license}}.Directory and file names are templated the same way, so
{{.project_name}}/ becomes portfolio/ in the rendered output.
Binary files (detected by content sniffing) are copied byte-for-byte without rendering, so images and other non-text assets pass through safely.
If a template has no terox.json, Terox copies the files as-is — handy for
turning any GitHub repo into a quick git clone without the history.
| Command | What it does |
|---|---|
scaffold <ref> |
Render a template into --output. <ref> is owner/repo or a local path. |
create <name> |
Write a starter template directory you can edit and publish. |
list |
List templates cached locally. |
clean |
Delete the local template cache. |
version |
Print the build version. |
Run terox <command> --help for the full flag list on each subcommand.
The project-scaffolding space has several great tools, and Terox is not trying to replace any of them:
- Cookiecutter is the long-standing Python tool with a huge ecosystem of community templates. If you live in the Python world or want a template from its catalog, it remains an excellent choice.
- copier is a modern Python alternative with a feature Terox does not yet have: the ability to update an already-scaffolded project when the upstream template changes.
- hay-kot/scaffold is another Go scaffolder with strong support for in-project component generation and hooks.
- Create React App and similar framework
CLIs (
nuxi init,create-vue,create-next-app) are perfect when you just need the official starter for one specific framework.
Terox's niche is a small, dependency-free Go binary that works equally well with local template folders and GitHub repositories, with a manifest format that stays out of your way. If one of the tools above is already a good fit for your workflow, please keep using it. If you want something lightweight to scaffold internal templates inside your team or organization, Terox might be a comfortable choice.
Terox is young and still evolving. The core scaffolding pipeline works: GitHub and local templates, interactive prompts, variable substitution in file paths and contents, binary-safe copying, and a non-interactive mode for CI.
Planned improvements include authenticated downloads for private repositories, an explicit "copy without rendering" path list, and template update support.
Feedback and contributions are welcome — please open an issue or a pull request.
Terox is released under the MIT License. You are free to use, modify, and distribute it under those terms.
