Osy#the first language built for agents
Agents firstAgentic appsWorkflowsDurable Execution — built inSecurityTestingThe editorThe UI modelOne program

Reference

Types

19 pages.

Every type, in one list

The complete vocabulary of built-in types — the scalars you can store, the collections, the two callable spellings (`Action` and `Func`), and the…

Types

The values your app computes with, and the declarations that name and scope them. Most scalar types are exactly C#'s — int, long, double, string…

Bitwise operators

`&`, `|`, `^`, `~`, `<<` and `>>` work on `int`, with C#'s meanings and C#'s precedence. Unlike `+`, `-`, `*` and `/`, they do not raise on overflow…

Constant expressions

Some places take a value that must be known at compile time — an attribute argument, a config setting, a workflow message. Adjacent string literals…

DateOnly and TimeOnly

`DateOnly` is a calendar date (no time); `TimeOnly` is a time of day (no date) — the C# types. Build them with `new DateOnly(y, m, d)` / `new…

DateTime

A date and time. It is a wall-clock value, not an instant on a timeline, so it is never shifted by anybody's timezone. Reading its parts and doing…

Json

A member that holds a JSON document — an object, an array, or any value. It is stored as real jsonb, and written and read through JsonSerializer, so…

Markdown

A member that holds a markdown document. You read and write it as ordinary text, but it is stored as a list of sections split on its headings, so a…

Optional and required members

A member is required or optional by how you spell its type. A bare value type with a natural zero reads that zero; a bare value-shaped type with no…

TimeSpan (durations)

`TimeSpan` is the duration type — a length of time, as in C#. Build one with the `TimeSpan.FromX` factories or `new TimeSpan(…)`, read…

TimeSpan, DateOnly, TimeOnly

A duration, a bare date, and a bare time of day. Subtracting two DateTimes gives a TimeSpan; adding one back gives a DateTime. All three are exact…

When your name is already the platform's

The platform puts 82 ordinary English words in scope in every app with no `using` — `Slot`, `Group`, `Match`, `Point`, `Month`, `Now`, `Uri`…

char

A single character, written in single quotes. It is what you get from `s[0]` and from iterating a string, and it is the argument the `char.*`…

decimal

Exact base-10 arithmetic, for money and anything else where a fraction of a cent matters. It behaves identically whether your code runs on the server…

long

A 64-bit whole number, exact to its full range — ids, sequence numbers, row versions, byte offsets. It holds the same value whether your code runs on…

namespace

Declares the namespace a file's types belong to, written once at the top of the file. It is optional — a file without one puts its types in the…

string literals — ordinary, verbatim and raw

Three ways to write a string, all of them C#'s. The ordinary form processes escapes. The verbatim form (`@"…"`) processes none and may span lines…

type visibility (public / internal)

A top-level type carries a public or internal visibility that decides whether code outside its namespace can name it. The default depends on what you…

use

Declares a capability your app depends on, written inside the `app { }` manifest block. It provisions the capability (its tables and types become…