OpenGravity
설치가 필요 없는 에이전트 기반 워크스페이스 (agentic workspace).
<div align="center">
<img src="https://raw.githubusercontent.com/ab-613/OpenGravity/main/assets/icon.jpeg" alt="OpenGravity Logo" width="100">
</div>
<br>
Google Antigravity UI를 실험적이고 가볍게 재현한 BYOK (Bring Your Own Key, 직접 키 가져오기) 프로젝트입니다. OpenGravity는 WebContainer API를 통해 구동되는 실시간 xterm.js 터미널을 갖춘, 브라우저 기반의 추론 가능 IDE (Integrated Development Environment)를 제공합니다. 직접적인 로컬 파일 시스템 동기화 기능과 기본적인 소프트웨어 엔지니어링 작업을 오케스트레이션하고, 셸 명령어를 실행하며, 실시간으로 파일을 편집할 수 있는 선제적인 자율 에이전트 (autonomous agent) 기능을 특징으로 합니다. 현재는 개발 진행 중인 단계입니다. 기본적인 코딩 작업에는 작동하지만, 이 버전은 "알파 (Alpha)" 버전으로 간주해 주세요.
최대 속도와 설치 제로를 위해 순수 HTML/CSS/JS로 구축되었습니다.
기원 (Origin)
- 저는 제가 만들고 있는 수많은 프로젝트를 위해 Google Antigravity를 매우 집중적으로 사용하고 있었습니다.
- 아주 빠르게, 저는 속도 제한 (rate limits) 문제에 부딪혔습니다.
- Google Antigravity는 지난 몇 달 동안 이 문제로 꽤 악명이 높아졌으며, 개선될 기미가 보이지 않습니다.
- CLI (Command Line Interface)나 VS Code 기반 프로그램으로 전환할까 생각했지만, 저는 Antigravity UI를 정말 좋아합니다.
- 그래서 Google AI Studio에 접속하여 수많은 스크린샷을 넣었고, 다양한 흥미로운 프롬프트 엔지니어링 (prompt engineering) 기술을 사용하여 Gemini 1.5 Pro가 (제 입으로 말하기 좀 그렇지만) 아름다운 클론을 만들어냈습니다.
- 결과물이 너무 마음에 들어서, 며칠간의 여유 시간을 활용해 파일 관리 및 에이전트 로직과 같은 기능들을 연결했고, 이렇게 탄생하게 되었습니다!
📸 예시 (Examples)
자율적 웹 개발 (Autonomous Web Development)
에이전트는 사용자가 지켜보는 동안 프로젝트를 선제적으로 초기화하고, pnpm을 사용하여 종속성 (dependencies)을 설치하며, 완전한 애플리케이션을 빌드할 수 있습니다.
✨ 주요 기능 (Features)
- BYOK (Bring Your Own Key): 완전한 개인정보 보호. 현재는 오직 Gemini API 모델(예:
gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-3.1-flash-lite, [단, 변경하려면 agent.js:8을 수정해야 함])만 지원합니다.
- 선제적 에이전트 추론 (Proactive Agentic Reasoning): 고급 사고 모델 (thinking models)을 사용하여 사용자의 지속적인 개입 없이도 작업을 계획, 실행 및 검증합니다.
- 고성능 터미널 (High-Performance Terminal): WebContainer API가 제공하는 실제 Linux와 유사한 환경과 xterm.js가 통합되어 있습니다.
- 대화형 도구 (Interactive Tooling): 에이전트가 bash 명령어를 실행하고, 대화형 터미널 프롬프트(y/n)를 처리하며, 파일을 직접 관리할 수 있습니다.
- 제로 블로트 (Zero Bloat): IDE 자체를 위한
npm install이 필요 없습니다. 그저 서빙하고 코딩하면 됩니다.
- 설계 단계부터 보안 고려 (Secure by Design): API 키는 오직 브라우저의
localStorage에만 저장됩니다.
🛠️ 도움을 주실 수 있는 방법
저는 현재 학업에 집중하고 있어, 커뮤니티에 바통을 넘기고자 합니다. UI는 훌륭해 보이고 기본적인 로직도 갖춰져 있지만, 원본을 진정으로 뛰어넘으려면 "프로"급 기능들이 필요합니다.
사람들이 이 프로젝트를 가져가서 일반 사용자도 사용할 수 있게 만들어 주기를 바랍니다. 구체적으로는 다음과 같습니다:
- 더 나은 오케스트레이션 (Better Orchestration): 현재의 에이전트 로직은 기초적인 수준입니다. 더 나은 "매니저/서브 에이전트 (Manager/Sub-agent)" 핸들링이 필요합니다.
- 제공업체 지원 (Provider Support): 현재는 Gemini만 지원합니다. OpenAI, Anthropic 등을 추가할 수 있도록 도와주세요.
- 버그 (Bugs): 파일 동기화와 터미널이 까다로울 수 있습니다. "실전 테스트를 통한 강화 (battle-hardening)"가 필요합니다.
- 다듬어진 UI (Polished UI): UI는 멋지지만, 해야 할 일이 많습니다.
- 모델 선택 (Model Selection): 드롭다운 메뉴가 하드코딩되어 있습니다.
agent.js에서 모델을 전환할 수 있어야 합니다.
- 상단 메뉴 바 (Top Menu Bars): "파일 (File)", "편집 (Edit)", "선택 (Selection)" 메뉴는 플레이스홀더(placeholder) 상태입니다. 저장 및 검색과 같은 기본적인 기능이 필요합니다.
- Git 지원 (Git Support): 아이콘은 존재하지만, 아직 그 뒤에 작동하는 로직은 없습니다.
- 설정 UI (Settings UI): 사용자가 API 키를 입력하려면 우측 상단의 작은 "a" 아이콘을 클릭해야 합니다. 제대로 된 사용자 친화적인 설정 패널이 필요합니다.
🚀 시작하기
- 로컬 서버(
python3 server.py)를 사용하여 프로젝트 루트를 서빙(Serve)합니다.
- 브라우저에서
http://localhost:8000을 엽니다.
- 우측 상단의 작은 "a" 아이콘을 클릭하고(네, 좀 불편합니다. 수정할 할 일 목록(to-do list)에 올라와 있습니다!) Gemini API 키를 입력합니다.
- 우측 패널에서 Antigravity와 대화를 시작합니다.
🛠️ 상태: 휴식기 (On Hiatus)
저는 현재 GCSE(영국 중등교육 자격시험)를 병행하고 있어, 매주 일요일 저로에 PR(Pull Request)을 검토하고 병합(Merge)할 예정입니다.
📜 라이선스
GPL-3.0 라이선스 하에 배포됩니다. 상업적 이용 및 기여에 관한 자세한 내용은 LICENSE 파일을 참조하세요.
⭐ Star History
</picture>
</a>