v0.22.0—Bounded nullability checks and practical .NET migration guidance.See what's new

Documentation

How It Works

Project instructions and syntax references guide source generation. The compiler reports diagnostics; the agent or developer revises the source and runs it again. You can use this workflow without an AI account.

Reader question: How do I make, check, and revise a small Calor change?

Run one change

Install the .NET 10 SDK and Calor. Check that calor --version works. These commands assume a terminal and an empty directory, not an existing application's source folder.

Bash
mkdir CalorWorkflow
cd CalorWorkflow

Save this complete program as UTF-8 Program.calr. It uses the same module, entry point, and console effect as the tested Hello World example.

Calor
§M{m001:HelloApp}
  §F{f001:Main:pub} () -> void
    §E{cw}
    §P "Hello from Calor!"

Compile it to inspect the generated C#, then run the Calor source:

Bash
calor --input Program.calr --output Program.g.cs
calor run Program.calr

Compilation creates Program.g.cs; the run command prints:

Plain Text
Hello from Calor!

Change the string to "Hello again!" and repeat both commands. The program now prints Hello again!. No project template, agent, or calor init is required. calor run builds its own managed workspace; the generated C# here is for inspection, not an automatically updated project input.

If a command fails, read the first diagnostic's file, location, and message. Check that the source uses two-space indentation and that §E{cw} declares the console output. Fix the source rather than editing generated C#, then rerun. A missing tool or SDK is an installation problem, not a source diagnostic. See compile options for diagnostic output and project integration when you want MSBuild to regenerate C# automatically.

Add an agent, if useful

Initialize the integration for your chosen client in a project. Calor writes project instructions describing file conventions and syntax, plus references the agent can consult for constructs it needs. These guide generation; they do not guarantee compliance or successful repair.

Client setupConfiguration and boundary
Claude Codecalor init --ai claude installs instructions, references, and configured write-validation hooks.
Gemini CLIcalor init --ai gemini configures BeforeTool validation in supported hook-enabled clients.
Codex CLIcalor init --ai codex installs project hooks. Review and trust them with /hooks; coverage is limited to supported tool paths.
GitHub Copilotcalor init --ai github installs guidance and MCP configuration; check that page for client-specific setup.

Hooks can reject covered file writes, such as attempts to create C# source where the project requires Calor. They are not a filesystem sandbox: configuration, client support, and the tool used determine coverage. Hook feedback does not guarantee a correct retry.

Ask for one small change, compile it, inspect diagnostics and generated code, and run the behavior tests. Repeat only after understanding the failure. Supported MCP clients can also request compiler diagnostics through calor_check; that does not replace executing the application tests.

Know what a successful check establishes

A successful compilation is not proof of every behavior, complete effect coverage, or production safety. Contract runtime modes and optional static verification have different boundaries; use the verification guarantees as the canonical reference. The evidence status separates implemented behavior from historical measurements and deferred studies. The historical task runner did not test the full feedback loop; its scores are not a model-wide reliability result. Neither a hook nor a passing example establishes an agent-productivity advantage.