Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
- o97doge
-
Scratcher
500+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
LibreKitten — Blocks not just for the browser; say hello to the server!
Please note LibreKitten is still in alpha, so blocks and features are subject to change.

or click here to try out LibreKitten.
Other links:
Click here try out the canary build. (Experimental features and additions at the cost of stability and breaking changes.)
Please say what you like or don't like, but remember to provide constructive criticism. You should be already be constructive on Scratch anyway.
How can I use LibreKitten?
Note that the look of the examples provided here are somewhat inaccurate due to Scratchblocks limitations, so this is a best effort replication.
Here is an example LibreKitten script for the server:
You can omit every block except for the Return Content block, and it will default to the values shown above:
You can provide a fallback for when there is no hat listening for a requested page. The status will default to 404 instead of 200 for this hat:
How do I run the server?
Note: The server has not been tested on Windows and may not work properly on there. You may want to run the server in Windows Subsystem for Linux if you must use Windows.
There are two ways: downloading the build and running it, or running from the source code. You probably want to do the first.
First way:
Please do contribute! I can't maintain this by myself. If there are any issues at the moment, please help us with them: https://codeberg.org/LibreKitten/LibreKitten/issues. If you want to add a new feature or anything else, please make a pull request!
Useful links for contributing to LibreKitten:
For Contributors page: https://librekitten.org/for-contributors.html
Source code: https://codeberg.org/LibreKitten/LibreKitten (preferred) or https://github.com/LibreKitten/LibreKitten
Development Wiki (WIP): https://codeberg.org/LibreKitten/LibreKitten/wiki
Join LibreKitten development: https://scratch.mit.edu/projects/1050320070/
—
Pspspsps! Like LibreKitten? Want to promote it? Add this badge to your signature.
Welcome to the LibreKitten forum topic on Scratch! You can discuss about and ask help for LibreKitten here. If you want to learn more about it, read on. If you don't know how to post, scroll down to the bottom and there will be a textbox to write your post.LibreKitten is an alpha-quality block-based visual programming language based on TurboWarp, that allows you to program more than just the browser; you can program the server. You can reach the clouds with LibreKitten!
Please note LibreKitten is still in alpha, so blocks and features are subject to change.

