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

Reference / Local

Launching the page you're on

F5 (with breakpoints) · Ctrl+F5 (without) · Osy#: Launch Page at Cursor

Press F5 in a page file and your app opens at that page, not at the home route, stopping at your breakpoints. Ctrl+F5 does the same without the debugger. The page is the one your cursor is inside.

stablelocaleditorauthoring

Summary#

Press F5 while editing a page and your app opens at that page, stopping at any breakpoint you have set. The platform starts if it isn't running, your current source is compiled into the app, and the browser lands on the page whose component your cursor is inside — so the loop from "editing this screen" to "looking at this screen" is one key. Ctrl+F5 is the same launch without the debugger.

Signature#

F5                              # start debugging: breakpoints armed, then the page opens
Ctrl+F5                         # start without debugging: just open the page
Osy#: Launch Page at Cursor     # the Ctrl+F5 gesture from the command palette

Description#

Neither key needs setup: with the editor extension installed (Installing the editor extension) they work in a fresh project with no launch configuration at all. Both run the same launch as Launching your app — starting the local platform if needed, compiling what is on disk — and then open the route of the page you are looking at.

F5 arms your breakpoints first. It waits for them to register before opening the page, so the page opens already stopped at one rather than racing past it. Ctrl+F5 skips all of that and just opens the page.

The page is the one your cursor is inside, not the first in the file. A file often declares several pages, and a cursor is the only thing that says which one you mean.

Not in a page → the home route, and nothing is asked. Editing an entity, a function, a test, or a presentational component is the ordinary case, and F5 there simply opens the app at /.

A page whose route has {…} in it can't be opened as written, so F5 says which parts it needs — /lists/{id} needs id — and offers to open the home route instead, or to take the values from you. Cancelling cancels; it does not quietly open something else.

The cursor is read the moment you press the key, so clicking into another file while the compile runs does not change where you land.

Examples#

# cursor inside a component declaring [Page("/archived")]
F5       →  breakpoints armed, then http://your-app.localhost:8168/archived
Ctrl+F5  →  http://your-app.localhost:8168/archived

# cursor inside a component declaring [Page("/lists/{id}")] — either key asks
"/lists/{id} needs `id` — it can't be opened as written"
   → Enter values…  ·  Open the root route

# cursor in model/entities.osy — neither key asks anything
http://your-app.localhost:8168/

See also#

Launching your app — the same launch from the command line, and its --print-url form.

Installing the editor extension — installing the extension F5 comes from.

Running a local platform — the local platform your app is served by.

Related

Launching your app

Opens your app in a browser, running on the local platform. It compiles the current source first, so what opens…

Installing the editor extension

Installs the Osy# editor extension that ships with the CLI into VS Code (or a compatible editor). The extension carries…

Running a local platform

Runs a full platform on your own machine — its own database, no account, no cloud, reachable only from your computer…