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

Overview

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.

You might also like...
Scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up
Scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up

scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up

SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project.

SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project. With just a few primary configurations, such as project name, you can get started quickly.

A utility for managing cargo dependencies from the command line.

cargo edit This tool extends Cargo to allow you to add, remove, and upgrade dependencies by modifying your Cargo.toml file from the command line. Curr

BoilerFiles is a CLI for downloading your boilerplate files from a public GitHub template repo.

BoilerFiles Available on crates.io. BoilerFiles is a CLI for downloading your boilerplate files from a public GitHub template repo. Features Are you t

fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd

fas fas stands for Find all stuff and it's a rust app that simplify the find command and allow you to easily search everything you need. Note: current

Crunch is a command-line interface (CLI) to claim staking rewards  every X hours for Substrate-based chains
Crunch is a command-line interface (CLI) to claim staking rewards every X hours for Substrate-based chains

crunch · crunch is a command-line interface (CLI) to claim staking rewards every X hours for Substrate-based chains. Why use crunch To automate payout

Railway CLI - This is the command line interface for Railway.

Railway CLI This is the command line interface for Railway. Use it to connect your code to Railways infrastructure without needing to worry about envi

Gix is a command-line interface (CLI) to access git repositories

gix is a command-line interface (CLI) to access git repositories. It's written to optimize the user-experience, and perform as good or better than the

tpp (Tera Pre-Processor) is a versatile CLI (Command Line Interface) tool crafted for preprocessing files using the Tera templating engine.

tpp (Tera Pre-Processor) is a versatile CLI (Command Line Interface) tool crafted for preprocessing files using the Tera templating engine. Drawing inspiration from pre-processors like cpp and gpp, tpp is the next evolution with its powerful expressive toolset.

Releases(v0.3.0)
  • v0.3.0(Mar 24, 2024)

    What's Changed

      • improve: updated temp release binary by @agallardol in https://github.com/agallardol/kaivm/pull/14
      • feature: added demo to readme by @agallardol in https://github.com/agallardol/kaivm/pull/15
      • feature: added list-remote command by @agallardol in https://github.com/agallardol/kaivm/pull/16
      • improve: command messages by @agallardol in https://github.com/agallardol/kaivm/pull/17
      • ci: prepare release 0.3.0 by @agallardol in https://github.com/agallardol/kaivm/pull/18

    Full Changelog: https://github.com/agallardol/kaivm/compare/v0.2.0...v0.3.0

    https://github.com/agallardol/kaivm/assets/4631063/48ba1bb7-54f2-480d-8a98-099416ea81e8

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Mar 19, 2024)

    What's Changed

    • Create FUNDING.yml by @agallardol in https://github.com/agallardol/kaivm/pull/6
      • feature: added cicd for cargo by @agallardol in https://github.com/agallardol/kaivm/pull/7
      • feature: added shorter commands by @agallardol in https://github.com/agallardol/kaivm/pull/8
      • feature: add reset storage by @agallardol in https://github.com/agallardol/kaivm/pull/9
      • feature: added social banner to readme and fixes some typos by @agallardol in https://github.com/agallardol/kaivm/pull/10
      • feature: added missing shinkai node envs by @agallardol in https://github.com/agallardol/kaivm/pull/11
      • improve: added some tests by @agallardol in https://github.com/agallardol/kaivm/pull/12
      • ci: version bump by @agallardol in https://github.com/agallardol/kaivm/pull/13

    Full Changelog: https://github.com/agallardol/kaivm/compare/v0.1.1...v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Mar 18, 2024)

    What's Changed

      • feature: implemented svm CLI with basic commands by @agallardol in https://github.com/agallardol/kaivm/pull/1
      • feature: added install instructions by @agallardol in https://github.com/agallardol/kaivm/pull/2
      • feature: project renamed from svm to kaivm by @agallardol in https://github.com/agallardol/kaivm/pull/3
      • feature: add ollama validations by @agallardol in https://github.com/agallardol/kaivm/pull/4
    • Create LICENSE by @agallardol in https://github.com/agallardol/kaivm/pull/5

    New Contributors

    • @agallardol made their first contribution in https://github.com/agallardol/kaivm/pull/1

    Full Changelog: https://github.com/agallardol/kaivm/commits/v0.1.1

    Source code(tar.gz)
    Source code(zip)
Rust-powered CLI tool designed to simplify and streamline the release process with help of ChatGPT

$ releasecraftsman ????‍♂️?? Automate Your Release Process with Precision and Ease. ?? Features Generate well-crafted release notes using GPT-3.5 and

Tornike Gomareli 7 Sep 21, 2023
Nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

Node Version Manager Table of Contents Intro About Installing and Updating Install & Update Script Additional Notes Troubleshooting on Linux Troublesh

nvm.sh 63.8k Jan 7, 2023
A CLI for configuring a GoXLR on Linux

GoXLR configuration utility A tool to configure a GoXLR without requiring a Windows VM. At this time, full device initialization is not possible on Li

null 97 Jan 3, 2023
Web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries across different versions of the OS.

WinDiff About WinDiff is an open-source web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries ac

Erwan Grelet 208 Jun 15, 2023
apkeep - A command-line tool for downloading APK files from various sources

apkeep - A command-line tool for downloading APK files from various sources Installation Precompiled binaries for apkeep on various platforms can be d

Electronic Frontier Foundation 561 Dec 29, 2022
Abuse the node.js inspector mechanism in order to force any node.js/electron/v8 based process to execute arbitrary javascript code.

jscythe abuses the node.js inspector mechanism in order to force any node.js/electron/v8 based process to execute arbitrary javascript code, even if t

Simone Margaritelli 301 Jan 4, 2023
A command line tool for easily generating multiple versions of a configuration file from a single template

MultiConf A command line tool for easily generating multiple versions of a configuration file from a single template. Why? I'm a big fan of the i3 win

Ian Clarke 4 Dec 10, 2022
A Rust command line tool to simplify embedded development and deployment.

Bobbin-CLI bobbin-cli is a tool designed to make it easy to build, deploy, test and debug embedded devices using a unified CLI. bobbin-cli understands

Bobbin 110 Dec 25, 2022
An attribute macro to simplify writing simple command line applications.

fncli An attribute macro to simplify writing simple command line applications. Example #[fncli::cli] fn main(a: i32, b: i32) { println!("{}", a +

Vidhan Bhatt 29 Dec 15, 2022