Hacker News

Show HN: OpenGravity – A zero-install, BYOK vanilla JS clone of Antigravity

102 points by ab613 ago | 30 comments
Hi. I’m a high school student studying for my GCSEs. I was using Google Antigravity heavily for my side projects, but I kept hitting the usage limits, and getting random "agent terminated" errors. So I decided to try build my own version of the IDE. I love the UI, so I copied it as accurately as possible, and then hooked up some logic into it, including the INCREDIBLY finicky webcontainer api.

I tried to keep it super lightweight, no build steps, or dependencies, and now that its open source, I'm hoping people can build things on top of it that arent possible with closed source tools, like complex custom agent workflows.

Some screenshots: - https://github.com/ab-613/OpenGravity/blob/main/examples/scr... - https://github.com/ab-613/OpenGravity/blob/main/examples/htm...

What it's made from:

- Pure Vanilla JS: no react, vue, or build step. Built entirely in plain HTML/CSS/JS to keep it super lightweight.

- WebContainer API and xterm.js: Instead of faking a terminal, I (after much pain) hooked up the WebContainer API so the AI agent has a real, in browser linux environment to run shell commands, install dependencies, and edit local files.

- BYOK (Bring Your Own Key): API key ALWAYS stays in localStorage.

Whats currently happening:

- It works, but it's an alpha. The AI can proactively start projects going properly and edit files, but because I built this over a few days before my exams, a lot of the UI dropdowns and buttons are currently just hardcoded placeholders.

- I’m open sourcing it early because I think the foundation of a Vanilla JS + WebContainer IDE is really strong, and I'd love to see where the community takes it while I'm doing my exams.

- Live demo: https://opengravity.pages.dev (Zoom out to 80% if not full screen. It will prompt for a gemini api key on load). Start by uploading a folder, then you can fiddle with the terminal and agent, and see how it goes!

Would love to hear feedback on the code, the WebContainer integration, or how to improve the agent loop!

ab613 |next [-]

Wow, I can't believe this hit the front page! Its past midnight here in the UK and I have to be up early for GCSEs, so I'm heading to sleep. I'll read and reply to all your comments and questions first thing in the morning! Thank you all so much for the amazing feedback and stars so far.

phantompeace |root |parent |next [-]

You're gonna smash it. Regardless of what your GCSE results are, stuff like this is what will take you far in life. All the best for your exams, but don't lose any sleep over them either.

ab613 |root |parent [-]

Thank you so much! I really appreciate it!

kitd |root |parent |previous [-]

Best of luck to you! My son is doing them too. This is a great project btw. Doing this sort of stuff teaches you far better than endless lessons.

refactor_master |next |previous [-]

Is there any other editor that comes close to JetBrain's Git integration? All I see is forks of forks of VSCode, and I'm wondering what the incremental gain of yet another does-the-basic-text-editing editors we need. This is in no way directed at OP, but it seems like a lot of wheels spinning around the world and surprisingly little progress at the Pareto limit.

kitd |root |parent |next [-]

Funnily enough, I actually prefer the VSCode model for git. On the occasions I use IntelliJ, I find the git actions spread across multiple panels or dropdowns. In VSCode, it's all in one place and the current state clearly visible. YMMV ofc.

ab613 |root |parent |previous [-]

Just to clarify on the vscode point, this actually isn't a vscode fork at all! It's built entirely from scratch in plain HTML/CSS/vanilla JS. But I completely agree about git UI, getting a really clean intuitive git integration working with the WebContainer filesystem is a huge priority for the roadmap.

But with the source being so light, it should hypothetically be very easy to implement features such as this nicely, without the massive overhead of navigating a HUGE codebase.

When you properly fork vscode, you have to wrestle with millions of lines of TS, strict extension APIs, complex IPC layers, and deep dependency injection trees just to change core UI behaviors.

(I googled that)

With OpenGravity, because it's just DOM manipulation and straightforward JS, adding custom native UI for Git would be way way simpler to wire up!

If you want to take a stab at implementing it, PRs are definitely welcome!

ab613 |next |previous [-]

Edit: A mod suggested I add in how I actually use this! Right now, its honestly just a massive side project that serves as a fun distraction from my GCSE revision. But I mainly use it to test out quick HTML/CSS/JS ideas in my browser when I get an idea, without needing to boot up a full dev environment or worry about rate limits.