or click here to try out LibreKitten.
Other links:
Click here try out the canary build. (Experimental features and additions at the cost of stability and breaking changes.)
If you are running a server with LibreKitten, locally or publicly, please upgrade to 0.11.0: it fixes critical security and stability issues. I honestly forgot about it and didn't really know the severity of them, and I'm sorry for that.Please share this mod with other Scratchers if you like it. It will help build a community around it!
I had to release this release earlier than I liked, and there are breaking changes. A changelog will be coming soon. The version of the server that's in OmniBlocks is safe, as the fixes were developed there while I was porting the server.
It is a interim release, new things are coming soon.
Please say what you like or don't like, but remember to provide constructive criticism. You should be already be constructive on Scratch anyway.
We are looking for developers! First, read https://librekitten.org/for-contributors.html for information, then click here to fill in the form (on Scratch).FAQ:
How can I use LibreKitten?
Note that the look of the examples provided here are somewhat inaccurate due to Scratchblocks limitations, so this is a best effort replication.
Here is an example LibreKitten script for the server:
when page [/] is requested :: looks hat
set format to (text/plain v) :: looks
set status to [200] :: looks
set headers to [{}] :: looks
return content [Hello LibreKitten!] :: looks cap
You can omit every block except for the Return Content block, and it will default to the values shown above:
when page [/] is requested :: looks hat
return content [Hello LibreKitten!] :: looks cap
You can provide a fallback for when there is no hat listening for a requested page. The status will default to 404 instead of 200 for this hat:
when page is not found :: looks hat
return content [Not Found!] :: looks cap
How do I run the server?
Note: The server has not been tested on Windows and may not work properly on there. You may want to run the server in Windows Subsystem for Linux if you must use Windows.
There are two ways: downloading the build and running it, or running from the source code. You probably want to do the first.
First way:
- Install Node.js, if you haven't already.
- Download the latest file, that has a name that looks like “(version)-cli.tar.gz”, from here, and unzip it.
- In the terminal, run "node /path/to/the/unzipped/folder/librekitten.js serve /path/to/your/Project.lb 8080"
- Clone LibreKitten using git and enter it in the terminal.
- Install Node.js and pnpm, if you haven't already.
- Run “pnpm install” in the terminal.
- Run "node /path/to/LibreKitten/packages/vm/src/server/cli.js serve /path/to/your/Project.lb 8080" in the terminal.
Please do contribute! I can't maintain this by myself. If there are any issues at the moment, please help us with them: https://codeberg.org/LibreKitten/LibreKitten/issues. If you want to add a new feature or anything else, please make a pull request!
Useful links for contributing to LibreKitten:
For Contributors page: https://librekitten.org/for-contributors.html
Source code: https://codeberg.org/LibreKitten/LibreKitten (preferred) or https://github.com/LibreKitten/LibreKitten
Development Wiki (WIP): https://codeberg.org/LibreKitten/LibreKitten/wiki
Join LibreKitten development: https://scratch.mit.edu/projects/1050320070/
—
Pspspsps! Like LibreKitten? Want to promote it? Add this badge to your signature.
[url=https://librekitten.org/][img]https:{remove this seperator including the brackets}//u.cubeupload.com/gl12/LibreKittenBadge.png[/img][/url]
Last edited by o97doge (May 13, 2026 21:50:12)
- Steve0Greatness
-
Scratcher
1000+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
Could you update librekitten to no longer link to the forums since it's no longer a thing? Also the Codeberg repos as well.
- o97doge
-
Scratcher
500+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
(#3)Done.(#2)I'm going to do that once I'm able to.
Could you update librekitten to no longer link to the forums since it's no longer a thing? Also the Codeberg repos as well.
Edit: The website is borked, but my local build is working fine.

Edit 2: It seems like not the entire file is getting served… Ugh.
Edit 3: The file is getting served fully, but it's still borked.
Edit 4: For some reason it works fine if you use https://librekitten.org/editor, weird.
Edit 5: But it doesn't work if you append ?fps=0&hqpen&offscreen&limitless, I have came to the concusion that this is an issue on the web hoster's side.
Last edited by o97doge (July 27, 2024 04:55:37)
- Lavthegreat
-
Scratcher
7 posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
what if…What if it had uploading?
- o97doge
-
Scratcher
500+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
How to run a LibreKitten server instance:
- Clone the LibreKitten VM using git.
- Install Node.js and pnpm. (if you haven't already.)
- Run "pnpm install --shamefully-hoist".
- Run “node /path/to/LibreKitten-vm/src/cli/server.js /path/to/Project.lb” in the terminal.
Last edited by o97doge (Feb. 18, 2025 06:41:12)
- dumorando
-
Scratcher
100+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
How to run a LibreKitten server instance:i'm gonna tryEdit: It would be funny if someone made a public website using LibreKitten.
- Clone the LibreKitten VM using git.
- Install Node.js and pnpm. (if you haven't already.)
- Run “pnpm install”.
- Run “node /path/to/LibreKitten-vm/src/cli/server.js /path/to/Project.lb” in the terminal.

update: it works
now please make database blocks /j
Last edited by dumorando (July 27, 2024 20:09:17)
- Mr_rudy
-
Scratcher
100+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
you could make it have the exact same rules as scratch, but you would be very limited (i couldn't find the source, so just take this lightly)(#5)Problem is, I don't know how to make an upload system while keeping it mentionable on Scratch.what if…What if it had uploading?
Last edited by Mr_rudy (July 27, 2024 21:04:09)
- o97doge
-
Scratcher
500+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
- kookiree
-
Scratcher
1 post
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
Feedback: Make it seem like its own thing. Like make it unique to turbowarp and scratch. Maybe flip the screen? Change some blocks colors or size. Change some wording. Do you get what I mean.
- dumorando
-
Scratcher
100+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!

- BigNate469
-
Scratcher
1000+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
Even so, I doubt that the ST would allow mentioning it then, under the same logic behind why cloud chatrooms with moderation (that you provide, independently of the ST) are not allowed.you could make it have the exact same rules as scratch, but you would be very limited (i couldn't find the source, so just take this lightly)(#5)Problem is, I don't know how to make an upload system while keeping it mentionable on Scratch.what if…What if it had uploading?
Last edited by BigNate469 (July 30, 2024 00:07:21)
- dumorando
-
Scratcher
100+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
i modified some code to make a development server using on the frontend and a ws server for the backend
heres a demo of it.
https://www.youtube.com/watch?v=9003P1ldwl0
await window.vm.saveProjectSb3()
heres a demo of it.
https://www.youtube.com/watch?v=9003P1ldwl0
- o97doge
-
Scratcher
500+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
[deleted]
Last edited by o97doge (Aug. 9, 2024 06:14:15)
- BigNate469
-
Scratcher
1000+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
When running JavaScript from the App Utilities extension, make it so that there is only one warning dialogue, when the first “execute JavaScript” block is called, because otherwise this can get fairly annoying when running a few blocks with JavaScript.
- o97doge
-
Scratcher
500+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
(#17)The JavaScript blocks are mainly meant for server and packager (when that's supported) environment (which it won't show you the warnings in those environments) and allowing you to bypass the dialogues would be a security risk, as what if the first executed JavaScript is a decoy and there's another JavaScript to be executed which is malicious? If we don't give users a chance to review it after the first dialogue, there could be security issues! Yikes!
When running JavaScript from the App Utilities extension, make it so that there is only one warning dialogue, when the first “execute JavaScript” block is called, because otherwise this can get fairly annoying when running a few blocks with JavaScript.

- BigNate469
-
Scratcher
1000+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
Then you could allow users to optionally turn off warnings, and run it in a sandboxed environment that doesn't have access to any APIs.(#17)The JavaScript blocks are mainly meant for server and packager (when that's supported) environment (which it won't show you the warnings in those environments) and allowing you to bypass the dialogues would be a security risk, as what if the first executed JavaScript is a decoy and there's another JavaScript to be executed which is malicious? If we don't give users a chance to review it after the first dialogue, there could be security issues! Yikes!
When running JavaScript from the App Utilities extension, make it so that there is only one warning dialogue, when the first “execute JavaScript” block is called, because otherwise this can get fairly annoying when running a few blocks with JavaScript.
- 2D4eter
-
Scratcher
100+ posts
LibreKitten (Scratch Mod) — Blocks not just for the browser; say hello to the server!
The cat mascot looks smart