An open API service indexing awesome lists of open source software.

https://github.com/agallardol/kaivm

KAIVM is a multiplatform Command Line Interface (CLI) designed to simplify the process of downloading, managing, configuring, and running different versions of Shinkai Node
https://github.com/agallardol/kaivm

ai cli rust version-manager

Last synced: 9 months ago
JSON representation

KAIVM is a multiplatform Command Line Interface (CLI) designed to simplify the process of downloading, managing, configuring, and running different versions of Shinkai Node

Awesome Lists containing this project

README

          

# KAIVM - Shinkai Version Manager

![GitHub Social](https://raw.githubusercontent.com/agallardol/kaivm/main/readme-assets/github-social.png)

KAIVM is a multiplatform Command Line Interface (CLI) designed to simplify the process of downloading, managing, configuring, and running different versions of Shinkai Node. It provides a seamless way to switch between Shinkai Node versions, ensuring developers can test their applications against multiple versions with ease. For more information on getting started with Shinkai Node, visit [Shinkai Documentation](https://docs.shinkai.com/getting-started).

## Getting Started

Getting started with KAIVM is very straightforward.

![demo gif](https://raw.githubusercontent.com/agallardol/kaivm/main/readme-assets/demo.gif)

Follow these steps to install, run, and customize a specific version of Shinkai Node:

### 1. Install KAIVM

There are two primary methods to install KAIVM:

#### Option 1: Install using Cargo

If you have Rust's package manager, Cargo, already installed, you can easily add KAIVM by running:

```sh
cargo install kaivm
```

#### Option 2: Install using binary

For macOS Apple Silicon users, the installation process involves a few simple steps. Please follow the instructions below:

```sh
curl -L https://raw.githubusercontent.com/agallardol/kaivm/main/temp-release/kaivm-aarch64-apple-darwin -o kaivm
chmod +x kaivm
mv kaivm /usr/local/bin/
```

For users on other platforms, installation instructions are coming soon.

### 2. Install and run Shinkai Node

1. **Install a Shinkai Node Version**

To install a specific version of Shinkai Node, use the `install` command followed by the version number. For example, to install version 0.5.3, you would run:

```
kaivm install v0.5.3
```

2. **Run Shinkai Node**

After installing the desired version, you can run it using the `kaivm node run` command. This will start the Shinkai Node with the currently set version:

```
kaivm node run
```

3. **Customize Shinkai Node**

You can customize your Shinkai Node instance by passing environment variables using the `--var=value` syntax. For example, to set the API port and the storage path, you can use:

```
kaivm node env --node_api_port=9550 --node_storage_path=~/.kaivm/data
```

By following these steps, you can easily manage, switch between different versions, and customize Shinkai Node for your development needs.

## Configuration and Assets

KAIVM stores its configuration files and downloaded Shinkai Node versions in the `~/.kaivm` directory. This centralized storage makes it easy to manage and access all KAIVM-related assets.

## Available Commands

KAIVM offers a variety of commands to manage Shinkai Node versions:

- **list**: Lists all installed Shinkai Node versions.
```
kaivm list
```

- **install **: Downloads and installs a specific version of Shinkai Node.
```
kaivm install 1.2.3
```

- **use **: Sets a specific version of Shinkai Node as the current version.
```
kaivm use 1.2.3
```

- **version**: Displays the current Shinkai Node version.
```
kaivm version
```

- **node run**: Runs the currently set version of Shinkai Node.
```
kaivm node run
```
- **node reset**: Reset your Shinkai Node.
```
kaivm node reset
```

- **node env**: Sets environment variables for the current Shinkai Node session. Available options include:
- `--node_api_port`: Specifies the port on which the Shinkai Node API will run.
- `--node_storage_path`: Defines the file system path where Shinkai Node will store its data.
- `--unstructured_server_url`: The URL of the unstructured server that Shinkai Node will communicate with.
- `--embeddings_server_url`: The URL of the embeddings server used by Shinkai Node for processing data.
- `--first_device_needs_registration_code`: Determines whether the first device connecting to the Shinkai Node requires a registration code for authentication. Accepts 'true' or 'false'.
- `--initial_agent_names`: A comma-separated list of initial agent names to be registered with the Shinkai Node.
- `--initial_agent_urls`: A comma-separated list of URLs for the initial agents, corresponding to the names provided.
- `--initial_agent_models`: A comma-separated list of models for the initial agents, corresponding to the names provided.
- `--initial_agent_api_keys`: A comma-separated list of API keys for the initial agents, corresponding to the names provided.
- `--starting_num_qr_devices`: The initial number of QR devices that should be supported by the Shinkai Node.
- `--node_port`: Specifies the port on which the Shinkai Node will run.
- `--node_ws_port`: Specifies the WebSocket port for the Shinkai Node.
- `--unstructured_server_api_key`: The API key for the unstructured server that the Shinkai Node will communicate with.
- `--embeddings_server_api_key`: The API key for the embeddings server used by the Shinkai Node for processing data.
- `--job_manager_threads`: The number of threads to be used by the job manager within the Shinkai Node.
- `--global_identity_name`: The global identity name for the Shinkai Node.
```
kaivm node env --node_api_port 9550 --node_storage_path ~/.kaivm/data
```

With KAIVM, managing Shinkai Node versions becomes a breeze, allowing developers to focus on building and testing their applications.