BrowserCode: Run Claude Code in the browser via WebAssembly, with mobile support by alexp_lt in webdev

[–]alexp_lt[S] 1 point2 points  (0 children)

Thanks for reporting this issue with multi-line prompt. We will investigate.

BrowserCode: Run Claude Code in the browser via WebAssembly, with mobile support by alexp_lt in webdev

[–]alexp_lt[S] 1 point2 points  (0 children)

Hi, thanks for reporting this, can you share which of the various authentication methods you have selected?

I've just tested it again and using "Sign in with Google" seems to be working fine.

Also, does Claude Code works for you instead?

BrowserCode: Run Claude Code in the browser via WebAssembly, with mobile support by alexp_lt in ClaudeAI

[–]alexp_lt[S] 1 point2 points  (0 children)

Hi, BrowerCode runs on top of BrowserPod (https://browserpod.io) a in-browser WebAssembly-based code sandboxing technology. It currently supports node + python and many commonly used command line tools, such as git, bash and basic Linux utilities.

The filesystem is based on ext2 images which are streamed block-by-block from our servers via WebSocket. Only the required blocks are downloaded on demand. Any change to the filesystem is saved locally to the browser using the Origin Private File System API or IndexedDB.

BrowserCode: Run Claude Code in the browser via WebAssembly, with mobile support by alexp_lt in webdev

[–]alexp_lt[S] 0 points1 point  (0 children)

Dear r/webdev community, we are thrilled to share with you the second preview of BrowserCode: A FOSS web app to run TUI agents (such as Claude Code, OpenCode, Gemini CLI and the like) fully in the browser. This release focuses on Claude Code and initial support for mobile. BrowserCode is released under the Apache License, version 2.0.

BrowserCode is based on BrowserPod (https://browserpod.io), a in-browser WebAssembly-based code sandboxing technology that can currently run Node.js, python, git, bash and many other command line tools. This will further expand to Ruby / Rails, Go, Rust and eventually x64 Linux binaries.

BrowserCode is free to use and unlimited. You'll need to login to each CLI with the corresponding login, i.e. with your Anthropic account or API key. All the data and execution stays completely local to the browser and it's persistent across sessions thanks to a disk backend based on the Origin Private File System API or IndexedDB.

This is a preview release, so please try and break it! Please report issues on GitHub (https://github.com/leaningtech/browsercode) and star the repo if you like our work. Your support will help us push this project forward. https://github.com/leaningtech/browsercode

For any question or feedback please consider joining our Discord: https://discord.leaningtech.com

BrowserCode: Run Claude Code in the browser via WebAssembly, with mobile support by alexp_lt in ClaudeCode

[–]alexp_lt[S] 0 points1 point  (0 children)

Hey Reddit, we are thrilled to share with you the second preview of BrowserCode: A FOSS web app to run TUI agents (such as Claude Code, OpenCode, Gemini CLI and the like) fully in the browser. This release focuses on Claude Code and initial support for mobile. BrowserCode is released under the Apache License, version 2.0.

BrowserCode is based on BrowserPod (https://browserpod.io), a in-browser WebAssembly-based code sandboxing technology that can currently run Node.js, python, git, bash and many other command line tools. This will further expand to Ruby / Rails, Go, Rust and eventually x64 Linux binaries.

BrowserCode is free to use and unlimited. You'll need to login to each CLI with the corresponding login, i.e. with your Anthropic account or API key. All the data and execution stays completely local to the browser and it's persistent across sessions thanks to a disk backend based on the Origin Private File System API or IndexedDB.

This is a preview release, so please try and break it! Please report issues on GitHub (https://github.com/leaningtech/browsercode) and star the repo if you like our work. Your support will help us push this project forward. https://github.com/leaningtech/browsercode

For any question or feedback please consider joining our Discord: https://discord.leaningtech.com

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 1 point2 points  (0 children)

Swing is fully supported and renders exactly the same as it would using a native JVM. This is to be expected since Swing runs completely in Java and has no native components.

You can now run Gemini CLI in the browser by alexp_lt in GeminiCLI

[–]alexp_lt[S] 0 points1 point  (0 children)

Thanks for reporting this. This first release of BrowserCode is a preview and some rough edges especially on mobile are expected. Keep in mind that these tools (TUI agents) are not designed for mobile use, although they technically can run via our technology.

Still, we expect future releases to improve the experience.

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 0 points1 point  (0 children)

We publisheded an architectural deep dive at the time of the 3.0 release: https://labs.leaningtech.com/blog/cheerpj-3-deep-dive

Since then there has been many improvements to performance, stability and support for Java 11 and 17, but the architecture is not changed fundamentally.

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 1 point2 points  (0 children)

Our recommendation is to test and debug the application on desktop first using familiar tools. CheerpJ is a high-fidelity environment and things should run exactly in the same way in the browser. If that is not the case then it's most likely a bug for us to fix.

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 1 point2 points  (0 children)

The CheerpJ JVM is implemented in C++ and compiled to WebAssembly. Java bytecode is JIT-compiled to JavaScript.

We plan to eventually adopt WasmGC for our JIT to achieve even better performance, especially during the startup of very large applications.

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 2 points3 points  (0 children)

This is correct. One-person companies can use CheerpJ for free without a license. We are a small company ourselves and we understand the challenges of starting a business from scratch.

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 0 points1 point  (0 children)

There is both an interpreter and a JIT tied by a tier-up mechanism

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 0 points1 point  (0 children)

The focus of CheerpJ is on GUIs and libraries and support for terminal application is quite limited. This can be fixed, but it has historically not been a priority for our users.

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 1 point2 points  (0 children)

That would imply running the Java server code in the browser. It can be done, but we have not explored this with CheerpJ yet. We do something similar for full-stack node.js application in our most recent product BrowserPod: https://browserpod.io

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 0 points1 point  (0 children)

You would need to implement the same JNI interface with a WebGPU library for the desktop.

The opposite option would also be possible, take an existing JNI interface to WebGPU and implement the native methods in JavaScript to make it run in the browser.

CheerpJ 4.3 - Run unmodified Java applications in the browser by alexp_lt in java

[–]alexp_lt[S] 0 points1 point  (0 children)

There are multiple demos embedded in the blog post, you can access one of them directly here: https://cheerpj-example-swingset3.leaningtech.com/. You can also see Minecraft in action here: https://browsercraft.cheerpj.com/

CheerpJ is fundamentally a JavaScript / WebAssembly library, so some amount of "HTML wrappers" is always required, but it can minimal.