koolala |next |previous [-]

I wish this could work with your monthly subscription where you get a flat quota in Antigravity with a free account / $20.

edit:

Is this not built out of VSCode? Isn't Antigravity based on VSCode? VSCodium has a Web build https://github.com/VSCodium/vscodium

UI wise it might be good to make it clearer you don't need to put in an API key to try it.

ab613 |root |parent |next [-]

I completely agree! Its so frustrating that providers (google, openai, anthropic) silo their $20/month consumer subscriptions away from their API access. It would be amazing if paying that flat fee gave you a 'personal API key' to use in open source UIs like this.

Unfortunately, we're stuck with standard API keys for now. Though I believe that google aistudio has decent free limits on gemini 3 flash with the free api keys? If you're just doing personal coding, you can easily plug a free api key into OpenGravity and basically use it as much as you want without paying a dime!

(I think its like 250 requests per day maybe?)

enos_feedler |root |parent [-]

This isn’t some temporary problem. Flat rate subscriptions include a hidden term that you dont pay out of pocket. Its the LTV of their speculation on the product surface and the belief they will retain you due to laziness and muscle memory

ilsubyeega |root |parent |next |previous [-]

pretty sure i believe it violates ToS and will revoke your any Gemini/Antigravity access from your account.

ab613 |root |parent |previous [-]

[dead]

webprofusion |next |previous [-]

Cool, seems a bit niche? Antigravity is ok but not so ok as to want to clone it, might just be me.

renan_warmling |next |previous [-]

I personally don't like antigravity very much, because in some hallucinations the AI ends up removing important parts of your code. It doesn't have a continuous learning engine for your project; if you switch users you may experience problems due to loss of context when reloading the session.

hmartin |next |previous [-]

But... does it clone Antigravity's commitment to storing keys at well known locations on disk in plain text?

ab613 |root |parent |next [-]

haha, definitely not! That was one of my main motivations for the BYOK approach. In OpenGravity, your API key stays on local storage the whole time, nothing to do with a server!

pylotlight |root |parent |previous [-]

Even if it did, its OSS now, open a PR! :P Note: It's not actually the same app, just a clone/reproduction so it's built from scratch essentially.

doublerabbit |next |previous [-]

GCSEs, I was disallowed from taking my IT GCSE because I "hacked the school".

kushalpandya |next |previous [-]

Should've named it ZeroGravity to stay true to its design goals.

ab613 |root |parent |next [-]

that... is a way better name. I might honestly have to rename the repo to that after I finish my exams!

Ajay__soni |root |parent [-]

Good luck for your exams!

ab613 |root |parent [-]

Thanks so much! Going to need it haha.

ab613 |root |parent |next |previous [-]

Just realised, I was worried that the logo I made (see README) wouldnt work with this name, but then I realised it could actually go quite well being a "0"! (And yes, I know, it looks a bit like an avocado...)

ctoth |root |parent |next |previous [-]

Experiencing A Significant Gravity Shortfall

davedigerati |root |parent |next |previous [-]

would be inclined to use it just to flex that name "yeah I built this in Zero Gravity..."

ab613 |root |parent [-]

Haha exactly! 'yeah, no IDE installed, just coding in zero gravity.' I might actually have to rebrand it this weekend then.

kitd |root |parent |previous [-]

"So good, you can't put it down"

photonair |next |previous [-]

If you are just a high schooler working on this, that's freaking amazing!

aroido-bigcat |next |previous [-]

Nice project. For the agent loop, the two UX pieces I'd make impossible to miss are: 1) a plan/checkpoint before file writes, and 2) a diff/revert view after each tool run.

WebContainer is great for "run it and see", but state can get fuzzy fast. The more the UI shows exactly what changed and why, the safer it feels to trust the agent.

ab613 |root |parent [-]

This is very helpful feedback. You're totally right, when WebContainers run a real environment, the state gets fuzzy fast. A diff/revert view before the agent executes would be a good idea to implement into the UI to build trust. I'm going to open a github issue for this right now so hopefully someone in the community can pick it up while I'm revising!

abhijithbabu |next |previous [-]

[flagged]

|next |previous [-]

HollowRidge427 |next |previous [-]

[dead]

CalmBirch127 |next |previous [-]

[dead]

WindyBolt907 |next |previous [-]

[dead]

|next |previous [-]

QuietLedge375 |previous [-]

[dead]