Skip to content
Docs

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_here

Persist 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:

.npmrc
@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-config

Usage

List the templates the CLI ships with:

bunx fusion-config list

Copy a template into the current directory:

bunx fusion-config add foo

The add command accepts a couple of flags:

FlagAliasDefaultDescription
--dest <dir>-d.Directory to copy the template into.
--force-ffalseOverwrite existing files instead of erroring.

For example, drop the foo template into src/, overwriting anything already there:

bunx fusion-config add foo --dest src --force

Companion 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:

package.json
{
  "workspaces": ["docs"],
  "patchedDependencies": { "vocs@2.0.12": "patches/vocs@2.0.12.patch" }
}
bun install
bun --cwd=docs dev

That 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 version

Shared 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.