Things you might not know about leo-web

179 views
Skip to first unread message

Félix

unread,
Mar 26, 2026, 1:34:05 AMMar 26
to leo-editor
I’ve been continuing to refine **leo-web**, the browser-based version of Leo. While working on the latest updates, I realized there are already quite a few useful features that aren’t immediately obvious.

So, although I'm still working on features like abbreviations and the nav and undo panes, I thought I'd give you a rundown of what it can do that you might not know about :)

🖱️ Resize everything at once

You can drag the intersection point of the pane resizers to resize all panes simultaneously.

📱 Install it like a real app

leo-web includes a web app manifest, which means you can install it as a standalone app on desktop (Chrome, Edge, etc.) or mobile devices with the 'install button' at the end of the adress bar.

⚙️ UI & behavior settings built-in

The Settings pane lets you tweak things like the visibility of UI components and the behavior for detecting external file changes.

This makes it easy for new users to tweak those details without using myLeoSettings.leo.

📜 Run scripts (JavaScript / TypeScript)

leo-web supports **Leo scripts written in JavaScript or TypeScript** for browser-native scripting, easy experimentation, and direct access to the JS ecosystem.

🔍 “Go Anywhere” navigation (Ctrl+P)

There’s a **Ctrl+P “go-anywhere” command**, inspired by editors like Sublime Text and VS Code that lets you jump quickly across nodes by lazy-matching what you type to existing headlines.

⌨️ Familiar command palette shortcuts

The Alt+X command palette is also accessible via Ctrl + Shift + P

So if you’re coming from other editors, your muscle memory already works here.

🌌 Quick “zen mode”
  • Shift + F11 → toggle off the top menu
  • F11 → fullscreen
Combined, they give you a clean, focused editing environment in seconds.

If you do give it a spin, I’d be really interested to hear:
  • what feels great
  • what feels missing
  • and what breaks 🙂
Feedback at this stage is incredibly valuable, so thanks for checking it out!

You can open it directly here: https://boltex.github.io/leo-web/

Félix

Rob

unread,
Mar 26, 2026, 9:43:27 AMMar 26
to leo-editor
Really like it so far!

I'm using the installed web app and curious if updates will happen automatically or if I need to manually update?

FYI, I'll post bugs/issues on GitHub.

Rob...

Thomas Passin

unread,
Mar 26, 2026, 2:06:41 PMMar 26
to leo-editor
It opens and looks good in Vivaldi, a Chrome-based browser. In a Mozilla-based browser, the browser doesn't have permission to open files in the local file system.

Mike Hodson

unread,
Mar 26, 2026, 3:07:39 PMMar 26
to leo-e...@googlegroups.com


On Thu, Mar 26, 2026, 12:06 Thomas Passin <tbp1...@gmail.com> wrote:
It opens and looks good in Vivaldi, a Chrome-based browser. In a Mozilla-based browser, the browser doesn't have permission to open files in the local file system.

I am curious, which operating system and method of installation have you chosen to run the mozilla-based browser? 

For example, on Ubuntu or any other distribution that uses snaps [which is really any if you install it yourself] utilizing even APT to install Firefox will cause it to pull a snap image and snaps are by default unable to read outside of their sandbox.

Mike

Thomas Passin

unread,
Mar 26, 2026, 3:24:02 PMMar 26
to leo-editor
I used Zen on both Windows and Linux/endeavourOS. I believe the latter uses flatpak. I just used the system Add Programs installer. When the browser tries to load web-Leo, a dialog gets put up that says that local file system is not available. There is a link to a Moz page that says that local file access is experimental and limited to certain contexts. It appears to be a Mozilla thing, not a container matter.  Vivaldi on EndeavourOS is able to open files in the file system.

Félix

unread,
Mar 26, 2026, 3:28:05 PMMar 26
to leo-editor
btw firefox does not support filesystem API either way - so until they decide to support it, no use trying it with firefox :)

Jacob Peck

unread,
Mar 26, 2026, 3:38:35 PMMar 26
to leo-e...@googlegroups.com, leo-editor
It appears there’s an extension to add the Filesystem API to Firefox.  I have not tested it, and it’s not maintained by Mozilla, so YMMV.  Just thought I’d mention it.

Jake

On Mar 26, 2026, at 3:28 PM, Félix <felix...@gmail.com> wrote:

btw firefox does not support filesystem API either way - so until they decide to support it, no use trying it with firefox :)
--
You received this message because you are subscribed to the Google Groups "leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/leo-editor/da616bf4-413b-42ec-a744-77fa1f3a56den%40googlegroups.com.

Viktor Ransmayr

