#version-manager #ai #command-line-interface #cli #shinkai #shinkai-node

app 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

4 releases (2 breaking)

0.3.0 Mar 24, 2024
0.2.0 Mar 19, 2024
0.1.1 Mar 18, 2024
0.1.0 Mar 18, 2024

#72 in Command line utilities

Download history 241/week @ 2024-03-18 92/week @ 2024-03-25 34/week @ 2024-04-01

367 downloads per month

Custom license

5MB
1K SLoC

Contains (Mach-o exe, 5MB) temp-release/kaivm-aarch64-apple-darwin

KAIVM - Shinkai Version Manager

GitHub Social

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.

Getting Started

Getting started with KAIVM is very straightforward.

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:

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:

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.

Dependencies

~8–22MB
~312K SLoC