Home

What is Musi?

Musi is an expression-first programming language with pattern matching, effects, and a small command surface. Learn the language, install it from source, check playground status, and find community links from one site.
  • Expression-first flow with clear data movement.
  • Source-first setup with package and direct command lanes.
  • Learning, setup, playground status, and community each have their own path.

Start with one value, one function, and one final result. This matches Musi's beginner path.

Musi reads top to bottom. Bind values with let, define small functions the same way, then end with the result you want.

Sample
let base := 21;

let twice (x : Int) : Int := x + x;

let answer := twice(base);
answer;
Status
Docs
Book-first
Chapters stay close to runnable examples and current commands.
Install
Source-first
Build lanes use package and direct command paths.
Playground
Not public
Browser execution is tracked openly, with install as the working path.
Primary paths · Choose a path
Learn · Find docs

Search chapters, language guides, effects, types, and command questions.

part / startOpenStartBegin with setup, one file, one binding model, one expression model, then explicit mutation.part / coreOpenCore SyntaxLearn everyday syntax in very small pieces so nothing stacks too early.part / dataOpenDataKeep data-shape learning readable by separating records, sequences, and patterns.part / organizationOpenCode OrganizationGrow from one file to packages without changing the mental model of code flow.
Learn · Why Musi
Expression-first

Read files top to bottom with let, match, and ordinary expressions instead of hidden control machinery.

Effects stay readable

Use effects and handlers without pushing ordinary code into framework ceremony.

Two command lanes

Use musi for package work and music for direct source or artifact work.

Clear public structure

Learn, Install, Playground, and Community each own one public job.

Learn · Parts and ChaptersLearn