FusionFusion

Getting Started

Install Fusion Tool and create a project

Installation

Choose your operating system:

curl -fsSL https://raw.githubusercontent.com/cipherunits/fusion-tool/main/scripts/install.sh | bash

On Windows, the installer places fusion.exe under %LOCALAPPDATA%\Programs\fusion and updates your user PATH. Open a new terminal afterward, then verify:

fusion --help

You can also install from source with Rust:

git clone https://github.com/cipherunits/fusion-tool.git
cd fusion-tool && cargo install --path .

Check the version

fusion --version

Example output:

fusion 1.0.9

Create a project

Interactive

fusion init

Or create into a directory:

fusion init my-app

You will be prompted for:

  1. Language — Python, TypeScript, or C# (asp-core / csharp)
  2. Project name
  3. Project description

Non-interactive

fusion init --lang python --name fusion-test --description "A Fusion Framework project"
ArgumentDescription
[DIRECTORY]Target folder (created if missing; defaults to the current directory)
--langpython, typescript, csharp, or asp-core (C# aliases)
--nameProject name
--descriptionProject description

Options you omit are still asked interactively.

Examples:

fusion init --lang python --name my-app
fusion init ./apps/demo --lang python --name demo

Generated layout

For a Python project, fusion init creates a small starter app — including a sample products module:

├── core/
│   └── settings.py
├── src/
│   └── modules/
│       └── products/
│           └── products.py
├── main.py
├── fusion-framework.toml
├── fusion.dev.json
├── fusion.prod.json
├── fusion.stage.json
└── .gitignore
  • main.py — entrypoint: imports your modules (so @route classes register), wires optional MIDDLEWARE, builds FusionApp from settings, then listens
  • src/modules/products/products.py — sample API module where you can also set per-route Swagger metadata (tags, desc, version, …)
  • core/settings.py — loads the config block from fusion.<env>.json (FUSION_ENV, default dev)

TypeScript projects use the same layout with main.ts, core/settings.ts, and a sample module under src/modules/…. C# (csharp / asp-core) scaffolds a .NET-style entrypoint and modules with [Route] instead of @route.

Run the project

Install the framework, then start the default run command in the dev environment:

pip install fusion-framework
fusion command run:dev

With the default fusion.dev.json (host 127.0.0.1, port 8080, Swagger enabled):

Swagger / OpenAPI is generated automatically from your @route modules. Open the Swagger UI to try endpoints without writing a separate client.

Next: Commands & environments for custom envs, commands, and global Swagger config.

On this page