Installation
Kora 0.0.2 is available as a command-line tool, a VS Code extension, a
Homebrew formula, an npm package, and downloadable release archives. Pick one
route below. All routes install the same Kora version when you pin a release.
Quick install: Homebrew
macOS and Linux users can install the CLI from the Kora tap:
brew tap ImAbhishekTomar/tap
brew install imabhishektomar/tap/kora
kora --versionTo update later:
brew update
brew upgrade koraOn Apple Silicon, run Homebrew in ARM mode if your terminal is running under Rosetta:
arch -arm64 brew install imabhishektomar/tap/koraQuick install: npm
The npm package installs the correct release binary for macOS, Linux, or Windows:
npm install -g @abhishektomar/kora-cli
kora --versionFor a project-local install:
npm install --save-dev @abhishektomar/kora-cli
npx kora --versionWhen using pnpm, pnpm may ask you to approve the package install script. This script is required because it downloads the platform-specific Kora binary:
pnpm add -D @abhishektomar/kora-cli
pnpm approve-builds
pnpm rebuild @abhishektomar/kora-cli
pnpm exec kora --versionSelect @abhishektomar/kora-cli in the approval prompt. The warning about
deprecated subdependencies does not come from Kora’s source code.
Install the VS Code extension
Install Kora Language from the VS Code Marketplace .
The extension provides .ko file recognition, syntax highlighting, Kora file
icons, diagnostics, completion, hover information, go-to-definition, a
debugger, and run and test commands. Install the CLI separately using
Homebrew, npm, a release archive, or source so the editor can run and debug
your programs.
After installing both pieces:
- Open a Kora project in VS Code.
- Open a
.kofile. - Use the play button or the command palette command Kora: Run Current File.
- Press F5 to debug the file: set breakpoints in the gutter, then step through with the debug toolbar.
- Set
kora.serverPathif thekoraexecutable is not on yourPATH. The same setting points at the language server and the debug adapter.
Quit and reopen VS Code after installing the extension. VS Code reads an
extension’s contributions once, at startup, so until it restarts the gutter
will refuse breakpoints on .ko files and F5 will offer to find a Kora
extension in the Marketplace. A window reload is not enough.
Run kora | grep "kora dap" to confirm the binary the editor will use can
debug. If it prints nothing, that kora predates the debugger — set
kora.serverPath to an absolute path rather than reordering your PATH.
Download a release archive
Open the Kora releases page
and download the archive for your operating system and CPU. Releases currently
include macOS Intel, macOS Apple Silicon, Linux x64, Linux ARM64, and Windows
x64 builds. Each release includes SHA256SUMS for verification.
For macOS or Linux, the installer script detects your platform and verifies the archive checksum:
curl -fsSL https://raw.githubusercontent.com/ImAbhishekTomar/kora-lang/main/scripts/install.sh | sh
kora --versionPin a particular version or choose a custom installation directory:
curl -fsSL https://raw.githubusercontent.com/ImAbhishekTomar/kora-lang/main/scripts/install.sh | KORA_VERSION=0.0.2 sh
curl -fsSL https://raw.githubusercontent.com/ImAbhishekTomar/kora-lang/main/scripts/install.sh | KORA_INSTALL_DIR="$HOME/.local/bin" shThe default directory is ~/.local/bin. Add it to your PATH if the installer
reports that it is not already there.
Build from source
Install Rust and Cargo, then build the CLI from the repository:
git clone https://github.com/ImAbhishekTomar/kora-lang.git
cd kora-lang
cargo build --release --locked
./target/release/kora --versionRun directly from the source tree while developing Kora:
cargo run -- run examples/00_basics.koVerify your installation
kora --version
kora check examples/00_basics.ko
kora run examples/00_basics.koThe deterministic examples run without an API key. Programs using model calls need the provider configuration described below.
Model setup
The deterministic core works without a model. For analyze, name one in kora.toml — the model’s name exactly as its provider writes it, where the request goes, and which variable holds the key:
[models]
default = { name = "llama3.2:latest", endpoint = "http://localhost:11434", api = "ollama" }
smart = { name = "gpt-4o", api_key_env = "OPENAI_API_KEY" }
cheap = { name = "openrouter/free", endpoint = "https://openrouter.ai/api/v1", api_key_env = "OPENROUTER_API_KEY" }api is the request shape: "openai" (the default, spoken by nearly every hosted provider and gateway) or "ollama". Nothing else about a provider is built into Kora, so OpenAI, OpenRouter, Groq, Together, and a self-hosted vLLM are all configuration.
Export whichever key variable you named. A local server that wants no key needs none: leave api_key_env out and no Authorization header is sent.
First run
./target/debug/kora run examples/00_basics.ko
./target/debug/kora run --replay examples/01_expense_check.koRead Getting started for the short guided path, or open the Language reference when you want the full surface. To read documentation for an older release, use Documentation versions.