Skip to content

๐Ÿš€ Quick Start

๐Ÿ“ฆ Install

curl -fsSL https://raw.githubusercontent.com/pytgaen/fimod/main/install.sh | sh

Downloads the latest pre-built binary for your platform (Linux x86_64/aarch64, macOS ARM). The script installs the binary then prompts you to run fimod registry setup to configure the official mold catalog.

Options (environment variables):

Variable Default Description
FIMOD_VARIANT (full) slim to exclude HTTP input and remote mold loading
FIMOD_INSTALL /usr/local/bin Install directory (falls back to ~/.local/bin if not writable)
FIMOD_VERSION latest Pin a specific version (e.g. v0.2.1)
# Install the slim variant to a custom directory
FIMOD_VARIANT=slim FIMOD_INSTALL=~/.local/bin curl -fsSL https://raw.githubusercontent.com/pytgaen/fimod/main/install.sh | sh

Option 1 โ€” via ubi (no script, antivirus-friendly)

ubi is a universal binary installer available on winget (pre-installed on Windows 10/11):

# ๐Ÿ“ฆ 1. Install ubi (one-time, uses winget which is built into Windows)
winget install houseabsolute.ubi

# ๐Ÿ”„ Then restart PowerShell so ubi is found in PATH

# โฌ‡๏ธ 2. Install fimod (classic โ€” includes HTTP support)
ubi --project pytgaen/fimod --matching "fimod-v" --in "$env:USERPROFILE\.local\bin"

# Or slim variant (no HTTP support, smaller binary)
# ubi --project pytgaen/fimod --matching "fimod-slim-v" --in "$env:USERPROFILE\.local\bin"

# ๐Ÿ›ค๏ธ 3. Add to PATH (if not already present)
$BinDir = "$env:USERPROFILE\.local\bin"
$UserPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
if ($UserPath -notlike "*$BinDir*") {
    [Environment]::SetEnvironmentVariable('PATH', "$BinDir;$UserPath", 'User')
    $env:PATH = "$BinDir;$env:PATH"
}

# ๐Ÿ—‚๏ธ 4. Set up the official mold catalog
fimod registry setup

Option 2 โ€” PowerShell script (execution policy / antivirus may block)

โš ๏ธ If your antivirus blocks this script, use Option 1 (ubi) instead โ€” it downloads a signed binary directly from GitHub Releases with no script execution.

Download first, then run:

Invoke-RestMethod https://raw.githubusercontent.com/pytgaen/fimod/main/install.ps1 -OutFile "$env:TEMP\fimod-install.ps1"
& "$env:TEMP\fimod-install.ps1"

Same env var options: $env:FIMOD_VARIANT ยท $env:FIMOD_INSTALL ยท $env:FIMOD_VERSION

The script checks whether the install directory is in your PATH. If not, it displays the commands to add it โ€” copy and run them to make fimod available in new terminals.

cargo install --git https://github.com/pytgaen/fimod
git clone https://github.com/pytgaen/fimod && cd fimod
cargo build --release
# binary at target/release/fimod

Check your install

fimod --version

๐ŸŽฏ First Try (Hello World)

Let's test fimod with a simple inline expression. Create a sample JSON file or pipe it in:

echo '[{"name": "Alice"}, {"name": "Bob"}]' | fimod s -e 'len(data)'
# Output: 2

๏ฟฝ๏ธ Next steps