fusion-config
Shared configuration and starter templates for the Fusion Stack, distributed as the
@tikab-interactive/fusion-config CLI.
Pull a ready-made template into any project with a single command.
Setup
@tikab-interactive/fusion-config is published to GitHub Packages, which is a private,
authenticated registry. Before you can install it you need to point the @tikab-interactive
scope at GitHub Packages and provide a token.
1. Create a GitHub token
Generate a personal access token with the
read:packages scope, then expose it to your shell as NPM_TOKEN:
export NPM_TOKEN=ghp_your_token_herePersist it in your shell profile (~/.zshrc, ~/.bashrc) or, for CI, add it as a secret — so
it's available every time you install.
2. Create an .npmrc
In the root of the project you want to install into, create an .npmrc file:
@tikab-interactive:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}- The first line routes every
@tikab-interactive/*package to GitHub Packages. - The second line authenticates the request.
${NPM_TOKEN}is expanded from your environment at install time, so the token itself is never committed to the repo.
3. Install
bun add -D @tikab-interactive/fusion-configUsage
List the templates the CLI ships with:
bunx fusion-config listCopy a template into the current directory:
bunx fusion-config add fooThe add command accepts a couple of flags:
| Flag | Alias | Default | Description |
|---|---|---|---|
--dest <dir> | -d | . | Directory to copy the template into. |
--force | -f | false | Overwrite existing files instead of erroring. |
For example, drop the foo template into src/, overwriting anything already there:
bunx fusion-config add foo --dest src --forceCompanion folders
Some templates need more than one folder to work. The docs template is a
Vocs documentation site that depends on a patched build of vocs, so it
ships with a patches/ folder that has to live at your project root, next to package.json.
Adding the template pulls both folders in at once:
bunx fusion-config add docs✓ Copied "docs" → /your/project/docs
✓ Copied "patches" → /your/project/patches
Run it from your project root — the patch is resolved relative to the root package.json. A
companion like patches is never added on its own, so it doesn't show up in list; it only
comes along with docs.
Copying the folders is all the CLI does. Finish wiring the docs into your root package.json,
then install and start the site:
{
"workspaces": ["docs"],
"patchedDependencies": { "vocs@2.0.12": "patches/vocs@2.0.12.patch" }
}bun install
bun --cwd=docs devThat same package.json snippet is printed right after the copy, so there's nothing to memorize.
Help text is generated from the command definitions, so it is always current — and misspelled commands or flags get a "Did you mean …?" suggestion:
bunx fusion-config --help # all commands, plus available templates
bunx fusion-config add --help # arguments, flags, and defaults for one command
bunx fusion-config --version # installed versionShared configs
The package also ships extendable TypeScript, Oxlint, and Oxfmt configs, so every project type-checks, lints, and formats the same way without copying settings around — see Shared configs.