MCPcopy Index your code
hub / github.com/CoorenLabs/CoorenLabs

github.com/CoorenLabs/CoorenLabs @v0.0.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.7 ↗ · + Follow
676 symbols 2,045 edges 106 files 11 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Cooren API

Bun Node.js Deno ElysiaJS TypeScript License: GPL v3

Cooren is an open-source, high-performance, and scalable scraping engine designed to collect, organize, and deliver structured data from across the world of anime, movies, manga, and music.

Developed and maintained by CoorenLabs.


Quick Links


Features

  • Multi-Runtime Compliance: Full support for Bun, Node.js, and Deno.
  • Unified Media Ecosystem: Anime, Manga, Movies, TV, and Music.
  • High Performance: Native speed powered by Bun and ElysiaJS.
  • Mock-Based Testing: Comprehensive dual-framework (Vitest/Jest) integration tests.
  • Developer Friendly: TypeScript and modular, test-ready architecture.

Tech Stack

  • Runtime: Bun
  • Framework: ElysiaJS
  • Language: TypeScript
  • Scraping: Cheerio, Puppeteer
  • Database/Cache: Upstash Redis
  • Validation: Zod

Getting Started

Prerequisites

Install Bun.

Installation

git clone https://github.com/CoorenLabs/CoorenLabs.git
cd CoorenLabs
bun install

Running the Server

bun run dev      # or bun run hot

Build for Production

bun run build:bun   # Optimized for Bun
bun run build:node  # Compile to Node

Creating a New Provider

src/providers/<name>/
├── route.ts
├── <name>.ts
└── types.ts

Example: route.ts

import Elysia from "elysia";
import { FlixHQ } from "./flixhq";

export const flixhqRoutes = new Elysia({ prefix: "/flixhq" })
  .get("/home", async () => await FlixHQ.home())
  .get("/search/:query", async ({ params: { query } }) => await FlixHQ.search(query));

Testing & Linting

bun run test
bun run lint
bun run lint:fix

License

This project is licensed under the GPL-3.0 License.


Extension points exported contracts — how you extend this code

AnimeKaiPagedResult (Interface)
(no doc)
src/providers/anime/animekai/types.ts
ParsedId (Interface)
(no doc)
src/core/idResolver.ts
ExternalMappings (Interface)
(no doc)
src/anizip/types.ts
TestResult (Interface)
(no doc)
scripts/tests/animepahe.ts
AnimeKaiServer (Interface)
(no doc)
src/providers/anime/animekai/types.ts
ResolvedAnime (Interface)
(no doc)
src/core/idResolver.ts
AniZipEpisode (Interface)
(no doc)
src/anizip/types.ts
MovieInfoResponse (Interface)
(no doc)
src/providers/anime/animesalt/types.ts

Core symbols most depended-on inside this repo

$
called by 526
src/providers/anime/toonstream/jwplayer.js
get
called by 402
src/providers/anime/toonstream/lib/cache.ts
n
called by 292
src/providers/anime/toonstream/jwplayer.js
et
called by 108
src/providers/anime/toonstream/jwplayer.js
error
called by 78
src/providers/anime/toonstream/lib/logger.ts
ok
called by 40
src/providers/music/tidal/route.ts
set
called by 40
src/providers/anime/toonstream/lib/cache.ts
err
called by 38
src/providers/music/tidal/route.ts

Shape

Function 331
Method 274
Class 52
Interface 19

Languages

TypeScript100%

Modules by API surface

src/providers/anime/toonstream/jwplayer.js229 symbols
src/providers/manga/mangaball/mangaball.ts44 symbols
src/providers/music/tidal/tidal.ts37 symbols
src/providers/anime/animekai/animekai.ts26 symbols
src/providers/movie-tv/himovies/himovies.ts19 symbols
src/providers/movie-tv/flixhq/flixhq.ts19 symbols
src/providers/manga/allmanga/allmanga.ts17 symbols
src/providers/manga/atsu/atsu.ts15 symbols
src/providers/anime/animepahe/animepahe.ts15 symbols
src/providers/anime/animesalt/animesalt.ts14 symbols
src/providers/manga/mangafire/vrf.ts13 symbols
src/providers/manga/mangafire/mangafire.ts13 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page