MCPcopy Index your code
hub / github.com/ShokoAnime/Shoko-WebUI

github.com/ShokoAnime/Shoko-WebUI @v2.5.9

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.5.9 ↗ · + Follow
842 symbols 2,663 edges 342 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Shoko WebUI

Shoko WebUI is the next-generation frontend for the Shoko Anime Management Server. Built with speed and modern aesthetics in mind, it provides a seamless experience for managing your anime collection, exploring metadata, and configuring your server.

🚀 Features

  • Modern Stack: Built with React 19, Vite, and Redux Toolkit.
  • Fast: Optimized build times and runtime performance.
  • Responsive: Designed to look great on desktop and mobile.
  • Real-time: Leverages SignalR for live updates from the server.

🛠️ Prerequisites

  • Node.js: >=22 (LTS recommended)
  • Package Manager: pnpm (This project strictly uses pnpm. Do not use npm or yarn.)
  • Shoko Server: A running instance of Shoko Server (locally or remote).

⚡ Quick Start

  1. Clone the repository bash git clone https://github.com/ShokoAnime/Shoko-WebUI.git cd Shoko-WebUI

  2. Install dependencies bash pnpm install

  3. Start the development server bash pnpm start Open http://localhost:3000 to view it in the browser.

🏗️ Architecture

The WebUI acts as a client for the Shoko Server API. It manages global state via Redux and caches server data using React Query.

graph TD
    User[User Browser]
    UI[React Components]
    Store[Redux Store]
    Query[React Query Cache]
    API[Axios Client]
    SignalR[SignalR Client]
    Server[Shoko Server]

    User --> UI
    UI --> Store
    UI --> Query
    Query --> API
    API --> Server
    SignalR <--> Server
    SignalR --> Store

💻 Development

Key Commands

Command Description
pnpm start Runs the app in development mode.
pnpm build Builds the app for production to the build folder.
pnpm lint Checks source code with eslint, stylelint, dprint, and tsc.
pnpm eslint:fix Automatically fixes ESLint errors.
pnpm dprint:fix Formats code using dprint.

Configuration

If your Shoko server is running on a different machine or port: 1. Copy proxy.config.default.js to proxy.config.js. 2. Edit proxy.config.js and set the target to your Shoko Server URL (e.g., http://192.168.1.50:8111).

🤝 Contributing

We are always accepting help, and there are a million little things that always need done. Hop on our discord and talk to us. Communication is important in any team. No offense, but it's difficult to help anyone that shows up out of nowhere, opens 3 issues, then creates a PR without even talking to us. We have a wealth of experience. Let us help you...preferably before the ADHD takes over, you hyperfixate, and you come up with a fantastic solution to problem that isn't at all what you expected. Support is also best found in the discord, in case you read this far.

Repobeats analytics image

Extension points exported contracts — how you extend this code

ImportMetaEnv (Interface)
(no doc)
src/env.d.ts
ImportMeta (Interface)
(no doc)
src/env.d.ts

Core symbols most depended-on inside this repo

invalidateQueries
called by 67
src/core/react-query/queryClient.ts
updateSetting
called by 35
src/pages/settings/SettingsPage.tsx
useSettingsQuery
called by 34
src/core/react-query/settings/queries.ts
useNavigateVoid
called by 25
src/hooks/useNavigateVoid.ts
formatThousand
called by 18
src/core/util.ts
useFlattenListResult
called by 15
src/hooks/useFlattenListResult.ts
setSearch
called by 12
src/pages/collection/Collection.tsx
usePatchSettingsMutation
called by 12
src/core/react-query/settings/mutations.ts

Shape

Function 825
Enum 15
Interface 2

Languages

TypeScript100%

Modules by API surface

src/pages/utilities/UnrecognizedUtilityTabs/LinkFilesTab.tsx19 symbols
src/core/react-query/series/queries.ts17 symbols
src/core/react-query/series/mutations.ts16 symbols
src/pages/utilities/Renamer.tsx12 symbols
src/pages/utilities/FileSearch.tsx12 symbols
src/core/react-query/file/mutations.ts12 symbols
src/components/Utilities/Unrecognized/AvDumpSeriesSelectModal.tsx11 symbols
src/core/util.ts10 symbols
src/core/signalr/signalr.ts10 symbols
src/pages/settings/tabs/UserManagementSettings.tsx9 symbols
src/core/slices/collection.ts9 symbols
src/core/react-query/tmdb/queries.ts9 symbols

For agents

$ claude mcp add Shoko-WebUI \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page