Get running in five commands

Build IronKernel, run a real program, then package it. Scripts, packages, and the REPL all start with the standard library loaded.

1. Install

Choose the .NET SDK for development or a self-contained release for immediate use.

Build from source · .NET 10 SDK

git clone https://github.com/ironkernel-lang/IronKernel
cd IronKernel
dotnet build
dotnet test

Release archive

tar -xzf ironkernel-linux-x64.tar.gz
cd ironkernel-linux-x64
./IronKernel --version

Release archives include kernel.scm and promises.scm. Keep them beside the executable.

2. Start the REPL

dotnet run --project IronKernel
# Release binary:
./IronKernel

Enter (+ 20 22) and type quit to leave. The interactive line editor needs a real terminal; use script mode in automation.

3. Run a script

dotnet run --project IronKernel -- Examples/hello.scm
dotnet run --project IronKernel -- run Examples/hello.scm one two
Hello,world!

Arguments are available as the Kernel list args. Script paths are resolved from your current directory; standard-library files are found there or beside the runtime.

4. Validate and package

dotnet run --project IronKernel -- compile Examples/hello.scm -o hello.ikc
dotnet run --project IronKernel -- run hello.ikc

An .ikc file is an IronKernel source package, not a CLR assembly. Packaging validates and compiles the source without executing it; execution happens only when you run the package.

5. Read errors at the source

Diagnostics identify the file and range, then underline the failing form.

demo.scm:2:1: Getting an unbound variable: 'missing'
(missing 42)
^^^^^^^^^^^^

Startup, script, compile, and package failures go to stderr and return a non-zero exit code, making the CLI suitable for build tools and editor integrations.

6. Choose host authority

Capability profiles decide which host operations enter the root environment. minimal has no host access, safe exposes reviewed generated CLR wrappers, and unrestricted preserves raw reflection and I/O for compatibility.

dotnet run --project IronKernel -- \
  --profile safe Examples/safe-clr.scm

Safe bindings make direct typed calls—such as Console.write-line and String.concat—generated from a checked manifest. Copying an unrestricted interop value into a safe environment does not copy its authority.

7. Explore in VS Code

The repository includes an extension with syntax highlighting, snippets, source diagnostics, run and package commands, and a local playground powered by the real IronKernel CLI.

cd editors/vscode
npm install
npm run package
# Install the generated VSIX from VS Code

Playground execution requires a trusted workspace because IronKernel can invoke .NET APIs. Extension setup and settings →

Where next?