Zero-dependency project + template downloader. Based on
giget, with extra vibes and developer-first polish.
π¦ NPM β’ β¨ GitHub β’ π¬ Discord
@reliverse/religet is your one-stop drop-in CLI and library for pulling down project starters, templates, and repos β from GitHub, GitLab, Bitbucket, Sourcehut, or custom template registries.
Think of it like degit, giget, or npx create-* β but:
- π₯ No git required
- π§ Smart caching + offline mode
- π Auth support for private repos
- π οΈ Custom registries and providers
- π« Built for starter kits, generators, internal tooling
- π¦ Perfect for tool authors who ship code templates
β οΈ Heads up!
Some of the things mentioned in this doc aren't implemented yet β they're part of the vision forv1.0.0. Got thoughts? Ideas? Complaints? Drop your feedback in Discord or use GitHub Issues. Your feedback means the world and helps shape where this project goes next. Thank you!
pnpm add -D @reliverse/religetor use directly via CLI:
npx @reliverse/religet gh:reliverse/cli-starternpx religet <template> [target-dir] [...options]# Clone a GitHub repo via shortcut
religet gh:reliverse/resejs-starter
# Clone to a custom folder
religet gh:user/template my-new-project
# Clone subpath from main branch
religet gh:user/template/starters/web
# Clone from a tarball
religet https://api.github.com/repos/unjs/template/tarball/main
# Use a custom registry
religet mylib --registry=https://registry.example.com| Flag | Description |
|---|---|
--force |
Allow writing into existing folder |
--offline |
Skip downloading, use local cache |
--prefer-offline |
Try cache first, fallback to download |
--force-clean |
|
--install |
Auto-install deps (uses nypm) |
--cwd |
Set working dir |
--auth |
Auth token for private repos (or use GIGET_AUTH) |
--registry |
Custom registry URL |
import { downloadTemplate } from "@reliverse/religet";
const { dir, source } = await downloadTemplate("gh:reliverse/cli-starter", {
dir: "./my-app",
force: true,
install: true,
});dir: Destination pathforce: Overwrite existing filesoffline,preferOfflineinstall: Run dependency installation post-downloadauth: Access token (envGIGET_AUTHalso supported)provider: Custom template providersregistry: Template registry (e.g. GitHub JSON-based or custom)
Religet supports a wide range of input formats:
| Format | Example |
|---|---|
| GitHub repo | gh:user/repo |
| GitLab | gitlab:user/repo |
| Bitbucket | bitbucket:user/repo |
| Sourcehut | sourcehut:user/repo |
| HTTP tarball | https://github.com/user/repo/tarball/main |
| Template registry | your-template-name + --registry=... |
import type { TemplateProvider } from "@reliverse/religet";
const rainbow: TemplateProvider = async (input, { auth }) => {
return {
name: "rainbow",
url: `https://rainbow.example/${input}`,
tar: `https://rainbow.example/tarballs/${input}.tar.gz`,
headers: { authorization: auth },
};
};
await downloadTemplate("rainbow:example", {
providers: { rainbow },
});- π¦ Starter kits and boilerplates
- π§
create-*style CLIs - π οΈ Code generators for plugins, templates, engines
- π Internal developer platforms & dev portals
- π€ AI-assisted project bootstrapping
GIGET_AUTH=ghp_xxx religet gh:user/private-templateWorks with CLI and programmatic APIs. Auth is sent via Authorization: Bearer <token>.
gigetβ the incredible base powering Religetdegitβ the OG that started it allcreate-t3-appβ template-first app generatorunjs/nypmβ dependency installer used internally
MIT Β© blefnk (Nazar Kornienko)
Part of the Reliverse ecosystem.