pi-jules

extensionmaintained

Delegate coding tasks to Jules from Pi. Async background agent with live status, completion notifications, and kaomoji.

by · v1.0.2 · published 1mo ago

$ pi install npm:pi-jules
downloads/mo
62
stars
1
last push
1mo ago
open issues
0

Signals

license: MITtestspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

586 downloads · last 12 weeks (weekly)

README

pi-jules

Delegate coding tasks to Jules from Pi.

Jules is Google's async coding agent — it clones your repo, works in a VM, and produces a patch. pi-jules wires it into Pi so you can fire off tasks and keep working.

npm install -g pi-julespi install npm:pi-jules

Install · Usage · Tools · Commands


The Problem

You're deep in a Pi session. There's a tedious task — writing tests, updating docs, refactoring a module — that doesn't need you right now. You could context-switch to Jules, but that means leaving Pi.

pi-jules lets you delegate without leaving your flow. Jules works in the background. You keep going. Pull the patch when it's ready.

How It Works

You: "have jules add tests for the auth module"
 Pi: → jules_create_session("add tests for the auth module")
     → session created, id: 10329577886289548151
     → jules starts working in the background
     
You: keep working in Pi...
     ...
     notification: jules done (^_^) add tests for auth [48151]
     
You: "pull the jules results"
 Pi: → jules_pull_result(sessionId: "10329577886289548151")
     → patch applied

Install

npm (recommended)

npm install -g pi-jules
pi install npm:pi-jules

git

pi install git:github.com/4firas/pi-jules

manual

cp extensions/pi-jules.ts ~/.pi/agent/extensions/

prerequisites

  • Jules CLI installed (@google/jules)
  • Logged in (jules login)
  • Google account connected to your GitHub repos

Usage

Just talk naturally. Pi picks the right tool.

"delegate this to jules"
"have jules work on owner/repo"
"create 3 parallel jules sessions for adding tests"
"check my jules sessions"
"pull results from session 123456"
"teleport to jules session 789"

Tools

ToolDescription
jules_create_sessionCreate async task. Supports repo and parallel params.
jules_list_sessionsList all sessions with status, repo, description.
jules_pull_resultPull patch from completed session. Optional apply flag.
jules_teleportClone repo + checkout branch + apply patch. Full working copy.
jules_check_statusVerify Jules CLI is installed and authenticated.

Commands

CommandWhat it does
/julesQuick status — active count, completed count
/jules listShow all sessions
/jules checkVerify CLI is working

Status & Widget

pi-jules shows live status in Pi's footer and a widget above the editor.

Footer:

StateDisplay
Readyjules (^-^)
Planningjules (^_^)ノ (・_・) (1 active)
Runningjules (^_^)ノ (>_<) (1 active)
Unavailablejules (¬_¬)

Widget (above editor):

(^_^)ノ jules active (2)
  (・_・) [48151] add tests for auth module  (4firas/my-app)
  (>_<) [48152] refactor auth controller     (4firas/my-app)
(._.) jules idle — 3 completed sessions ready to pull
(^-^) jules ready — no sessions

Completion notifications:

When a session finishes, you get a toast:

jules done (^_^) add tests for auth module [48151]

Kaomoji

StatusFace
ready(^-^)
planning(・_・)
running(>_<)
completed(^_^)
failed(x_x)
cancelled(-_-)
error(◎_◎)
idle(._.)
unavailable(¬_¬)

Architecture

  • Extension registers tools Pi's LLM can call
  • Each tool shells out to jules CLI
  • Output is parsed for session IDs, statuses
  • Status line updates on agent_end event
  • Completion tracking via knownCompleted set — no duplicate notifications
  • Widget updates live above editor

Package Info

Version1.0.0
LicenseMIT
Authorfir4s
Repositoryhttps://github.com/4firas/pi-jules
Size~16 KB
Dependencies0 (peer deps only)

License

MIT