Getting started
From an empty folder to a running application.
Build with the AI agent you already use. Run locally without an account. Put the same application in production when you’re ready.
The whole path
See it before you install it.
This is the entire path from an empty folder to a running application.
“Build a task tracker with tasks, owners, statuses and due dates.”Your agent writes the data model, the pages and the tests — then checks its own work with the toolchain before handing it back.
Your application is running on your machine. No cloud account, no database to set up, no connection string.
Built from an empty folder in 11 minutes.
One prompt. The same Osy# tooling and documentation you get when you install it.
The application shown here is the unmodified result of the recorded session.
The evidence
Don’t take any of it on faith.
The application above, the session that built it, and every file it left behind — all from the same run, on this machine, with the toolchain you install.
One session, start to finish.
An empty folder, one prompt, and the agent working with the same compiler, linter, test runner and
documentation that osy installs on your machine.
| Built | — |
|---|---|
| From | An empty directory and osy init hello --agent claude |
| Instruction | One prompt, given once — see Prompt |
| Agent | Claude Code v2.1.278 · Opus 5 (1M context) |
| Osy# | 0.9.0 (11662a0c), built 2026-09-20 |
| Produced | — |
| Verdict | — |
The whole instruction.
This is everything the agent was told. There was no follow-up, no correction and no second prompt.
“Build a task tracker with tasks, owners, statuses and due dates.”
What it knew about Osy# it read from the project osy init had just written — the
CLAUDE.md brief — and from asking the toolchain: osy docs,
osy kit, osy validate. You get the same files and the same commands.
Everything the agent wrote.
Every file the agent created or changed in the recorded session, exactly as it left them. Nothing has
been cleaned up, reformatted or rewritten for the demo. It also deleted the three sample files
osy init had written, and left five scaffold files untouched; those are not listed here.
- Loading…
Choose a file.
Open model/pages/board.osy: the overdue badge is worked out
from the due date every time a row renders, so it is computed behaviour and not stored demo data. The
agent wrote down why, in its own words.
// OVERDUE IS DERIVED, never stored — a stored flag is wrong the moment midnight passes.
What the toolchain said about it.
osy check runs validation, the production lint and the agent’s own tests, and gives
one verdict. This is the last thing in the recording.
The whole build. Nothing cut out.
Watch the agent create the application, run the compiler, respond to its feedback, fix what it finds and leave behind the application shown above.
11m 01s. It runs at twice speed with the agent’s nine thinking pauses
collapsed, so the clock counts recorded seconds and the whole thing is over in under six minutes. Nothing the agent did is cut; the only thing removed is the stretch where the recording
rig sat on a dead screen after it had finished.Ready to try it? Start with an empty folder.
-
Apply for the beta
The toolchain goes out to the people in the beta first. Tell us what you want to build and we will send you everything you need to start: the download, and how to use it with your agent.
-
Give your agent a project it understands
This is the step that makes the rest work.
osy initwrites a minimum working app and the brief your agent reads —CLAUDE.mdfor Claude Code, orAGENTS.mdwith--agent agent. The agent does not have to guess the language: the rules, the vocabulary and the commands that answer its questions are already in the repository.osy init --agent claude✓ CLAUDE.md✓ .claude/settings.local.json✓ osyrin.json✓ .vscode/launch.json✓ .vscode/extensions.json✓ app.osy✓ model/theme.osy✓ model/greeting.osy✓ model/pages/home.osy✓ tests/hello.test.osy✓ icons/sparkle.svgThat is the whole application: a function, a page, a theme, an icon and a test — and no entity at all, because nothing is stored yet. No
package.json, no migrations folder, no API layer, no framework configuration — because nothing downstream of your model is yours to write.Or start from a starter instead of the minimum: sign-in and roles already wired, and an empty page for each area for your agent to fill in —
members,booking,shoporsite.osy init --starter members --agent claudeComplete applications to read and take apart are on the samples page: Kanban · Chat room · File manager · Approvals · Ember.
-
Let your agent build it
Describe what you want. Your agent writes Osy# — one language for the data, rules, security, workflows and screens. The local toolchain gives it the reference, validation and answers it needs as it works.
What your agent can ask
osy validate# Is this code legal? parse, resolve and emit — no server, no databaseosy kit Card# What is the exact signature of this control?osy docs "hash a password"# How do I use this API?osy explain# Who can read and write this data?That is the difference between an agent producing plausible code and an agent producing code the compiler has already agreed with.
-
Know it’s ready
osy checkruns validation, the production lint and your tests, and gives one verdict:osy check✓ validate✓ lint — 1 SHOULD, 1 CONSIDER✓ test — 2 passed✓ check passedYou get more than pass or fail: it names what is weak and exactly how to fix it. Here, on the app you just scaffolded, it spots a page that no test ever opens —
Home — 'Home' is a page at '/', and no test ever opens it — so nothing proves it renders at all.fix: Add a
[Test]that doesUi.Visit("/")and asserts something the page is FOR.Your agent reads that and fixes it. That is the point of putting the maturity rules in the toolchain instead of in a style guide nobody opens.
See the full output
osy check✓ validate✓ lint — 1 SHOULD, 1 CONSIDERSHOULD (1)• Home — 'Home' is a page at '/', and no test ever opens it — sonothing proves it renders at all. A page that throws on its firstpaint, or one whose query was never wired, looks exactly like apage nobody wrote a test for.model/pages/home.osy:16:1testing-page-never-driven · fix: Add a `[Test]` that does`Ui.Visit("/")` and asserts something the page is FOR.CONSIDER (1)• Home — the routed page 'Home' declares no title — no `[Title("…")]`and no `meta { title = … }`. A screen reader announces the page byits title on navigation … without one the page is a nameless taband an accessibility gap.model/pages/home.osy:19:11ui-page-no-title · fix: name it — `[Title("…")]`✓ test — 2 passed✓ check passed — validate, lint and test agree, and lint's 2 advisoryfinding(s) above are open. -
Run the real application locally
osy launchThat’s the application. Real PostgreSQL, real runtime, real security enforcement — all on your machine. There is no local prototype that gets rebuilt for production.
Change a file and run it again. When something goes wrong,
osy inspectshows what actually happened when the code ran, andosy logs --tailfollows client and server lines under one correlation id. -
Put it in production
The application you have been running locally is the application that goes to Osyrin Cloud. There is no container, database, deployment pipeline or infrastructure project to create.
osyrin loginosyrin app createosyrin app compileosyrin app launchThat is it — we operate everything underneath it: the running application, the backups, the upgrades and the infrastructure. Running workflows continue on the version that started them while the next version rolls out, and you can see which versions are still in flight.
Build something.
Local development is free and needs no account.