# Command Line Tools

## Introduction to Our Command Line Tools

Our suite of command line tools are designed to provide an accessible, step-by-step introduction to our codebase for users of all backgrounds, including those with limited programming experience. We believe that command line tools offer an ideal starting point for interacting with complex systems, allowing users to gain hands-on experience with core functionalities without diving into the source code.&#x20;

Our current toolset includes the Timeline Editor (`uc-timelineeditor`) for managing conversational histories and interacting with language models, the LLM Configuration Manager (`uc-llm`) for viewing and modifying configurations of various Language Learning Models,  the Tracing Configuration Manager (`uc-tracing`) for managing tracing settings and a small tool for Poking (`uc-poke)`  the models.

Each tool is designed to introduce key concepts of our system in a practical, interactive manner. By using these tools, you'll not only learn about our project's capabilities but also build valuable skills in configuration management, automation, and system interaction. We encourage you to start with the basics of each tool and progressively explore their more advanced features, remembering that these tools are not just utilities, but gateways to understanding our project.

## Timeline Editor (uc-timelineeditor)

The currently most powerfull command line tool is the Timeline Editor. It can be called with `uc-timelineeditor` see the [Timeline Editor](https://underdogcowboy.gitbook.io/underdogcowboy-docs/basics/timeline-editor) pages for more details.

## The LLM configuration Manager (uc-llm)

The LLM Configuration Manager is a command-line tool for managing configurations of various Language Learning Models (LLMs). It allows users to view, update, and remove configurations for different LLM providers.

### Installation

Install the package using pip:

```
pip install underdogcowboy
```

### Usage

To start the LLM Configuration Manager, run the following command in your terminal:

```
uc-llm
```

This will launch the interactive command-line interface.

### Command Flow

The typical flow for configuring an LLM is as follows:

1. List available models
2. Select a model
3. View the current configuration
4. Update properties as needed

#### 1. List Available Models

To see all available LLM models:

```
(llm_config) list_models
```

This will display a numbered list of all available models.

#### 2. Select a Model

To select a model, you can either:

* Type the number of the model
* Use the `select_model` command followed by the number or name

For example:

```
(llm_config) 1
```

or

```
(llm_config) select_model 1
```

or

```
(llm_config) select_model google-vertex
```

#### 3. View Current Configuration

Once a model is selected, you can view its current configuration:

```
(llm_config:model_name) show_config
```

This will display all the properties and their current values for the selected model.

#### 4. Update Properties

To update a property:

```
(llm_config:model_name) update_property
```

Follow the prompts to select the property you want to update and enter the new value.

### Additional Commands

* `show_general_config`: Display general configuration settings.
* `update_general_config`: Update general configuration settings.
* `help`: Display a list of all available commands.
* `exit`: Exit the LLM Configuration Manager.

### Notes

* Different models may have different properties. The `show_config` command will display all available properties for the selected model.
* When updating properties, ensure you provide valid values as required by the specific LLM provider.
* Always use the `show_config` command after updates to verify that changes have been applied correctly.
* If you encounter any errors or unexpected behavior, please check the error message and ensure you're using valid inputs.

### Example Workflow

1. Start the tool: `uc-llm`
2. List models: `list_models`
3. Select a model: `2` (assuming 2 is Google Vertex AI)
4. View configuration: `show_config`
5. Update a property: `update_property`
6. Follow prompts to select and update a specific property
7. View updated configuration: `show_config`
8. Exit the tool: `exit`

Remember, you can always use the `help` command to see a list of available commands and their descriptions.&#x20;

## Managing Tracing Configuration with uc-tracing

{% hint style="info" %}
Currently the uc-tracing tool is  a small tool to make updates on the tracing configuration for Langsmith.&#x20;
{% endhint %}

The `uc-tracing` command provides a command-line interface to view and modify tracing configuration settings for `underdogcowboy`.

#### Starting the Configuration Manager

After installing `underdogcowboy`, run the following command in your terminal:

```bash
uc-tracing
```

This will start the interactive Tracing Configuration Manager.

#### Available Commands

The following commands are available within the manager:

* **show:** Displays the current tracing configuration.
* **update:** Guides you through updating various tracing configuration settings.
* **toggle\_langsmith:** Enables or disables LangSmith tracing.
* **help:** Lists available commands and their descriptions.
* **exit:** Exits the Tracing Configuration Manager.

#### Example Usage

* **View the current tracing configuration:**

```
(tracing_config) show
```

* **Enable LangSmith tracing:**

```
(tracing_config) toggle_langsmith
```

* **Update tracing configuration settings:**

```
(tracing_config) update
```

#### Note:

The `update` command will prompt you to enter values for specific configuration settings.&#x20;

## LLM poke (uc-poke)

LLM Poke Tool (uc--poke)&#x20;

The LLM Poke Tool is a command-line utility designed to test and interact with various Language Learning Models (LLMs). It allows users to send simple test messages to selected models or all available models, providing a quick way to verify connectivity and basic functionality.

Install the package using pip:

```
pip install underdogcowboy
```

Usage To start the LLM Poke Tool, run the following command in your terminal:

```
uc-poke
```

This will launch the interactive command-line interface.

Command Flow The typical flow for using the LLM Poke Tool is as follows:

1. List available models
2. Select a model
3. Poke the selected model or all models
4. List Available Models To see all available LLM models:

```
(uc_poke) list_models
```

This will display a numbered list of all available models.

2. Select a Model To select a model, you can either:

* Type the number of the model
* Use the select\_model command followed by the number or name

For example:

```
(uc_poke) 1
```

or

```
(uc_poke) select_model 1
```

or

```
(uc_poke) select_model model_name
```

3. Poke a Model To send a test message to the selected model:

```
(uc_poke:model_name) poke
```

This will send a static prompt to the selected model and display the response.

4. Poke All Models To send a test message to all available models:

```
(uc_poke) poke_all
```

This will send a static prompt to all available models and display their responses.

Additional Commands

* help: List all available commands with their descriptions.
* exit: Exit the LLM Poke Tool.

The LLM Poke Tool provides a simple and efficient way to test the responsiveness of various LLM models, allowing users to quickly verify connectivity and basic functionality across multiple models. This tool is particularly useful for troubleshooting and ensuring that your LLM configurations are working correctly.
