Overview

The julep CLI provides a comprehensive command-line interface for interacting with the Julep platform. It enables you to manage agents, tasks, tools, and projects directly from your terminal.

Installation

Note: While the package name is julep-cli, the installed command is simply julep.

Configuration

The CLI stores configuration data in ~/.config/julep/config.yml. This file is created automatically after authentication.

Project Structure

A Julep project follows a standard directory structure:

project-name/
├── README.md         # Documentation and usage instructions
├── julep.yaml        # Project configuration and entrypoint
├── julep-lock.json   # Lock file tracking server state
└── src/              # Source directory
    ├── agents/       # Agent definitions
    │   └── agent.yaml
    ├── tasks/        # Task definitions
    │   └── task.yaml
    └── tools/        # Tool definitions
        └── tool.yaml

The julep.yaml file defines your project configuration:

julep.yaml
agents:
- definition: src/agents/agent.yaml
- definition: src/agents/another-agent.yaml

tasks:
- agent_id: "{agents[0].id}"
  definition: src/tasks/task.yaml
- agent_id: "{agents[1].id}"
  definition: src/tasks/another-task.yaml

tools:
- agent_id: "{agents[0].id}"
  definition: src/tools/tool.yaml
- agent_id: "{agents[1].id}"
  definition: src/tools/another-tool.yaml

The julep-lock.json file tracks the state of your project on the Julep platform, mapping local files to their remote counterparts and maintaining relationships between components. This file should be committed to version control to ensure consistent state across team members. To know more about the schema and the usage of the julep-lock.json file, you can read the Lockfile section.

Getting Started

To get started with the CLI, follow these steps:

1

Authenticate

julep auth --environment production

The auth command is used to authenticate with the Julep platform. You need to provide your API key. You can find your API key here.

2

Initialize Project

julep init --template profiling-recommending

The init command is used to initialize a new Julep project. There are bunch of templates to get you started which you can find here.

3

Sync Project

julep sync

The sync command is used to synchronize the local project with the Julep platform. This creates a julep-lock.json file which tracks the state of the project on the Julep platform.

4

Edit the project

Once the project is initialized, you can edit the project in the julep.yaml file. Add agents, tasks, tools, etc. in the src directory.

5

Re-Sync Project

julep sync --source profiling-recommending --force-local

After editing the project, you can re-sync the project with the Julep platform. This will update the julep-lock.json file with the latest state of the project on the Julep platform.

6

Run the project

julep executions create --task-id {task.id} --input '{"input": "input"}'

The executions create command is used to create a new execution for a task. You can find the task ID in the julep-lock.json file.

7

View the execution

julep logs --execution-id {execution.id} --tail

The logs command is used to view the logs of an execution. When you run the executions create command, it will return the execution ID.

You can find more commands in the Command Reference section.

Support

If you need help with further questions in Julep: