|
| 1 | +import { Button } from '@/components/Button' |
| 2 | +import Image from 'next/image' |
| 3 | +import Link from 'next/link' |
| 4 | + |
| 5 | +import julesHero from '@/images/google-jules-review.webp' |
| 6 | +import julesPlan from '@/images/jules-review-plan.webp' |
| 7 | +import julesCoding from '@/images/jules-coding.webp' |
| 8 | +import julesApproval from '@/images/jules-approved.webp' |
| 9 | +import julesBranchPublish from '@/images/jules-publish-branch.webp' |
| 10 | +import julesTaskLimit from '@/images/jules-task-limit.webp' |
| 11 | +import julesConnectGithub from '@/images/jules-connect-github.webp' |
| 12 | + |
| 13 | +import ConsultingCTA from '@/components/ConsultingCTA' |
| 14 | + |
| 15 | +import { createMetadata } from '@/utils/createMetadata' |
| 16 | + |
| 17 | +export const metadata = createMetadata({ |
| 18 | + author: "Zachary Proser", |
| 19 | + date: "2025-05-20", |
| 20 | + title: "Google Jules Hands-on Review", |
| 21 | + description: `On May 20th, 2025, I gained access to Google Jules research preview. Here is what I think`, |
| 22 | + image: julesHero, |
| 23 | +}); |
| 24 | + |
| 25 | +<Image src={julesHero} alt="I got hands-on with Google's Jules AI coding assistant. Here's what I thought..." /> |
| 26 | + |
| 27 | +<figcaption>Google enters the AI coding assistant race with Jules</figcaption> |
| 28 | + |
| 29 | +## Table of contents |
| 30 | + |
| 31 | +On May 20th, 2025, shortly after testing OpenAI's Codex, I gained access to Google's Jules research preview. Following my [review of OpenAI Codex](/blog/openai-codex-review), I was eager to see how Google's competing product would stack up. |
| 32 | + |
| 33 | +Here are my initial impressions after connecting Jules to my GitHub repositories and putting it through its paces... |
| 34 | + |
| 35 | +## Jules: How it works |
| 36 | + |
| 37 | +Like Codex, Jules is currently available through a research preview with limited access. |
| 38 | + |
| 39 | +After receiving an invitation, you're guided through a setup process that includes connecting to your GitHub account and authorizing the Jules GitHub app to access your repositories. |
| 40 | + |
| 41 | +<Image src={julesConnectGithub} alt="Jules main interface" /> |
| 42 | + |
| 43 | +Jules creates sandboxed environments for your repositories, allowing it to run commands and generate code changes without affecting your production branches until you explicitly approve them. |
| 44 | + |
| 45 | +## Things I like about Jules |
| 46 | + |
| 47 | +### The UX feels more polished |
| 48 | + |
| 49 | +In early testing, Jules' user experience feels noticeably more refined than [the initial experience I had with Codex](/blog/openai-codex-review). |
| 50 | + |
| 51 | +One standout feature is how it formulates an execution plan before taking any action: |
| 52 | + |
| 53 | +<Image src={julesPlan} alt="Jules formulates a plan before executing" /> |
| 54 | + |
| 55 | +For each task you submit, Jules presents a detailed plan and asks for your approval. What's particularly clever is that if you don't respond within 5 minutes, Jules assumes approval and proceeds with executing the plan. |
| 56 | + |
| 57 | +<Image src={julesApproval} alt="Jules approval flow with 5-minute automatic proceed" /> |
| 58 | + |
| 59 | +This strikes an excellent balance between giving you control and maintaining momentum - you don't need to babysit the process, but you still have the opportunity to course-correct if needed. |
| 60 | + |
| 61 | +Once the plan is approved, Jules gets to work making code changes and adding files in a way that's familiar to anyone who has requested Artifacts in an OpenAI or Anthropic chat. |
| 62 | + |
| 63 | +What did catch my eye is that Jules added tests alongside its implementations, a behavior I rarely observe in other flagship LLMs / integrations. |
| 64 | + |
| 65 | +<Image src={julesCoding} alt="Once you approve the plan, Jules starts coding" /> |
| 66 | + |
| 67 | +### A more intuitive branching and PR flow |
| 68 | + |
| 69 | +The branching and PR workflow in Jules feels more natural than what I experienced with Codex. |
| 70 | + |
| 71 | +When Jules completes a task, it allows you to optionally publish the branch containing its changes, but leaves you to author and open the pull request yourself. |
| 72 | + |
| 73 | +<Image src={julesBranchPublish} alt="Jules branch publishing flow" /> |
| 74 | + |
| 75 | +While this approach is technically less automated than Codex's one-click PR creation, it actually feels smoother in practice. |
| 76 | + |
| 77 | +By separating branch creation from PR submission, Jules avoids some of the error handling issues I encountered with Codex. This separation of concerns gives you more control over the final PR description and review process. |
| 78 | + |
| 79 | +## Current limitations |
| 80 | + |
| 81 | +### Usage restrictions |
| 82 | + |
| 83 | +In its current research preview, Jules limits users to 5 tasks per day: |
| 84 | + |
| 85 | +<Image src={julesTaskLimit} alt="Jules 5 task per day limit" /> |
| 86 | + |
| 87 | +If you need more capacity, you have to contact Google directly to request an upgrade. This contrasts sharply with Codex's approach, which is only available to pro users paying $200 per month but encourages spinning up as many parallel tasks as you need. |
| 88 | + |
| 89 | +This fundamental difference shapes how you prioritize work with each platform. With Jules, I find myself being more selective about which tasks I delegate, saving my limited quota for the highest-value items. |
| 90 | + |
| 91 | +## Jules vs. Codex: Early comparisons |
| 92 | + |
| 93 | +Having used both platforms in their early stages, I can offer some initial comparisons: |
| 94 | + |
| 95 | +### User experience |
| 96 | +Jules feels more polished, with its plan-first approach and thoughtful timeout features creating a smoother experience. Codex, while powerful, still shows rough edges in its execution and error handling. |
| 97 | + |
| 98 | +### Task execution model |
| 99 | +Codex encourages parallel task execution but sometimes struggles with reliability. Jules takes a more measured approach with its daily task limits but executes them with higher reliability. |
| 100 | + |
| 101 | +### GitHub integration |
| 102 | +Both platforms integrate with GitHub, but Jules' separation of branch publishing from PR creation feels more aligned with how developers typically work. Codex's automated PR creation is convenient when it works but frustrating when it fails. |
| 103 | + |
| 104 | +## Conclusion |
| 105 | + |
| 106 | +It's still early days for both Jules and Codex. Each platform shows tremendous promise while revealing the current limitations of AI coding assistants. Jules impresses with its polished UX and thoughtful workflow design, though its current task limits are restrictive. |
| 107 | + |
| 108 | +For now, I'll likely use both platforms strategically - Jules for high-priority, complex tasks where I value reliability and a smoother git workflow, and Codex for lower-priority tasks where I can leverage its unlimited parallel execution. |
| 109 | + |
| 110 | +I'm excited to see how both platforms evolve as they move from research previews to general availability, and how competition between Google and OpenAI drives innovation in this space. |
0 commit comments