Overview

It is still in development and is not yet stable. Not all commands are implemented yet. Below are the commands that are implemented.

The julep CLI is a comprehensive command-line interface for interacting with the Julep platform. Following are the available commands.

Authentication

julep auth

The julep auth command is used to authenticate your Julep CLI. This will prompt you to enter your API key and save it to the configuration file.

Example:

# Basic authentication with interactive prompt
julep auth

# Output:
# Enter your Julep API key: **********************
# Authentication successful!

You can get your API key from the Julep Dashboard.

Project Management

julep init --name "Project Name" --description "Project Description"

The julep init command is used to initialize a new Julep project.

--name
string
required

Name of the project

--description
string

Description of the project

Examples:

# Initialize a basic project
julep init --name "My First Project"

# Initialize with description
julep init --name "AI Assistant" --description "A smart AI assistant for customer support"

# Initialize in a specific directory
cd ~/projects
julep init --name "Content Generator" --description "AI content generation system"

Task Execution

julep run --task <task_id_or_name> --input '{"key": "value"}'

The julep run command is used to execute a task.

--task
string
required

ID or name of the task to execute

--input
json

Input data for the task

--input-file
string

Path to a file containing the input for the task

--wait
boolean

Wait for the task to complete before exiting, stream logs to stdout

Examples:

# Run task with inline JSON input
julep run --task "Generate Story" --input '{"prompt": "Write a story about a magical forest"}'

# Run task with input from file
julep run --task "task_abc123" --input-file ./inputs/story-params.json

# Run task and wait for completion
julep run --task "Image Generator" --input '{"style": "watercolor"}' --wait

# Run task with minimal input
julep run --task "task_abc123" --input '{}'

# Run task and capture execution ID
EXEC_ID=$(julep run --task "Data Analysis" --input '{"dataset": "sales_2023"}' --json | jq -r '.execution_id')

Agent Management

The julep agents command is used to manage your agents.

julep agents create --name "Agent Name" \
                   --model "Model Name" \
                   --about "Agent Description" \
                   --metadata '{"key": "value"}' \
                   --instructions "Instruction 1" \
                   --instructions "Instruction 2"

The julep agents create command is used to create a new agent.

--name
string
required

Name of the agent

--model
string

Model to be used (e.g., gpt-4). You can find the list of models here

--about
string

Description of the agent

--metadata
json

Additional metadata (JSON format)

--instructions
array

Instructions for the agent (can be repeated)

--definition
string

Path to agent definition file

--import-to
string

Import to project after creating

Examples:

# Create a basic agent
julep agents create --name "Story Writer" --model "gpt-4"

# Create agent with full configuration
julep agents create \
  --name "Content Assistant" \
  --model "gpt-4" \
  --about "AI assistant for content creation" \
  --metadata '{"type": "content", "version": "1.0"}' \
  --instructions "Focus on creative writing" \
  --instructions "Maintain professional tone"

# Create agent from definition file
julep agents create --definition ./agents/content-assistant.yaml

# Create and import to project
julep agents create \
  --name "Data Analyst" \
  --model "gpt-4" \
  --import-to ./my-project

# Create agent with multiple instructions from file
julep agents create \
  --name "Support Bot" \
  --model "gpt-4" \
  --instructions-file ./instructions.txt

Task Management

julep tasks create --name "Task Name" \
                  --agent-id agent_id \
                  --definition path/to/task.yaml \
                  --metadata '{"status": "beta"}' \
                  --inherit-tools

The julep tasks create command is used to create a new task.

--agent-id
string
required

ID of the associated agent

--name
string

Name of the task

--definition
string

Path to task definition file

--metadata
json

Additional metadata (JSON format)

--inherit-tools
boolean

Inherit tools from agent

--import-to
string

Import to project after creating

Tool Management

julep tools create --name "Tool Name" \
                  --type tool_type \
                  --agent-id agent_id \
                  --definition path/to/config.yaml

The julep tools create command is used to create a new tool.

--agent-id
string
required

ID of the associated agent

--name
string
required

Name of the tool

--type
string
required

Type of the tool

--definition
string

Path to tool definition file

--description
string

Description of the tool

--metadata
json

Additional metadata (JSON format)

--import-to
string

Import to project after creating

Execution Management

