Shinkai is a two click install AI manager (Ollama compatible for Windows, Mac and Linux). It lets you download/use AI models, RAG, and performs actions for you with tooling (very soon).
OTHER License
https://github.com/dcSpark/shinkai-apps/assets/46382556/010114fb-0ed4-449a-9f27-a266b22b7bdb
General Documentation: https://docs.shinkai.com
More In Depth Codebase Documentation (Mutable.ai): https://wiki.mutable.ai/dcSpark/shinkai-apps
To get started first clone this repo:
$ git clone https://github.com/dcSpark/shinkai-apps
ARCH="aarch64-apple-darwin" \
OLLAMA_VERSION="v0.3.12" \
SHINKAI_NODE_VERSION="v0.8.9" \
npx ts-node ./ci-scripts/download-side-binaries.ts
ARCH="x86_64-unknown-linux-gnu" \
OLLAMA_VERSION="v0.3.12"\
SHINKAI_NODE_VERSION="v0.8.9" \
npx ts-node ./ci-scripts/download-side-binaries.ts
$ENV:OLLAMA_VERSION="v0.3.12"
$ENV:SHINKAI_NODE_VERSION="v0.8.9"
$ENV:ARCH="x86_64-pc-windows-msvc"
npx ts-node ./ci-scripts/download-side-binaries.ts
Once you have done that simply use npm
to compile/serve it yourself:
cd shinkai-apps
nvm use
npm ci
npx nx serve {project-name} # IE: npx nx serve shinkai-desktop
shinkai-visor: As this is a Chrome Extension, after build, developers needs to load it in chrome:
chrome://extensions
../dist/apps/shinkai-visor
folder which contains the output of the building process using commands like npx nx serve shinkai-visor
.shinkai-desktop: For development and building purposes
npx nx serve:tauri shinkai-desktop
and it will automatically launch the Shinkai Desktop application.npx nx serve shinkai-desktop
and open a browser and navigate to http://localhost:1420
.Every command, if it's needed, build projects and it's dependencies according to the project dependency tree inferred from imports between them.
Run a single task
Command: npx nx [target] [project-name]
Params:
IE:
npx nx build shinkai-visor
npx nx lint shinkai-message-ts
npx nx e2e shinkai-visor
npx nx serve shinkai-desktop
Run many tasks
Command: npx nx run-many --target=[target]
Params:
IE:
npx nx run-many --target=build
npx nx run-many --target=lint
npx nx run-many --target=test
npx nx run-many --target=e2e
npx nx run-many --target=serve
Run on affected projects
Command: npx nx affected --target=[target]
Params:
IE:
npx nx affected --target=build
When you build a project, NX builds a cache (to make it faster), if you want to skip it just add the parameter
--skip-nx-cache
to the previous commands.
To orchestrate all the tasks, dependencies and hierarchy between different projects, this repository uses NX as a monorepo tooling.
All projects share the same base of dependencies defined ./package.json
file found in the root of the repository. Nested package json files are used just to override or extends base attributes.
To build the UI there are 3 core libraries:
To implement state management there are two different libraries: