Shinkai apps unlock the full capabilities/automation of first-class LLM (AI) support in the web browser. It enables creating multiple agents, each connected to either local or 3rd-party LLMs (ex. OpenAI GPT), which have permissioned (meaning secure) access to act in every webpage you visit.
- shinkai-visor: Shinkai Visor is a chrome extension to interact with shinkai-node.
- shinkai-app: Shinkai App is a mobile app to interact with shinkai-node.
- shinkai-message-ts: Typescript library that implements the features and networking layer to enable systems to interact with shinkai-nodes.
- shinkai-node-state: Typescript library which using @tanstack/react-query enables apps to interact with shinkai-node managing the state, caching and evictions.
To get started first clone this repo:
$ git clone https://github.com/dcSpark/shinkai-apps
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}
- shinkai-visor: As this is a Chrome Extension, after build, developers needs to load it in chrome:
-
- Open Chrome.
-
- Navigate to
chrome://extensions
.
- Navigate to
-
- Enable Developer mode.
-
- Click Load unpacked.
-
- Select the
./dist/apps/shinkai-visor
folder which contains the output of the building process using commands likenpx nx serve shinkai-visor
.
- Select the
-
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-visor
npx nx lint shinkai-message-ts
npx nx e2e shinkai-visor
npx nx serve shinkai-app
-
Run many tasks
Command:
npx nx run-many --target=[target]
Params:
- target: build | serve | lint | test | e2e
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:
- 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-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:
- radix to have base unstyled components.
- shadcn to obtain ready to use components.
- tailwindcss to implement css customizations, structures, layouts and helpers.
To implement state management there are two different libraries:
- zustand: To implement UI State
- react-query: To implement data state