julep executions create --task task_id --input '{"key": "value"}'

The julep executions create command is used to create a new execution for a task.

--task
string
required

ID or name of the task to execute

--input
json

JSON string representing the input for the task (defaults to )

--input-file
string

Path to a file containing the input for the task

Julep Assistant

julep assistant

julep assistant launches an interactive prompt (a “wizard” mode) that uses AI to interpret plain-English requests and transform them into valid julep CLI commands. Think of it as a chat-based REPL that helps you build and manage your Julep resources more intuitively.

The assistant works as follows:

  1. Opens a session where you can type natural language instructions (e.g., “Create a GPT-4 agent named MarketingBot”).
  2. The assistant uses an LLM (Large Language Model) to suggest one or more CLI commands that match your request (e.g., julep agents create --name "MarketingBot" --model "gpt-4").
  3. Displays the suggested command(s) and prompts for confirmation:
  • (Y): Run the command immediately, showing output in the same session.
  • (n): Skip or cancel the suggestion.
  • (edit): Manually revise the command prior to execution.
  1. Returns to the prompt for follow-up instructions, giving you a conversational workflow (e.g., “Now list all my tasks”, “Delete the agent I just created”, etc.).

Example Session:

$ julep assistant

Welcome to Julep Assistant!
Type your request in plain English, or type 'exit' to quit.

assistant> Create a GPT-4 agent named MarketingBot
Proposed command:
julep agents create --name "MarketingBot" --model "gpt-4"

Execute? (Y/n/edit)
Y
[Running command...]
Agent created successfully (id: agent_654321)

assistant> List all tasks
Proposed command:
julep tasks list

Execute? (Y/n/edit)
Y
[Running command...]
[No tasks found]

assistant> exit

The idea is to make it easier to onboard new users and make it easier to manage projects.

  • Simplifies Onboarding: Users can manage agents, tasks, and tools with minimal knowledge of CLI flags and syntax.

  • Conversational Guidance: The assistant can ask clarifying questions if a request is ambiguous and recall recently created or updated resources.

  • Expandable: Future enhancements might include richer multi-step workflows, advanced editing, and deeper project insights (e.g., referencing julep-lock.json state).

    This feature is particularly useful for new users or those who want a quick, conversational way to build out a project without memorizing every julep subcommand. Simply type what you want in natural language, confirm or edit the generated commands, and let the assistant handle the rest.

Miscellaneous

julep --version

The julep --version or julep -v command displays the current version of the Julep CLI.

Global Configuration

The following configuration can be used with any command:

  • --quiet, -q: Suppress all output except errors and explicitly requested data
  • --color: Force enable colored output
  • --no-color: Force disable colored output

Examples:

# Run command without output
julep agents list --quiet

# Force colored output
julep agents list --color

# Disable colored output
julep agents list --no-color

# Combine with other options
julep agents list --json --quiet --no-color

By default, color output is:

  • Enabled for TTY (interactive terminal) sessions
  • Disabled for non-TTY sessions (pipes, redirects, etc.)
  • Disabled if NO_COLOR environment variable is set
  • Disabled if TERM=dumb

The CLI will automatically detect these conditions and adjust color output accordingly.

Best Practices

Project Organization

  • Keep agent, task, and tool definitions in separate directories under src/
  • Use meaningful file names that reflect their purpose
  • Follow the standard project structure

Version Control

  • DO commit julep.yaml to version control
  • DO commit julep-lock.json to version control
  • Document project dependencies and requirements

Command Line Usage

  • Use --json flag for machine-readable output
  • Use --quiet for scripting and automation
  • Always provide required parameters

File Management

  • Project Configuration: Keep your julep.yaml clean and well-organized
  • Lock File: Use julep-lock.json to track remote state and relationships
  • Source Files: Organize definitions in appropriate directories under src/

Workflow Tips

  • Use julep sync regularly to keep local and remote states in sync
  • Review changes with --json output before applying updates
  • Use the assistant mode for complex workflows: julep assistant

Security Best Practices

  • Store API keys securely
  • Use environment-specific configurations
  • Review permissions before executing destructive commands
  • Use --force flags cautiously

Always review the changes before using force flags (--force-local, --force-remote) as they can override remote or local state.

Support

If you need help with further questions in Julep: