Packages

Elixir client library for the Jules API. Jules is an AI-powered coding assistant that can automate software development tasks across multiple repositories.

Current section

Files

Jump to
jules_ex lib jules_ex.ex
Raw

lib/jules_ex.ex

defmodule JulesEx do
@moduledoc """
A client library for the Jules API.
Jules is an AI-powered coding assistant that can automate software development tasks.
This library provides a simple interface to interact with the Jules API.
## Configuration
Set your Jules API key in the environment:
export JULES_API_KEY="your-api-key-here"
Or configure it in your application:
config :jules_ex, api_key: "your-api-key-here"
## Basic Usage
# List available sources (GitHub repos)
{:ok, sources} = JulesEx.list_sources()
# Create a new session
{:ok, session} = JulesEx.create_session(
prompt: "Fix the bug in the login function",
source: "sources/github/owner/repo",
title: "Bug Fix"
)
# Send a message to the agent
{:ok, _} = JulesEx.send_message(session["id"], "Make it corgi themed!")
# List activities to see responses
{:ok, activities} = JulesEx.list_activities(session["id"])
"""
# Delegate to submodules for a clean API
defdelegate list_sources(opts \\ []), to: JulesEx.Source, as: :list
defdelegate get_source(name, opts \\ []), to: JulesEx.Source, as: :get
defdelegate create_session(opts), to: JulesEx.Session, as: :create
defdelegate list_sessions(opts \\ []), to: JulesEx.Session, as: :list
defdelegate get_session(id, opts \\ []), to: JulesEx.Session, as: :get
defdelegate approve_plan(session_id, opts \\ []), to: JulesEx.Session, as: :approve_plan
defdelegate send_message(session_id, prompt, opts \\ []), to: JulesEx.Session, as: :send_message
defdelegate list_activities(session_id, opts \\ []), to: JulesEx.Activity, as: :list
defdelegate get_activity(session_id, activity_id, opts \\ []), to: JulesEx.Activity, as: :get
end