{"id":41621862,"url":"https://github.com/sbhavani/jules-app","last_synced_at":"2026-01-24T13:56:05.716Z","repository":{"id":327173378,"uuid":"1108162120","full_name":"sbhavani/jules-app","owner":"sbhavani","description":"self-hosted workspace for Google's Jules AI agent","archived":false,"fork":false,"pushed_at":"2026-01-03T17:07:39.000Z","size":1656,"stargazers_count":10,"open_issues_count":24,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-07T19:49:09.374Z","etag":null,"topics":["ai-agents","code-assistant","jules-ai","nextjs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sbhavani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-02T05:25:53.000Z","updated_at":"2026-01-02T03:09:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sbhavani/jules-app","commit_stats":null,"previous_names":["sbhavani/jules-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sbhavani/jules-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbhavani%2Fjules-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbhavani%2Fjules-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbhavani%2Fjules-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbhavani%2Fjules-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbhavani","download_url":"https://codeload.github.com/sbhavani/jules-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbhavani%2Fjules-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28729411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","code-assistant","jules-ai","nextjs"],"created_at":"2026-01-24T13:56:04.951Z","updated_at":"2026-01-24T13:56:05.710Z","avatar_url":"https://github.com/sbhavani.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jules UI\n\n![Build Status](https://github.com/sbhavani/jules-app/actions/workflows/ci.yml/badge.svg)\n![Next.js](https://img.shields.io/badge/Next.js-16.0-black)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue)\n![Tailwind CSS](https://img.shields.io/badge/Tailwind-4.0-38bdf8)\n\n![Session View](public/assets/session-screenshot.png)\n\n**A powerful, self-hosted workspace for Google's Jules AI agent.** Transform standard agent interactions into an engineering command center with live code diffs, real-time activity monitoring, session analytics, and comprehensive terminal output inspection.\n\n## ✨ Key Features\n\n- 🔄 **Real-Time Updates** - Live activity feed with auto-polling\n- 📊 **Code Diff Viewer** - Visualize git patches and changes instantly\n- 💻 **Integrated Terminal** - Full web-based terminal with local machine access\n- 📈 **Analytics Dashboard** - Track session metrics and trends\n- 🔍 **Smart Search** - Find sessions by repository or title\n- 📱 **Mobile-First** - Fully responsive design\n- 🔒 **Secure** - Container isolation and API keys stored locally\n\n## 🚀 Quick Start\n\n**Prerequisites:** Node.js 18+, Jules API key from [jules.google.com](https://jules.google.com), and a connected GitHub repository.\n\n### Option 1: Standalone Mode\n\nRun just the Next.js app without the terminal server:\n\n```bash\n# Clone and install\ngit clone \u003cyour-repo-url\u003e\ncd jules-ui\nnpm install\n\n# Start development server\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) - the Terminal button will be visible but show setup instructions when clicked.\n\n**To hide the Terminal button completely**, add to `.env.local`:\n\n```bash\nNEXT_PUBLIC_DISABLE_TERMINAL=true\n```\n\n### Option 2: With Docker Compose (Recommended)\n\nRun both the Next.js app AND the terminal server together:\n\n```bash\n# Clone and install\ngit clone \u003cyour-repo-url\u003e\ncd jules-ui\n\n# Configure your repository path (optional)\ncp deploy/.env.local.example .env.local\n# Edit .env.local and set REPO_PATH=/path/to/your/repo\n\n# (Optional) Configure custom base image for terminal\n# export TERMINAL_BASE_IMAGE=ubuntu:22.04\n\n# Start all services (frontend + terminal server)\ndocker-compose -f deploy/docker-compose.yml up\n```\n\nOpen [http://localhost:3002](http://localhost:3002) - the Terminal will connect automatically.\n\n**Note:** Uses port 3002 to avoid conflicts with other services (like Dokploy on 3000).\n\n### Option 3: Run Services Independently\n\nRun the terminal server and Next.js app separately (useful for development):\n\n```bash\n# Terminal 1: Start the terminal server\ncd terminal-server\nnpm install\nnpm start\n\n# Terminal 2: Start the Next.js app\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) - the Terminal will connect to the server on port 8080.\n\n**Note:** Your Jules API key is stored securely in browser localStorage. See [docs/TERMINAL.md](docs/TERMINAL.md) for detailed terminal setup and usage.\n\n## 📸 More Screenshots\n\n![Integrated Terminal](public/assets/jules-terminal.png)\n_Integrated Terminal - Full web-based terminal with real-time command execution and output_\n\n![Dashboard View](public/assets/dashboard-screenshot.png)\n_Analytics Dashboard - Track session success rates, duration, and activity volume_\n\n## 🛠️ Tech Stack\n\n**Frontend:** [Next.js 16](https://nextjs.org/), [TypeScript](https://www.typescriptlang.org/), [Tailwind CSS](https://tailwindcss.com/), [shadcn/ui](https://ui.shadcn.com/), [xterm.js](https://xtermjs.org/)\n\n**Terminal Server:** [Node.js](https://nodejs.org/), [Socket.io](https://socket.io/), [node-pty](https://github.com/microsoft/node-pty)\n\n- **Base Image:** `nvcr.io/nvidia/pytorch:25.11-py3` (Configurable)\n- **Pre-installed Tools:** `gemini-cli`, `python3`, `git`, `bash`\n\n**Infrastructure:** [Docker](https://www.docker.com/), [Docker Compose](https://docs.docker.com/compose/)\n\n## 🔧 Development\n\n```bash\nnpm run dev      # Start dev server\nnpm run build    # Build for production\nnpm run lint     # Run linter\nnpm test         # Run tests\n```\n\n## 📚 API Integration\n\nIntegrates with Jules API (`https://jules.googleapis.com/v1alpha`) for session management, activity streaming, and real-time updates. See [developers.google.com/jules/api](https://developers.google.com/jules/api) for full documentation.\n\n## 🤝 Contributing\n\nContributions welcome! Feel free to submit a Pull Request.\n\n## 📄 License\n\nMIT License - see LICENSE file for details.\n\n---\n\nBuilt with ❤️ for the Jules community\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbhavani%2Fjules-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbhavani%2Fjules-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbhavani%2Fjules-app/lists"}