- Shinkai Apps
Shinkai Apps

Shinkai Apps
Shinkai is a two-click install AI manager (local and remote) that lets you spin up
AI agents in minutes through a friendly UI. Agents and tools are all exposed via an
MCP server.
A companion repository, Shinkai Node,
provides the core services for agent management, job processing and secure communications.
Key Features
- Rapid Agent Setup – create and configure agents in under five minutes with a guided UI.
- Local or Remote – run everything on your machine or connect to a remote Shinkai Node.
- MCP Server Integration – expose agents and tools over an MCP server for easy automation.
Demo
https://github.com/user-attachments/assets/bc5bb7da-7ca5-477d-838a-8239951b6c01
Documentation
General Documentation: https://docs.shinkai.com
Repository Structure
Apps
- shinkai-desktop – cross-platform desktop UI (can also run in the browser).
Libs
- shinkai-message-ts – message definitions and network helpers for talking to Shinkai Node.
- shinkai-node-state – React Query based state management for node data.
- shinkai-ui – reusable React components used across the apps.
- shinkai-artifacts – styled UI primitives built on top of Radix and Tailwind.
- shinkai-i18n – translation utilities powered by i18next.
Getting started
To get started first clone this repo:
$ git clone https://github.com/dcSpark/shinkai-apps
Download side binaries:
Macos
ARCH="aarch64-apple-darwin" \
SHINKAI_NODE_VERSION="v1.0.10" \
OLLAMA_VERSION="v0.7.1" \
npx ts-node ./ci-scripts/download-side-binaries.ts
Linux
ARCH="x86_64-unknown-linux-gnu" \
OLLAMA_VERSION="v0.7.1" \
SHINKAI_NODE_VERSION="v1.0.10" \
npx ts-node ./ci-scripts/download-side-binaries.ts
Windows
$ENV:OLLAMA_VERSION="v0.7.1";
$ENV:SHINKAI_NODE_VERSION="v1.0.10";
$ENV:ARCH="x86_64-pc-windows-msvc";
npx ts-node ./ci-scripts/download-side-binaries.ts
Run one of the projects
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
Project specific configurations
- shinkai-desktop – for development and building purposes
- Run as a Desktop App using Vite:
Run
npx nx serve:tauri shinkai-desktopand it will automatically launch the Shinkai Desktop application. - Run as a Web App:
Run
npx nx serve shinkai-desktopand open a browser and navigate tohttp://localhost:1420.
- Run as a Desktop App using Vite:
Run
Useful Commands
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:
- target: build | serve | lint | test | e2e
IE:
npx nx build shinkai-desktopnpx nx lint shinkai-message-tsnpx nx test shinkai-uinpx nx serve shinkai-desktop
-
Run many tasks
Command:
npx nx run-many --target=[target]Params:
- target: build | serve | lint | test | e2e
IE:
npx nx run-many --target=buildnpx nx run-many --target=lintnpx nx run-many --target=testnpx nx run-many --target=e2enpx nx run-many --target=serve
-
Run on affected projects
Command:
npx nx affected --target=[target]Params:
- target: build | serve | lint | test | e2e
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-cacheto the previous commands.
-
Create a dev build
NODE_OPTIONS="--max_old_space_size=8192" npx nx build shinkai-desktop --config="./src-tauri/tauri.conf.development.json"
-
Update ollama models repository
npx ts-node ./ci-scripts/generate-ollama-models-repository.ts
Dev conventions
Monorepo
To orchestrate all the tasks, dependencies and hierarchy between different projects, this repository uses NX as a monorepo tooling.
Third party dependencies
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.
UI Libraries
To build the UI there are 3 core libraries:
- radix to have base unstyled components.
- shadcn to obtain ready to use components.
- tailwindcss to implement css customizations, structures, layouts and helpers.
State management
To implement state management there are two different libraries:
- zustand: To implement UI State
- react-query: To implement data state