unread,
Mar 26, 2026, 4:44:35 PMMar 26
to leo-e...@googlegroups.com
Hello Félix,

Am Do., 26. März 2026 um 06:34 Uhr schrieb Félix <felix...@gmail.com>:
...

📱 Install it like a real app

leo-web includes a web app manifest, which means you can install it as a standalone app on desktop (Chrome, Edge, etc.) or mobile devices with the 'install button' at the end of the adress bar.

Interesting !

Does that mean it can be downloaded & installed once - and - then used offline ?

If yes, how would I start 'leo-web' in offline mode ?

With kind regards,

Viktor

Félix

unread,
Mar 26, 2026, 8:39:17 PMMar 26
to leo-editor
@Viktor Not offline yet - that implies 'compiling' the app in another way. I'll have to document myself on that matter to be able to do it (if possible at all with the actual codebase)

On the other hand: I've just discovered how to make some keyboard shortcuts be 'positional' on the keyboard instead of being 'by printed character'. (didnt know I could do that in javascript lol !)

 That will finally enable me to have a reliable shortcut for clone, promote and demote (pressing ctrl+the key under escape, ctrl+the key on the right of 'p', and ctrl+the key on the right of that last one!) Those are easy to trigger on an english u.s. keyboard layout, but on canadian-multilingual or french (and others) keyboard layouts they had to be remapped in some way to trigger in Leo.

So far I'll make only those 3 be positional. Please let me know if you can foresee any problems with that 

Félix



Viktor Ransmayr

unread,
Mar 27, 2026, 4:08:04 PMMar 27
to leo-e...@googlegroups.com
Hello Félix

Am Fr., 27. März 2026 um 01:39 Uhr schrieb Félix <felix...@gmail.com>:
@Viktor Not offline yet - that implies 'compiling' the app in another way. I'll have to document myself on that matter to be able to do it (if possible at all with the actual codebase)

Looking forward to hear about your  future investigations !
 
On the other hand: I've just discovered how to make some keyboard shortcuts be 'positional' on the keyboard instead of being 'by printed character'. (didnt know I could do that in javascript lol !)

 That will finally enable me to have a reliable shortcut for clone, promote and demote (pressing ctrl+the key under escape, ctrl+the key on the right of 'p', and ctrl+the key on the right of that last one!) Those are easy to trigger on an english u.s. keyboard layout, but on canadian-multilingual or french (and others) keyboard layouts they had to be remapped in some way to trigger in Leo.

So far I'll make only those 3 be positional. Please let me know if you can foresee any problems with that

IIUC I don't see any issues with your current plan - but - I'd like to mention that I did experience  ~initial~ issues using Leo-Editor with **abbreviations** because of my German keyboard. 

With kind regards,

Viktor

PS: I'll look up the ~old~ message exchange I had with Edward & post it here.

Viktor Ransmayr

unread,
Mar 27, 2026, 4:44:55 PMMar 27
to leo-e...@googlegroups.com
Hello Félix,

Am Do., 26. März 2026 um 06:34 Uhr schrieb Félix <felix...@gmail.com>:
...

If you do give it a spin, I’d be really interested to hear:
  • what feels great
  • what feels missing
  • and what breaks 🙂
Is there a particular reason why you have not provided the 'exit-leo' command ?

With kind regards,

Viktor

Félix

unread,
Mar 27, 2026, 9:00:55 PMMar 27
to leo-editor
@viktor 

> Is there a particular reason why you have not provided the 'exit-leo' command ?

Ah! good catch! I thought I'd quickly add an 'exit leo' command, so I went to document myself on how to have a web-page close itself, but here's what I learned:

Due to modern browser security restrictions, a web application cannot force the entire browser or a tab opened by the user to close programmatically.

Thanks for that question nonetheless and please continue testing it out as it greatly helps in polishing and finalizing the project! :)

Félix

Viktor Ransmayr

unread,
Mar 28, 2026, 5:03:31 PMMar 28
to leo-e...@googlegroups.com
Hello Félix,

Am Sa., 28. März 2026 um 02:00 Uhr schrieb Félix <felix...@gmail.com>:
@viktor 
> Is there a particular reason why you have not provided the 'exit-leo' command ?

Ah! good catch! I thought I'd quickly add an 'exit leo' command, so I went to document myself on how to have a web-page close itself, but here's what I learned:

Due to modern browser security restrictions, a web application cannot force the entire browser or a tab opened by the user to close programmatically.

Thanks for your feedback.

I can / do understand the restriction for a web application not being able to enforce closing the entire browser - but - not being able to close your own tab feels wrong to me !

With kind regards,

Viktor

Viktor Ransmayr

unread,
Mar 29, 2026, 11:38:16 AMMar 29
to leo-editor
Hello Félix,

Viktor Ransmayr schrieb am Samstag, 28. März 2026 um 22:03:31 UTC+1:
Am Sa., 28. März 2026 um 02:00 Uhr schrieb Félix <felix...@gmail.com>:
@viktor 
> Is there a particular reason why you have not provided the 'exit-leo' command ?

Ah! good catch! I thought I'd quickly add an 'exit leo' command, so I went to document myself on how to have a web-page close itself, but here's what I learned:

Due to modern browser security restrictions, a web application cannot force the entire browser or a tab opened by the user to close programmatically.

Can you please share a reference for this statement.
 
I can / do understand the restriction for a web application not being able to enforce closing the entire browser - but - not being able to close your own tab feels wrong to me !

I did a search on the Internet using "a web application cannot force the entire browser or a tab opened by the user to close programmatically" as search term and got the following link as one of the results:

I do understand that w/i 'leo-web' a lot of checks have to be made before calling it - but - can you explain to me why 'window.close();' at the end would not work ?

With kind regards,

Viktor 

Félix

unread,
Mar 31, 2026, 7:52:45 PMMar 31
to leo-editor
@viktor

that's weird: after reading this I thought we cant have self-closing (unless some specific circumstances)
https://developer.mozilla.org/en-US/docs/Web/API/Window/close

but after trying this simple html (save it as an .html file and try it yourself) I was surprised to see the window close under chrome in windows 10. 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Close Tab Test</title>
</head>
<body>
  <h1>Close Tab Test</h1>

  <button onclick="window.close()">
    Close this tab
  </button>

</body>
</html>


So I guess I'll add the command and see if it works when served from the web...!
 :) 

thanks for inquireing and insisting on this question! :D

Félix 

Félix

unread,
Mar 31, 2026, 8:53:31 PMMar 31
to leo-editor
@viktor I'm getting inconsistent results, so I'll refrain from adding this feature... :/

In the browser so CTRL+W and other shortcuts like CTRL+F4 for closing the browser tab still are usable for that :)

Félix

Viktor Ransmayr

unread,
Apr 1, 2026, 1:40:54 PMApr 1
to leo-e...@googlegroups.com
Hello Félix,

Am Mi., 1. Apr. 2026 um 01:52 Uhr schrieb Félix <felix...@gmail.com>:

that's weird: after reading this I thought we cant have self-closing (unless some specific circumstances)
https://developer.mozilla.org/en-US/docs/Web/API/Window/close

but after trying this simple html (save it as an .html file and try it yourself) I was surprised to see the window close under chrome in windows 10. 

Thanks a lot for sharing the reference & HTML file - plus - trying to implement the 'exit-leo' command !

It is not an issue at all for me - but - as I said before it felt wrong / to restrictive ...

With kind regards,

Viktor

Offray Vladimir Luna Cárdenas

unread,
Apr 7, 2026, 7:17:58 PM (10 days ago) Apr 7
to leo-e...@googlegroups.com

Hi Felix,

I just tested it on Vivaldi and it went pretty smooth. I like that it supports the keyboard shortcuts of Leo desktop and seeing the discussions about the impossibility of running it offline, I wonder if some default tutorial document could be open as a way to introduce new users to this tool with a section that explains how to run it by yourself in localhost (if possible).

I'm not a fan of JavaScript/Typescript and my way of building web app will be via Hypermedia Systems[1], so I can made them in the languages I like (now I'm making some experiments with Lua/YueScript[2]). Despite of that, I really like to see Leo using the web as a spreading vector, as I think that interesting GUIs and interactions are available there that are more difficult to communicate in the desktop.

[1] https://hypermedia.systems 
[2] https://yuescript.org/doc/getting-started/introduction.html

Thanks for this work,

Offray

Félix --
You received this message because you are subscribed to the Google Groups "leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+...@googlegroups.com.

Félix

unread,
Apr 10, 2026, 1:33:38 AM (7 days ago) Apr 10
to leo-editor
@Offray Thanks for testing it out ! :) Your comments are greatly appreciated. 

Yeah you're right about there should be a 'dismissable intro screen' similar to 'show-tips' in the original Leo, also accessible in the help menu to be re-opened easily for quick access. 

 I've got something in mind for that so It will probably be one of the next things I add. I'll also keep in mind the other suggestions you made. :)

Btw, does ctrl+shift+c , ctrl+shift+v work for you in that browser? I know it works with chrome, edgs, but was not sure about that vivaldi one.... Thanks for checking that detail out if you have the chance :)

I've made many updates in the last days. There's been user interface polishing and new features added since last week's launch, so thanks to anyone who checks it out and helps spots issues or bugs!

Félix

lewis

unread,
Apr 10, 2026, 10:47:15 PM (7 days ago) Apr 10
to leo-editor
I get these errors running leo-web on on MS Edge Version 147.0.3912.60
The myLeoSettings file is located at the root of my chosen workspace, the same location as the leo file.

Leo-Web 1.0.10, master branch, build bcc573e
2026-04-09 01:11:20 -0400
Microsoft Edge 147.0.0.0
Windows NT 10.0
leo-editor: https:/boltex.github.io/leo-web/
workspace: leo
reading settings in leoSettings.leojs
reading settings in /myLeoSettings.leo
exception preprocessing script
TypeError: Cannot read properties of undefined (reading 'endEditHeadline')
    at NullTree.endEditLabel (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2421953)
    at Commands.endEditing (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2246588)
    at AtFile.stringToString (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2145303)
    at composeScript (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2487922)
    at Object.getScript (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2461528)
    at SettingsTreeParser.doButtons (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2274742)
    at SettingsTreeParser.visitNode (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2303404)
    at SettingsTreeParser.traverse (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2285259)
    at async LoadManager.createSettingsDicts (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2083354)
    at async LoadManager.computeLocalSettings (https://boltex.github.io/leo-web/bundle.991eaad859a10374fdad.js:2:2082537)

Regards Lewis

Félix

unread,
Apr 11, 2026, 4:08:52 PM (6 days ago) Apr 11
to leo-editor
Lewis, 

Thanks for finding this early-release/teething bug! A new version is already out with the fix.

This is the kind of silly thing that I am hoping to eradicate in the first week(s) of release, so many thanks again for finding and pointing out this bug! :)

Félix

lewis

unread,
Apr 12, 2026, 9:33:48 PM (5 days ago) Apr 12
to leo-editor
Thanks for the fix.

I'm running build 6d3e3b8. When I select Files>Recent Files I get the pop-up window and pick the file, but on first click it says
can not open: workbook.leo
When I repeat Files>Recent Files and pick it then opens.

lewis

unread,
Apr 12, 2026, 9:50:59 PM (5 days ago) Apr 12
to leo-editor
Also when I type workbook into the pop-up window, it does not recognise it as a recent file. Only the files in the pop-up can be filtered by typing.

Félix

unread,
Apr 12, 2026, 10:25:33 PM (5 days ago) Apr 12
to leo-editor
hmm, i tried opening files from that recent files list command but i cant reproduce this. Although I have not yet tried it with MS Edge yet... I'll try to reproduce it with that tomorrow - but perhaps you can clarify the following questions:

1- Does it work with recent files not named 'workbook.leo' that are in the recent file list

2- (of course if the file name is not in the list, typing it in the search field will not show it) Is there a circumstance where opening a file does not add it to the recent files list?

Maybe you were expecting the same recent files choices as your regular Leo usually running on your computer: Note that unlike LeoJS and LeoInteg,  leo-web has no access to the regular .leo folder in your 'home' so it has its own 'recent files list' and 'settings' saved in the browsers localstorage. (if that can help find a reproduce way to trigger this bug)

I'll try to reproduce it by using the same browser, and/or with a file specifically named 'workbook.leo' as I know this has a special file name. but in the meantime I'd like to thank you for reporting those glitches! Helps a lot in polishing the whole thing! :)

Félix

Félix

unread,
Apr 12, 2026, 10:40:37 PM (5 days ago) Apr 12
to leo-editor
@lewis

forgot to ask, if you check the browsers console (F12 or CTRL+SHIFT+i ), are there any  errors there when you click on the recent file from the list the first time when it does not open?

Thanks ! 

Félix

lewis

unread,
Apr 12, 2026, 10:52:04 PM (5 days ago) Apr 12
to leo-editor
 
1- Does it work with recent files not named 'workbook.leo' that are in the recent file list
 The problem only occurs with workbook.leo, and only when no other leo files are open. 
 Note that after the initial can not open message, the file opens on the second attempt!

2- (of course if the file name is not in the list, typing it in the search field will not show it) Is there a circumstance where opening a file does not add it to the recent files list?

Maybe you were expecting the same recent files choices as your regular Leo usually running on your computer: 
 The workbook.leo file is in the specified leo-web local folder. It is a copy of my normal workbook file on another path.
 I have only given approval for one leo-web local folder.

I will test using the Chrome browser.

Lewis 

lewis

unread,
Apr 12, 2026, 11:39:39 PM (5 days ago) Apr 12
to leo-editor
On MS Edge - F12 shows there are no issues reported when the message appears.
Reply all
Reply to author
Forward
0 new messages