culebra

culebra 0.8.0

Programming language with a bytecode VM, JIT, and AOT compiler

  • By Yuji Hirose
  • Open Source
  • Portable
  • Updated Oct 26, 2026
Download for Windows

About culebra

Programming language with a bytecode VM, JIT, and AOT compiler

What's new in 0.8.0

Highlights
- Audio: a namespace of its own for sound, with or without a window. Tones, samples, streamed music and Audio.PCM (samples a script computes), Audio.Graph (native parts, worked out as they play), Audio.Capture (the microphone), and functions that measure a sound: Audio.decode, spectrum, stft/istft, resample, pitch, harmonics, loudness, integrated_loudness.
- Kauai, a language for writing music as a band plays it: a lead sheet of chords and melody, and grooves written against the chord. culebra play song.kau plays one, --wav writes it to a file, --from/--to render a part, --watch plays it again whenever a file is saved. Instruments made from recordings (a soprano and an alto saxophone) play phrase by phrase from real notes, with the tools to make more.
- LLM: a client for large language models in the standard library (LLM.ask, a conversation that keeps its history and runs the tools the model asks for, and a request sent as it is), and Http reads Server-Sent Events.
- Isolates send more: a @value or @derive instance, a class, an enum's constructor and a bound method now cross an isolate boundary, and a child's throw that cannot cross back fails the join with an error that says so.
- Dir: one trait over the places files come from. Dir.disk, Dir.memory, Dir.zip (read ZIP archives; Compress.zip writes them) and Dir.embedded; Http serves any Dir.
- XML namespace and Encoding.utf16; String.pack/String.unpack for numeric arrays and @packable records.
Changes
Breaking
- Embed.dir(name) is now Dir.embedded(name), a Dir like the others; the Embed namespace is gone. exists(""), exists(".") and exists("sub") are true for a directory that holds a file.
- Sound moved out of Canvas into Audio: Canvas.tone, Canvas.Sound, Canvas.music and the rest are now Audio.tone, Audio.Sound and Audio.music, and play with no window. Canvas forwards none of them.
- Time.parse is strict: the whole string must match, with one date, and Time.from_parts has defaults. UTC is now computed directly from the calendar in both directions.
Language / interpreter
- Names and scopes: a read that nothing visible declares is a NameError at load; if, cond and ?: arms are scopes of their own; a declaration or a defer takes no trailing if/unless; fn is declared nowhere, however a binding spells it; a typed static field is a static field. …

Full release notes »

Technical details

PublisherYuji Hirose
Version0.8.0
Release date2026-10-26
LicenseMIT
Installer typezip
Architecturex64
Package IDyhirose.culebra

Install culebra from the command line

Install with Windows Package Manager
winget install --id=yhirose.culebra -e
Update to the latest version
winget upgrade --id=yhirose.culebra -e
Uninstall
winget uninstall --id=yhirose.culebra -e

bytecode-vmjit-compilationlanguagellvmprogramming-languages

culebra version history

0.4.0

Frequently asked questions

Is culebra free?

Yes. culebra is free and open-source software released under the MIT license.

What is the latest version of culebra?

The latest version is 0.8.0, released on Oct 26, 2026.

Is it safe to download culebra?

The download button links to the official installer published on github.com, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 9c04d2367daf0e737c96fc67f723e1ae8a2e2a45c2bd806533a72f32885755e5.

Which Windows versions does culebra support?

culebra runs on Windows and is available for 64-bit (x64) systems.

How do I uninstall culebra?

Open Settings › Apps › Installed apps, find culebra and select Uninstall. From the command line, run winget uninstall --id=yhirose.culebra -e.

Is there a portable version of culebra?

Yes. culebra is available as a portable ZIP archive (culebra-windows-x64.zip, 64-bit (x64)) that runs without installation. Copy it to any folder or USB drive and run it from there.